From 21398f08e87ac05347dd8df3f58527970abcebcf Mon Sep 17 00:00:00 2001
From: XeonMations
Date: Fri, 6 Sep 2024 02:57:28 +0300
Subject: [PATCH 01/42] and so it begins
---
code/__DEFINES/cleaning.dm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/code/__DEFINES/cleaning.dm b/code/__DEFINES/cleaning.dm
index 984f1cec165ff..67c3663c3e900 100644
--- a/code/__DEFINES/cleaning.dm
+++ b/code/__DEFINES/cleaning.dm
@@ -8,7 +8,6 @@
#define CLEAN_TYPE_FIBERS (1 << 3)
#define CLEAN_TYPE_RADIATION (1 << 4)
#define CLEAN_TYPE_DISEASE (1 << 5)
-#define CLEAN_TYPE_WEAK (1 << 6) // Special type, add this flag to make some cleaning processes non-instant. Currently only used for showers when removing radiation.
#define CLEAN_TYPE_PAINT (1 << 7)
/// Cleans decals such as dirt and oil off the floor
#define CLEAN_TYPE_LIGHT_DECAL (1 << 9)
@@ -20,4 +19,4 @@
#define CLEAN_WASH (CLEAN_TYPE_BLOOD | CLEAN_TYPE_RUNES | CLEAN_TYPE_DISEASE | CLEAN_TYPE_LIGHT_DECAL)
#define CLEAN_SCRUB (CLEAN_WASH | CLEAN_TYPE_FINGERPRINTS | CLEAN_TYPE_FIBERS | CLEAN_TYPE_PAINT | CLEAN_TYPE_HARD_DECAL)
#define CLEAN_RAD CLEAN_TYPE_RADIATION
-#define CLEAN_ALL (ALL & ~CLEAN_TYPE_WEAK)
+#define CLEAN_ALL ALL
From 4e4c6b0984b2ef7c31c62d82c2f4ddeac769cf0c Mon Sep 17 00:00:00 2001
From: XeonMations
Date: Fri, 6 Sep 2024 04:11:27 +0300
Subject: [PATCH 02/42] aaaaa
---
beestation.dme | 8 +-
code/__DEFINES/combat.dm | 3 -
.../dcs/signals/signals_atom/signals_atom.dm | 34 ++-
.../dcs/signals/signals_mob/signals_living.dm | 3 +
code/__DEFINES/flags.dm | 4 -
code/__DEFINES/maths.dm | 5 -
code/__DEFINES/radiation.dm | 65 ++----
code/__DEFINES/supermatter.dm | 4 +-
code/__DEFINES/traits.dm | 18 ++
code/__DEFINES/vv.dm | 1 -
code/__HELPERS/radiation.dm | 100 +++++----
code/_globalvars/bitfields.dm | 5 -
code/controllers/subsystem/radiation.dm | 134 ++++++++++--
code/datums/armor.dm | 25 +--
code/datums/components/connect_loc_behalf.dm | 2 +-
code/datums/components/geiger_sound.dm | 92 ++++++++
code/datums/components/genetic_damage.dm | 72 +++++++
code/datums/components/irradiated.dm | 201 ++++++++++++++++++
code/datums/components/rad_insulation.dm | 31 ---
code/datums/components/radiation_countdown.dm | 55 +++++
code/datums/components/radioactive.dm | 117 ----------
.../elements/radiation_protected_clothing.dm | 25 +++
code/datums/elements/radioactive.dm | 38 ++++
code/datums/looping_sounds/item_sounds.dm | 38 ----
code/datums/martial/krav_maga.dm | 2 +-
code/datums/materials/_material.dm | 4 +-
code/datums/materials/alloys.dm | 12 +-
code/datums/materials/basemats.dm | 12 +-
.../game/gamemodes/clown_ops/clown_weapons.dm | 6 +-
code/game/gamemodes/gangs/dominator.dm | 2 +-
code/game/gamemodes/gangs/gang_items.dm | 4 +-
code/game/machinery/_machinery.dm | 2 +-
code/game/machinery/ai_slipper.dm | 2 +-
code/game/machinery/airlock_cycle_control.dm | 2 +-
code/game/machinery/buttons.dm | 2 +-
code/game/machinery/camera/camera.dm | 2 +-
code/game/machinery/computer/_computer.dm | 2 +-
code/game/machinery/doors/airlock_types.dm | 4 +-
code/game/machinery/doors/door.dm | 2 +-
code/game/machinery/doors/firedoor.dm | 2 +-
code/game/machinery/doors/poddoor.dm | 2 +-
code/game/machinery/doors/windowdoor.dm | 4 +-
code/game/machinery/firealarm.dm | 2 +-
code/game/machinery/hologram.dm | 2 +-
code/game/machinery/igniter.dm | 2 +-
code/game/machinery/navbeacon.dm | 2 +-
.../machinery/porta_turret/portable_turret.dm | 4 +-
code/game/machinery/requests_console.dm | 2 +-
code/game/machinery/shuttle/shuttle_heater.dm | 2 +-
code/game/machinery/spaceheater.dm | 2 +-
.../telecomms/machines/message_server.dm | 2 +-
code/game/objects/items/RCD.dm | 2 +-
code/game/objects/items/RPD.dm | 2 +-
code/game/objects/items/RSF.dm | 2 +-
code/game/objects/items/cards_ids.dm | 4 +-
code/game/objects/items/crab17.dm | 2 +-
code/game/objects/items/debug_items.dm | 6 +-
code/game/objects/items/defib.dm | 2 +-
.../objects/items/deployable/barricade.dm | 2 +-
.../items/devices/forcefieldprojector.dm | 2 +-
code/game/objects/items/dualsaber.dm | 2 +-
code/game/objects/items/fireaxe.dm | 2 +-
code/game/objects/items/handcuffs.dm | 2 +-
code/game/objects/items/kitchen.dm | 2 +-
code/game/objects/items/knives.dm | 4 +-
code/game/objects/items/melee/energy.dm | 2 +-
code/game/objects/items/melee/misc.dm | 2 +-
code/game/objects/items/pitchfork.dm | 2 +-
code/game/objects/items/pneumaticCannon.dm | 2 +-
code/game/objects/items/powerfist.dm | 2 +-
code/game/objects/items/religion.dm | 2 +-
code/game/objects/items/singularityhammer.dm | 2 +-
code/game/objects/items/spear.dm | 2 +-
.../items/stacks/sheets/mineral/glass.dm | 14 +-
.../items/stacks/sheets/mineral/metals.dm | 2 +-
.../items/stacks/sheets/organic/wood.dm | 4 +-
.../objects/items/stacks/tiles/tile_iron.dm | 2 +-
code/game/objects/items/storage/backpack.dm | 8 +-
code/game/objects/items/storage/secure.dm | 2 +-
code/game/objects/items/stunbaton.dm | 2 +-
code/game/objects/items/tanks/tanks.dm | 2 +-
code/game/objects/items/tanks/watertank.dm | 2 +-
code/game/objects/items/teleportation.dm | 2 +-
code/game/objects/items/tools/crowbar.dm | 2 +-
code/game/objects/items/tools/powertools.dm | 2 +-
code/game/objects/items/tools/screwdriver.dm | 2 +-
code/game/objects/items/tools/weldingtool.dm | 2 +-
code/game/objects/items/tools/wirecutters.dm | 2 +-
code/game/objects/items/tools/wrench.dm | 2 +-
code/game/objects/items/vending_items.dm | 2 +-
code/game/objects/items/weaponry.dm | 8 +-
code/game/objects/structures.dm | 2 +-
code/game/objects/structures/barsigns.dm | 2 +-
.../structures/crates_lockers/closets.dm | 2 +-
.../closets/secure/secure_closets.dm | 2 +-
.../crates_lockers/crates/secure.dm | 2 +-
code/game/objects/structures/displaycase.dm | 2 +-
code/game/objects/structures/fireaxe.dm | 2 +-
code/game/objects/structures/grille.dm | 2 +-
code/game/objects/structures/holosign.dm | 2 +-
code/game/objects/structures/lattice.dm | 2 +-
code/game/objects/structures/mineral_doors.dm | 2 +-
code/game/objects/structures/plasticflaps.dm | 2 +-
code/game/objects/structures/signs/_signs.dm | 2 +-
code/game/objects/structures/tables_racks.dm | 6 +-
code/game/objects/structures/window.dm | 16 +-
code/game/shuttle_engines.dm | 2 +-
code/game/turfs/closed/wall/reinf_walls.dm | 2 +-
.../abductor/equipment/abduction_gear.dm | 8 +-
.../antagonists/blob/structures/_blob.dm | 2 +-
.../antagonists/blob/structures/core.dm | 2 +-
.../antagonists/blob/structures/node.dm | 2 +-
.../antagonists/blob/structures/shield.dm | 2 +-
.../changeling/powers/mutations.dm | 8 +-
.../antagonists/clock_cult/clockwork_turfs.dm | 2 +-
.../clock_cult/items/brass_clothing.dm | 10 +-
.../clock_cult/scriptures/ocular_warden.dm | 2 +-
code/modules/antagonists/cult/cult_items.dm | 16 +-
.../heretic/items/heretic_armor.dm | 6 +-
.../nukeop/equipment/nuclearbomb.dm | 2 +-
.../antagonists/space_dragon/carp_rift.dm | 2 +-
.../atmospherics/machinery/airalarm.dm | 2 +-
.../atmospherics/machinery/atmosmachinery.dm | 2 +-
.../components/unary_devices/cryo.dm | 2 +-
.../components/unary_devices/thermomachine.dm | 2 +-
.../atmospherics/machinery/other/meter.dm | 2 +-
.../machinery/portable/canister.dm | 2 +-
.../portable/portable_atmospherics.dm | 2 +-
.../awaymissions/mission_code/snowdin.dm | 2 +-
code/modules/cargo/supplypod.dm | 2 +-
code/modules/clothing/chameleon.dm | 22 +-
code/modules/clothing/glasses/_glasses.dm | 4 +-
code/modules/clothing/gloves/color.dm | 2 +-
code/modules/clothing/gloves/miscellaneous.dm | 6 +-
code/modules/clothing/head/beanie.dm | 2 +-
code/modules/clothing/head/cakehat.dm | 2 +-
code/modules/clothing/head/costume.dm | 12 +-
code/modules/clothing/head/crown.dm | 2 +-
code/modules/clothing/head/hardhat.dm | 6 +-
code/modules/clothing/head/hat.dm | 6 +-
code/modules/clothing/head/helmet.dm | 34 +--
code/modules/clothing/head/jobs.dm | 36 ++--
code/modules/clothing/head/misc_special.dm | 2 +-
code/modules/clothing/head/soft_caps.dm | 2 +-
code/modules/clothing/head/tinfoilhat.dm | 4 +-
code/modules/clothing/masks/gasmask.dm | 4 +-
code/modules/clothing/masks/hailer.dm | 2 +-
code/modules/clothing/masks/miscellaneous.dm | 2 +-
code/modules/clothing/shoes/magboots.dm | 2 +-
code/modules/clothing/shoes/miscellaneous.dm | 6 +-
.../clothing/spacesuits/_spacesuits.dm | 4 +-
.../modules/clothing/spacesuits/chronosuit.dm | 4 +-
code/modules/clothing/spacesuits/hardsuit.dm | 84 ++++----
.../clothing/spacesuits/miscellaneous.dm | 36 ++--
code/modules/clothing/spacesuits/plasmamen.dm | 14 +-
code/modules/clothing/spacesuits/swat.dm | 2 +-
code/modules/clothing/spacesuits/syndi.dm | 4 +-
code/modules/clothing/suits/_suits.dm | 2 +-
code/modules/clothing/suits/armor.dm | 34 +--
code/modules/clothing/suits/bio.dm | 8 +-
code/modules/clothing/suits/chaplainsuits.dm | 12 +-
code/modules/clothing/suits/cloaks.dm | 12 +-
code/modules/clothing/suits/costume.dm | 6 +-
code/modules/clothing/suits/donator.dm | 2 +-
code/modules/clothing/suits/hoodies.dm | 2 +-
code/modules/clothing/suits/jacket.dm | 4 +-
code/modules/clothing/suits/jobs.dm | 6 +-
code/modules/clothing/suits/labcoat.dm | 4 +-
.../modules/clothing/suits/reactive_armour.dm | 2 +-
code/modules/clothing/suits/utility.dm | 10 +-
code/modules/clothing/suits/wetfloor.dm | 2 +-
code/modules/clothing/suits/wintercoats.dm | 38 ++--
code/modules/clothing/suits/wiz_robe.dm | 16 +-
code/modules/clothing/under/_under.dm | 2 +-
code/modules/clothing/under/accessories.dm | 6 +-
code/modules/clothing/under/costume.dm | 2 +-
.../under/jobs/Plasmaman/civilian_service.dm | 2 +-
.../under/jobs/Plasmaman/engineering.dm | 2 +-
.../clothing/under/jobs/Plasmaman/security.dm | 4 +-
.../clothing/under/jobs/civilian/civilian.dm | 2 +-
code/modules/clothing/under/jobs/command.dm | 2 +-
.../clothing/under/jobs/engineering.dm | 8 +-
code/modules/clothing/under/jobs/medical.dm | 16 +-
code/modules/clothing/under/jobs/rnd.dm | 8 +-
code/modules/clothing/under/jobs/security.dm | 10 +-
code/modules/clothing/under/miscellaneous.dm | 2 +-
code/modules/clothing/under/syndicate.dm | 8 +-
code/modules/clothing/under/trek.dm | 2 +-
code/modules/events/holiday/xmas.dm | 6 +-
code/modules/library/lib_items.dm | 2 +-
.../modules/mining/equipment/explorer_gear.dm | 10 +-
.../mining/equipment/marker_beacons.dm | 2 +-
.../mining/lavaland/necropolis_chests.dm | 2 +-
.../carbon/human/species_types/snail.dm | 2 +-
.../hostile/mining_mobs/elites/elite.dm | 2 +-
.../computers/item/computer.dm | 2 +-
code/modules/ninja/suit/head.dm | 2 +-
code/modules/ninja/suit/shoes.dm | 2 +-
code/modules/ninja/suit/suit.dm | 2 +-
code/modules/power/apc/apc_main.dm | 2 +-
.../modules/power/lighting/light_construct.dm | 2 +-
.../power/singularity/field_generator.dm | 2 +-
.../particle_accelerator.dm | 2 +-
.../reagents/reagent_containers/glass.dm | 2 +-
code/modules/recycling/disposal/bin.dm | 2 +-
code/modules/recycling/disposal/pipe.dm | 2 +-
.../xenobiology/crossbreeding/_misc.dm | 2 +-
.../xenobiology/crossbreeding/_weapons.dm | 2 +-
.../xenobiology/crossbreeding/warping.dm | 2 +-
.../modules/ruins/lavalandruin_code/puzzle.dm | 2 +-
.../shuttle_creation/shuttle_creator.dm | 2 +-
code/modules/vehicles/_vehicle.dm | 2 +-
code/modules/vehicles/atv.dm | 2 +-
code/modules/vehicles/cars/clowncar.dm | 2 +-
code/modules/vehicles/mecha/_mecha.dm | 2 +-
code/modules/vehicles/mecha/combat/combat.dm | 2 +-
code/modules/vehicles/mecha/combat/durand.dm | 2 +-
code/modules/vehicles/mecha/combat/gygax.dm | 4 +-
code/modules/vehicles/mecha/combat/honker.dm | 2 +-
.../modules/vehicles/mecha/combat/marauder.dm | 2 +-
code/modules/vehicles/mecha/combat/phazon.dm | 2 +-
.../vehicles/mecha/combat/reticence.dm | 2 +-
code/modules/vehicles/mecha/working/clarke.dm | 2 +-
code/modules/vehicles/mecha/working/ripley.dm | 4 +-
code/modules/vehicles/secway.dm | 2 +-
code/modules/vehicles/wheelchair.dm | 2 +-
code/modules/vending/_vending.dm | 2 +-
code/modules/vending/liberation.dm | 2 +-
code/modules/vending/liberation_toy.dm | 2 +-
code/modules/vending/magivend.dm | 2 +-
code/modules/vending/medical.dm | 2 +-
code/modules/vending/medical_wall.dm | 2 +-
code/modules/vending/toys.dm | 2 +-
code/modules/vending/youtool.dm | 2 +-
234 files changed, 1237 insertions(+), 829 deletions(-)
create mode 100644 code/datums/components/geiger_sound.dm
create mode 100644 code/datums/components/genetic_damage.dm
create mode 100644 code/datums/components/irradiated.dm
delete mode 100644 code/datums/components/rad_insulation.dm
create mode 100644 code/datums/components/radiation_countdown.dm
delete mode 100644 code/datums/components/radioactive.dm
create mode 100644 code/datums/elements/radiation_protected_clothing.dm
create mode 100644 code/datums/elements/radioactive.dm
diff --git a/beestation.dme b/beestation.dme
index a23ea0463ef16..37800fc8047a9 100644
--- a/beestation.dme
+++ b/beestation.dme
@@ -648,12 +648,15 @@
#include "code\datums\components\explodable.dm"
#include "code\datums\components\force_move.dm"
#include "code\datums\components\forensics.dm"
+#include "code\datums\components\geiger_sound.dm"
+#include "code\datums\components\genetic_damage.dm"
#include "code\datums\components\gps.dm"
#include "code\datums\components\grillable.dm"
#include "code\datums\components\haircolor_clothes.dm"
#include "code\datums\components\heirloom.dm"
#include "code\datums\components\honkspam.dm"
#include "code\datums\components\infective.dm"
+#include "code\datums\components\irradiated.dm"
#include "code\datums\components\jam_receiver.dm"
#include "code\datums\components\jousting.dm"
#include "code\datums\components\knockoff.dm"
@@ -673,9 +676,8 @@
#include "code\datums\components\paintable.dm"
#include "code\datums\components\payment.dm"
#include "code\datums\components\pellet_cloud.dm"
-#include "code\datums\components\rad_insulation.dm"
+#include "code\datums\components\radiation_countdown.dm"
#include "code\datums\components\radio_jamming.dm"
-#include "code\datums\components\radioactive.dm"
#include "code\datums\components\religious_tool.dm"
#include "code\datums\components\remote_materials.dm"
#include "code\datums\components\riding.dm"
@@ -833,6 +835,8 @@
#include "code\datums\elements\openspace_item_click_handler.dm"
#include "code\datums\elements\pet_bonus.dm"
#include "code\datums\elements\point_of_interest.dm"
+#include "code\datums\elements\radiation_protected_clothing.dm"
+#include "code\datums\elements\radioactive.dm"
#include "code\datums\elements\ranged_attacks.dm"
#include "code\datums\elements\rust.dm"
#include "code\datums\elements\series.dm"
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index 383ebd12730ac..7db1e7b8672e7 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -24,8 +24,6 @@
#define ACID "acid"
/// Involved in checking if a disease can infect or spread. Also involved in xeno neurotoxin.
#define BIO "bio"
-/// Involves ionizing radiation.
-#define RAD "rad"
/// Involves a shockwave, usually from an explosion.
#define BOMB "bomb"
/// Involves a solid projectile.
@@ -62,7 +60,6 @@
#define EFFECT_UNCONSCIOUS "unconscious"
#define EFFECT_PARALYZE "paralyze"
#define EFFECT_IMMOBILIZE "immobilize"
-#define EFFECT_IRRADIATE "irradiate"
#define EFFECT_STUTTER "stutter"
#define EFFECT_SLUR "slur"
#define EFFECT_EYE_BLUR "eye_blur"
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom.dm
index 2cc4c0eaabc25..52763d8e30297 100644
--- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom.dm
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom.dm
@@ -72,8 +72,6 @@
#define COMPONENT_CANCEL_BLOB_ACT (1<<0)
///! from base of atom/acid_act(): (acidpwr, acid_volume)
#define COMSIG_ATOM_ACID_ACT "atom_acid_act"
-///! from base of atom/rad_act(intensity)
-#define COMSIG_ATOM_RAD_ACT "atom_rad_act"
///! from base of atom/narsie_act(): ()
#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act"
///! from base of atom/ratvar_act(): ()
@@ -99,15 +97,6 @@
#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del"
///! from base of atom/has_gravity(): (turf/location, list/forced_gravities)
#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity"
-///! from proc/get_rad_contents(): ()
-#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe"
- #define COMPONENT_BLOCK_RADIATION 1
-///! from base of datum/radiation_wave/radiate(): (strength)
-#define COMSIG_ATOM_RAD_CONTAMINATING "atom_rad_contam"
- #define COMPONENT_BLOCK_CONTAMINATION 1
-///! from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width)
-#define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass"
- #define COMPONENT_RAD_WAVE_HANDLED 1
///! from internal loop in atom/movable/proc/CanReach(): (list/next)
#define COMSIG_ATOM_CANREACH "atom_can_reach"
#define COMPONENT_ALLOW_REACH (1<<0)
@@ -160,3 +149,26 @@
#define COMSIG_ATOM_JAMMED "become_jammed" //! Relayed to atoms when they become jammed if they have the jam_receiver components.
#define COMSIG_ATOM_UNJAMMED "become_unjammed" //! Relayed to atoms when they become unjammed if they have the jam_receiver components.
+
+// Radiation signals
+
+/// From the radiation subsystem, called before a potential irradiation.
+/// This does not guarantee radiation can reach or will succeed, but merely that there's a radiation source within range.
+/// (datum/radiation_pulse_information/pulse_information, insulation_to_target)
+#define COMSIG_IN_RANGE_OF_IRRADIATION "in_range_of_irradiation"
+
+/// Fired when the target could be irradiated, right before the chance check is rolled.
+/// (datum/radiation_pulse_information/pulse_information)
+#define COMSIG_IN_THRESHOLD_OF_IRRADIATION "pre_potential_irradiation_within_range"
+ #define CANCEL_IRRADIATION (1 << 0)
+
+ /// If this is flipped, then minimum exposure time will not be checked.
+ /// If it is not flipped, and the pulse information has a minimum exposure time, then
+ /// the countdown will begin.
+ #define SKIP_MINIMUM_EXPOSURE_TIME_CHECK (1 << 1)
+
+/// Fired when scanning something with a geiger counter.
+/// (mob/user, obj/item/geiger_counter/geiger_counter)
+#define COMSIG_GEIGER_COUNTER_SCAN "geiger_counter_scan"
+ /// If not flagged by any handler, will report the subject as being free of irradiation
+ #define COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL (1 << 0)
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_living.dm
index 66dd862db99d7..ebcc37d707200 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_living.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_living.dm
@@ -23,6 +23,9 @@
#define COMSIG_LIVING_LIFE "living_life"
///from base of mob/living/death(): (gibbed, was_dead_before)
#define COMSIG_LIVING_DEATH "living_death"
+/// from /proc/healthscan(): (list/scan_results, advanced, mob/user, mode)
+/// Consumers are allowed to mutate the scan_results list to add extra information
+#define COMSIG_LIVING_HEALTHSCAN "living_healthscan"
/// from base of mob/living/updatehealth(): ()
#define COMSIG_LIVING_UPDATE_HEALTH "living_update_health"
/// Called when a living mob has its resting updated: (resting_state)
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index b849ed37652c6..f12b7ec012cf4 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -178,10 +178,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_PICKUP | MOBILITY_USE | MOBILITY_UI | MOBILITY_STORAGE | MOBILITY_PULL)
-// radiation
-#define RAD_PROTECT_CONTENTS (1<<0)
-#define RAD_NO_CONTAMINATE (1<<1)
-
//alternate appearance flags
#define AA_TARGET_SEE_APPEARANCE (1<<0)
#define AA_MATCH_TARGET_OVERLAYS (1<<1)
diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm
index e447eb3149ed0..35792417dd30e 100644
--- a/code/__DEFINES/maths.dm
+++ b/code/__DEFINES/maths.dm
@@ -87,11 +87,6 @@
/// Returns the nth root of x.
#define ROOT(n, x) ((x) ** (1 / (n)))
-/// Low-pass filter a value to smooth out high frequent peaks. This can be thought of as a moving average filter as well.
-/// delta_time is how many seconds since we last ran this command. RC is the filter constant, high RC means more smoothing
-/// See https://en.wikipedia.org/wiki/Low-pass_filter#Simple_infinite_impulse_response_filter for the maths
-#define LPFILTER(memory, signal, delta_time, RC) (delta_time / (RC + delta_time)) * signal + (1 - delta_time / (RC + delta_time)) * memory
-
// The quadratic formula. Returns a list with the solutions, or an empty list
// if they are imaginary.
/proc/SolveQuadratic(a, b, c)
diff --git a/code/__DEFINES/radiation.dm b/code/__DEFINES/radiation.dm
index 6f1b60ebb59c2..02dcef4f46665 100644
--- a/code/__DEFINES/radiation.dm
+++ b/code/__DEFINES/radiation.dm
@@ -1,31 +1,18 @@
/*
These defines are the balancing points of various parts of the radiation system.
Changes here can have widespread effects: make sure you test well.
-Ask ninjanomnom if they're around
+Ask god if they're around
*/
-#define RAD_BACKGROUND_RADIATION 9 // How much radiation is harmless to a mob
+#define RAD_MOB_HAIRLOSS (1 MINUTES) // How much stored radiation to check for hair loss
-// apply_effect((amount*RAD_MOB_COEFFICIENT)/max(1, (radiation**2)*RAD_OVERDOSE_REDUCTION), IRRADIATE, blocked)
-#define RAD_MOB_COEFFICIENT 0.20 // Radiation applied is multiplied by this
-#define RAD_MOB_SKIN_PROTECTION ((1/RAD_MOB_COEFFICIENT)+RAD_BACKGROUND_RADIATION)
+#define RAD_MOB_MUTATE (2 MINUTES) // How much stored radiation to check for mutation
-#define RAD_LOSS_PER_TICK 0.5
-#define RAD_TOX_COEFFICIENT 0.08 // Toxin damage per tick coefficient
-#define RAD_OVERDOSE_REDUCTION 0.000001 // Coefficient to the reduction in applied rads once the thing, usualy mob, has too much radiation
- // WARNING: This number is highly sensitive to change, graph is first for best results
-#define RAD_BURN_THRESHOLD 1000 // Applied radiation must be over this to burn
-
-#define RAD_MOB_SAFE 500 // How much stored radiation in a mob with no ill effects
-
-#define RAD_MOB_HAIRLOSS 800 // How much stored radiation to check for hair loss
-
-#define RAD_MOB_MUTATE 1250 // How much stored radiation to check for mutation
-
-#define RAD_MOB_VOMIT 2000 // The amount of radiation to check for vomitting
+/// The time since irradiated before checking for vomitting
+#define RAD_MOB_VOMIT (2 MINUTES)
#define RAD_MOB_VOMIT_PROB 1 // Chance per tick of vomitting
-#define RAD_MOB_KNOCKDOWN 2000 // How much stored radiation to check for stunning
+#define RAD_MOB_KNOCKDOWN (2 MINUTES) // How much stored radiation to check for stunning
#define RAD_MOB_KNOCKDOWN_PROB 1 // Chance of knockdown per tick when over threshold
#define RAD_MOB_KNOCKDOWN_AMOUNT 3 // Amount of knockdown when it occurs
@@ -35,31 +22,23 @@ Ask ninjanomnom if they're around
#define RAD_MEDIUM_INSULATION 0.7 // What common walls have
#define RAD_HEAVY_INSULATION 0.6 // What reinforced walls have
#define RAD_EXTREME_INSULATION 0.5 // What rad collectors have
-#define RAD_FULL_INSULATION 0 // What depleted uranium windows have
+#define RAD_FULL_INSULATION 0 // Completely stops radiation from coming through
+
+/// The default chance something can be irradiated
+#define DEFAULT_RADIATION_CHANCE 10
-// WARNING: The defines below could have disastrous consequences if tweaked incorrectly. See: The great SM purge of Oct.6.2017
-// contamination_chance = [doesn't matter, will always contaminate]
-// contamination_strength = strength * RAD_CONTAMINATION_STR_COEFFICIENT
-// contamination_threshold = 1 / (RAD_CONTAMINATION_BUDGET_SIZE * RAD_CONTAMINATION_STR_COEFFICIENT)
-#define RAD_CONTAMINATION_BUDGET_SIZE 0.2 // Mob and non-mob budgets each gets a share from the radiation as large as this;
- // So this means 10% of the rads is "absorbed" by non-mobs (if there is a non-mob),
- // and another 10% of the rads is "absorbed" by mobs (if there is a mob)
-#define RAD_DISTANCE_COEFFICIENT 1 // Lower means further rad spread
+/// The default chance for uranium structures to irradiate
+#define URANIUM_IRRADIATION_CHANCE DEFAULT_RADIATION_CHANCE
-#define RAD_DISTANCE_COEFFICIENT_COMPONENT_MULTIPLIER 2 // Radiation components have additional penalty at distance coefficient
- // This is to reduce radiation by contaminated objects, mostly
+/// The minimum exposure time before uranium structures can irradiate
+#define URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME (3 SECONDS)
-#define RAD_HALF_LIFE 90 // The half-life of contaminated objects
+/// Return values of [proc/get_perceived_radiation_danger]
+// If you change these, update /datum/looping_sound/geiger as well.
+#define PERCEIVED_RADIATION_DANGER_LOW 1
+#define PERCEIVED_RADIATION_DANGER_MEDIUM 2
+#define PERCEIVED_RADIATION_DANGER_HIGH 3
+#define PERCEIVED_RADIATION_DANGER_EXTREME 4
-#define RAD_WAVE_MINIMUM 10 // Radiation waves with less than this amount of power stop spreading
- // WARNING: Reducing can make rads subsytem more expensive
-#define RAD_COMPONENT_MINIMUM 1 // To ensure slow contamination
- // WARNING: Reducing can make rads subsytem more expensive
-#define RAD_CONTAMINATION_STR_COEFFICIENT (1 / RAD_HALF_LIFE / 8 * RAD_DISTANCE_COEFFICIENT_COMPONENT_MULTIPLIER ** 2)
- // Higher means higher strength scaling contamination strength
- // This number represents perservation of radiation
- // Set to control the most typical situation: clutters around typical radiation sources
- // This define is long and ugly because of the amount of math involved
- // and to free this define from mathematical errors of future define number tweakers
-#define RAD_GEIGER_RC 4 // RC-constant for the LP filter for geiger counters. See #define LPFILTER for more info.
-#define RAD_GEIGER_GRACE_PERIOD 4 // How many seconds after we last detect a radiation pulse until we stop blipping
+/// The time before geiger counters reset back to normal without any radiation pulses
+#define TIME_WITHOUT_RADIATION_BEFORE_RESET (5 SECONDS)
diff --git a/code/__DEFINES/supermatter.dm b/code/__DEFINES/supermatter.dm
index 50f07bc5769da..6efcf4549b88a 100644
--- a/code/__DEFINES/supermatter.dm
+++ b/code/__DEFINES/supermatter.dm
@@ -38,10 +38,10 @@
#define MATTER_POWER_CONVERSION 10 //Crystal converts 1/this value of stored matter into energy.
-//These would be what you would get at point blank, decreases with distance
-#define DETONATION_RADS 200
#define DETONATION_HALLUCINATION 600
+/// All humans within this range will be irradiated
+#define DETONATION_RADIATION_RANGE 20
#define WARNING_DELAY 60
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index d207836b91066..1e5ef82f279f5 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -540,3 +540,21 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define NO_GRAVITY_TRAIT "no-gravity"
#define LIFECANDLE_TRAIT "lifecandle"
#define LEAPER_BUBBLE_TRAIT "leaper-bubble"
+
+
+// Radiation defines
+
+/// Marks that this object is irradiated
+#define TRAIT_IRRADIATED "iraddiated"
+
+/// Harmful radiation effects, the toxin damage and the burns, will not occur while this trait is active
+#define TRAIT_HALT_RADIATION_EFFECTS "halt_radiation_effects"
+
+/// This clothing protects the user from radiation.
+/// This should not be used on clothing_traits, but should be applied to the clothing itself.
+#define TRAIT_RADIATION_PROTECTED_CLOTHING "radiation_protected_clothing"
+
+/// Whether or not this item will allow the radiation SS to go through standard
+/// radiation processing as if this wasn't already irradiated.
+/// Basically, without this, COMSIG_IN_RANGE_OF_IRRADIATION won't fire once the object is irradiated.
+#define TRAIT_BYPASS_EARLY_IRRADIATED_CHECK "radiation_bypass_early_irradiated_check"
diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm
index 85826b1a75bab..9ac3b179bf618 100644
--- a/code/__DEFINES/vv.dm
+++ b/code/__DEFINES/vv.dm
@@ -96,7 +96,6 @@
#define VV_HK_TRIGGER_EMP "empulse"
#define VV_HK_TRIGGER_EXPLOSION "explode"
#define VV_HK_AUTO_RENAME "auto_rename"
-#define VV_HK_RADIATE "radiate"
#define VV_HK_EDIT_FILTERS "edit_filters"
#define VV_HK_EDIT_COLOR_MATRIX "edit_color_matrix"
#define VV_HK_EDIT_PARTICLES "edit_particles"
diff --git a/code/__HELPERS/radiation.dm b/code/__HELPERS/radiation.dm
index e688b11874fd9..12178d28fc2bb 100644
--- a/code/__HELPERS/radiation.dm
+++ b/code/__HELPERS/radiation.dm
@@ -1,52 +1,60 @@
-// A special GetAllContents that doesn't search past things with rad insulation
-// Components which return COMPONENT_BLOCK_RADIATION prevent further searching into that object's contents. The object itself will get returned still.
-// The ignore list makes those objects never return at all
-/proc/get_rad_contents(atom/location)
- var/static/list/ignored_things = typecacheof(list(
- /mob/dead,
- /mob/camera,
- /mob/living/simple_animal/revenant,
- /obj/effect,
- /obj/docking_port,
- /atom/movable/lighting_object,
- /obj/projectile,
- /obj/structure/chisel_message,
- /mob/living/simple_animal/eminence
- ))
- var/list/processing_list = list(location)
- . = list()
- while(processing_list.len)
- var/atom/thing = processing_list[1]
- processing_list -= thing
- if(thing == null)
- continue
- if(ignored_things[thing.type])
- continue
- . += thing
- if((thing.rad_flags & RAD_PROTECT_CONTENTS) || (SEND_SIGNAL(thing, COMSIG_ATOM_RAD_PROBE) & COMPONENT_BLOCK_RADIATION))
- continue
- processing_list += thing.contents
-
-/proc/radiation_pulse(atom/source, intensity, range_modifier, log=FALSE, can_contaminate=TRUE)
+/// Whether or not it's possible for this atom to be irradiated
+#define CAN_IRRADIATE(atom) (ishuman(##atom) || isitem(##atom))
+
+/// Sends out a pulse of radiation, eminating from the source.
+/// Radiation is performed by collecting all radiatables within the max range (0 means source only, 1 means adjacent, etc),
+/// then makes their way towards them. A number, starting at 1, is multiplied
+/// by the insulation amounts of whatever is in the way (for example, walls lowering it down).
+/// If this number hits equal or below the threshold, then the target can no longer be irradiated.
+/// If the number is above the threshold, then the chance is the chance that the target will be irradiated.
+/// As a consumer, this means that max_range going up usually means you want to lower the threshold too,
+/// as well as the other way around.
+/// If max_range is high, but threshold is too high, then it usually won't reach the source at the max range in time.
+/// If max_range is low, but threshold is too low, then it basically guarantees everyone nearby, even if there's walls
+/// and such in the way, can be irradiated.
+/// You can also pass in a minimum exposure time. If this is set, then this radiation pulse
+/// will not irradiate the source unless they have been around *any* radioactive source for that
+/// period of time.
+/proc/radiation_pulse(atom/source, max_range, threshold, chance = DEFAULT_RADIATION_CHANCE, minimum_exposure_time = 0)
if(!SSradiation.can_fire)
return
- var/list/things = get_rad_contents(isturf(source) ? source : get_turf(source)) //copypasta because I don't want to put special code in waves to handle their origin
- for(var/k in 1 to things.len)
- var/atom/thing = things[k]
- if(!thing)
- continue
- thing.rad_act(intensity)
-
- if(intensity >= RAD_WAVE_MINIMUM) // Don't bother to spawn rad waves if they're just going to immediately go out
- new /datum/radiation_wave(source, intensity, range_modifier, can_contaminate)
+ var/datum/radiation_pulse_information/pulse_information = new
+ pulse_information.source_ref = WEAKREF(source)
+ pulse_information.max_range = max_range
+ pulse_information.threshold = threshold
+ pulse_information.chance = chance
+ pulse_information.minimum_exposure_time = minimum_exposure_time
- var/static/last_huge_pulse = 0
- if(intensity > 3000 && world.time > last_huge_pulse + 200)
- last_huge_pulse = world.time
- log = TRUE
- if(log)
- var/turf/_source_T = isturf(source) ? source : get_turf(source)
- log_game("Radiation pulse with intensity: [intensity] and range modifier: [range_modifier] in [loc_name(_source_T)] ")
+ SSradiation.processing += pulse_information
return TRUE
+
+/datum/radiation_pulse_information
+ var/datum/weakref/source_ref
+ var/max_range
+ var/threshold
+ var/chance
+ var/minimum_exposure_time
+
+#define MEDIUM_RADIATION_THRESHOLD_RANGE 0.5
+#define EXTREME_RADIATION_CHANCE 30
+
+/// Gets the perceived "danger" of radiation pulse, given the threshold to the target.
+/// Returns a RADIATION_DANGER_* define, see [code/__DEFINES/radiation.dm]
+/proc/get_perceived_radiation_danger(datum/radiation_pulse_information/pulse_information, insulation_to_target)
+ if (insulation_to_target > pulse_information.threshold)
+ // We could get irradiated! The only thing stopping us now is chance, so scale based on that.
+ if (pulse_information.chance >= EXTREME_RADIATION_CHANCE)
+ return PERCEIVED_RADIATION_DANGER_EXTREME
+ else
+ return PERCEIVED_RADIATION_DANGER_HIGH
+ else
+ // We're out of the threshold from being irradiated, but by how much?
+ if (insulation_to_target / pulse_information.threshold <= MEDIUM_RADIATION_THRESHOLD_RANGE)
+ return PERCEIVED_RADIATION_DANGER_MEDIUM
+ else
+ return PERCEIVED_RADIATION_DANGER_LOW
+
+#undef MEDIUM_RADIATION_THRESHOLD_RANGE
+#undef EXTREME_RADIATION_CHANCE
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 1cdd42507f746..a4176679c1f32 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -237,11 +237,6 @@ DEFINE_BITFIELD(mobility_flags, list(
"PULL" = MOBILITY_PULL,
))
-DEFINE_BITFIELD(rad_flags, list(
- "RAD_PROTECT_CONTENTS" = RAD_PROTECT_CONTENTS,
- "RAD_NO_CONTAMINATE" = RAD_NO_CONTAMINATE,
-))
-
DEFINE_BITFIELD(disease_flags, list(
"CURABLE" = CURABLE,
"CAN_CARRY" = CAN_CARRY,
diff --git a/code/controllers/subsystem/radiation.dm b/code/controllers/subsystem/radiation.dm
index 2d764d84ddb64..afd570ff31e07 100644
--- a/code/controllers/subsystem/radiation.dm
+++ b/code/controllers/subsystem/radiation.dm
@@ -1,18 +1,118 @@
-PROCESSING_SUBSYSTEM_DEF(radiation)
+SUBSYSTEM_DEF(radiation)
name = "Radiation"
- flags = SS_NO_INIT | SS_BACKGROUND
- wait = 1 SECONDS
-
- var/list/warned_atoms = list()
-
-/datum/controller/subsystem/processing/radiation/proc/warn(datum/component/radioactive/contamination)
- if(!contamination || QDELETED(contamination))
- return
- var/ref = REF(contamination.parent)
- if(warned_atoms[ref])
- return
- warned_atoms[ref] = TRUE
- var/atom/master = contamination.parent
- SSblackbox.record_feedback("tally", "contaminated", 1, master.type)
- var/msg = "has become contaminated with enough radiation to contaminate other objects. || Source: [contamination.source] || Strength: [contamination.strength]"
- master.investigate_log(msg, INVESTIGATE_RADIATION)
+ flags = SS_BACKGROUND | SS_NO_INIT
+
+ wait = 0.5 SECONDS
+
+ /// A list of radiation sources (/datum/radiation_pulse_information) that have yet to process.
+ /// Do not interact with this directly, use `radiation_pulse` instead.
+ var/list/datum/radiation_pulse_information/processing = list()
+
+/datum/controller/subsystem/radiation/fire(resumed)
+ while (processing.len)
+ var/datum/radiation_pulse_information/pulse_information = popleft(processing)
+
+ var/datum/weakref/source_ref = pulse_information.source_ref
+ var/atom/source = source_ref.resolve()
+ if (isnull(source))
+ continue
+
+ pulse(source, pulse_information)
+
+ if (MC_TICK_CHECK)
+ return
+
+/datum/controller/subsystem/radiation/stat_entry(msg)
+ msg = "[msg] | Pulses: [processing.len]"
+ return ..()
+
+/datum/controller/subsystem/radiation/proc/pulse(atom/source, datum/radiation_pulse_information/pulse_information)
+ var/list/cached_rad_insulations = list()
+
+ for (var/atom/movable/target in range(pulse_information.max_range, source))
+ if (!can_irradiate_basic(target))
+ continue
+
+ var/current_insulation = 1
+
+ for (var/turf/turf_in_between in get_line(source, target) - get_turf(source))
+ var/insulation = cached_rad_insulations[turf_in_between]
+ if (isnull(insulation))
+ insulation = turf_in_between.rad_insulation
+ for (var/atom/on_turf as anything in turf_in_between.contents)
+ insulation *= on_turf.rad_insulation
+ cached_rad_insulations[turf_in_between] = insulation
+
+ current_insulation *= insulation
+
+ if (current_insulation <= pulse_information.threshold)
+ break
+
+ SEND_SIGNAL(target, COMSIG_IN_RANGE_OF_IRRADIATION, pulse_information, current_insulation)
+
+ // Check a second time, because of TRAIT_BYPASS_EARLY_IRRADIATED_CHECK
+ if (HAS_TRAIT(target, TRAIT_IRRADIATED))
+ continue
+
+ if (current_insulation <= pulse_information.threshold)
+ continue
+
+ var/irradiation_result = SEND_SIGNAL(target, COMSIG_IN_THRESHOLD_OF_IRRADIATION, pulse_information)
+ if (irradiation_result & CANCEL_IRRADIATION)
+ continue
+
+ if (pulse_information.minimum_exposure_time && !(irradiation_result & SKIP_MINIMUM_EXPOSURE_TIME_CHECK))
+ target.AddComponent(/datum/component/radiation_countdown, pulse_information.minimum_exposure_time)
+ continue
+
+ if (!prob(pulse_information.chance))
+ continue
+
+ if (irradiate_after_basic_checks(target))
+ target.investigate_log("was irradiated by [source].", INVESTIGATE_RADIATION)
+
+/// Will attempt to irradiate the given target, limited through IC means, such as radiation protected clothing.
+/datum/controller/subsystem/radiation/proc/irradiate(atom/target)
+ if (!can_irradiate_basic(target))
+ return FALSE
+
+ irradiate_after_basic_checks()
+ return TRUE
+
+/datum/controller/subsystem/radiation/proc/irradiate_after_basic_checks(atom/target)
+ PRIVATE_PROC(TRUE)
+
+ if (ishuman(target) && wearing_rad_protected_clothing(target))
+ return FALSE
+
+ target.AddComponent(/datum/component/irradiated)
+ return TRUE
+
+/// Returns whether or not the target can be irradiated by any means.
+/// Does not check for clothing.
+/datum/controller/subsystem/radiation/proc/can_irradiate_basic(atom/target)
+ if (!CAN_IRRADIATE(target))
+ return FALSE
+
+ if (HAS_TRAIT(target, TRAIT_IRRADIATED) && !HAS_TRAIT(target, TRAIT_BYPASS_EARLY_IRRADIATED_CHECK))
+ return FALSE
+
+ if (HAS_TRAIT(target, TRAIT_RADIMMUNE))
+ return FALSE
+
+ return TRUE
+
+/// Returns whether or not the human is covered head to toe in rad-protected clothing.
+/datum/controller/subsystem/radiation/proc/wearing_rad_protected_clothing(mob/living/carbon/human/human)
+ for (var/obj/item/bodypart/limb as anything in human.bodyparts)
+ var/protected = FALSE
+
+ for (var/obj/item/clothing as anything in human.clothingonpart(limb))
+ if (HAS_TRAIT(clothing, TRAIT_RADIATION_PROTECTED_CLOTHING))
+ protected = TRUE
+ break
+
+ if (!protected)
+ return FALSE
+
+ return TRUE
diff --git a/code/datums/armor.dm b/code/datums/armor.dm
index d78f834717433..672ca5e58aba2 100644
--- a/code/datums/armor.dm
+++ b/code/datums/armor.dm
@@ -1,9 +1,9 @@
-#define ARMORID "armor-[melee]-[bullet]-[laser]-[energy]-[bomb]-[bio]-[rad]-[fire]-[acid]-[stamina]-[consume]-[bleed]"
+#define ARMORID "armor-[melee]-[bullet]-[laser]-[energy]-[bomb]-[bio]-[fire]-[acid]-[stamina]-[consume]-[bleed]"
-/proc/getArmor(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, stamina = 0, consume = 0, bleed = 0)
+/proc/getArmor(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, fire = 0, acid = 0, stamina = 0, consume = 0, bleed = 0)
. = locate(ARMORID)
if (!.)
- . = new /datum/armor(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, stamina, consume, bleed)
+ . = new /datum/armor(melee, bullet, laser, energy, bomb, bio, fire, acid, stamina, consume, bleed)
/datum/armor
datum_flags = DF_USE_TAG
@@ -13,21 +13,19 @@
var/energy
var/bomb
var/bio
- var/rad
var/fire
var/acid
var/stamina
var/consume
var/bleed
-/datum/armor/New(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, stamina = 0, consume = 0, bleed = 0)
+/datum/armor/New(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, fire = 0, acid = 0, stamina = 0, consume = 0, bleed = 0)
src.melee = melee
src.bullet = bullet
src.laser = laser
src.energy = energy
src.bomb = bomb
src.bio = bio
- src.rad = rad
src.fire = fire
src.acid = acid
src.stamina = stamina
@@ -35,20 +33,19 @@
src.bleed = bleed
tag = ARMORID
-/datum/armor/proc/modifyRating(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, stamina = 0, consume = 0, bleed = 0)
- return getArmor(src.melee+melee, src.bullet+bullet, src.laser+laser, src.energy+energy, src.bomb+bomb, src.bio+bio, src.rad+rad, src.fire+fire, src.acid+acid, src.stamina+stamina, src.consume+consume, src.bleed+bleed)
+/datum/armor/proc/modifyRating(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, fire = 0, acid = 0, stamina = 0, consume = 0, bleed = 0)
+ return getArmor(src.melee+melee, src.bullet+bullet, src.laser+laser, src.energy+energy, src.bomb+bomb, src.bio+bio, src.fire+fire, src.acid+acid, src.stamina+stamina, src.consume+consume, src.bleed+bleed)
/datum/armor/proc/modifyAllRatings(modifier = 0)
- return getArmor(melee+modifier, bullet+modifier, laser+modifier, energy+modifier, bomb+modifier, bio+modifier, rad+modifier, fire+modifier, acid+modifier, stamina+modifier, consume+modifier, bleed+modifier)
+ return getArmor(melee+modifier, bullet+modifier, laser+modifier, energy+modifier, bomb+modifier, bio+modifier, fire+modifier, acid+modifier, stamina+modifier, consume+modifier, bleed+modifier)
-/datum/armor/proc/setRating(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, consume, bleed)
+/datum/armor/proc/setRating(melee, bullet, laser, energy, bomb, bio, fire, acid, consume, bleed)
return getArmor((isnull(melee) ? src.melee : melee),\
(isnull(bullet) ? src.bullet : bullet),\
(isnull(laser) ? src.laser : laser),\
(isnull(energy) ? src.energy : energy),\
(isnull(bomb) ? src.bomb : bomb),\
(isnull(bio) ? src.bio : bio),\
- (isnull(rad) ? src.rad : rad),\
(isnull(fire) ? src.fire : fire),\
(isnull(acid) ? src.acid : acid),\
(isnull(stamina) ? src.stamina : stamina),\
@@ -59,13 +56,13 @@
return vars[rating]
/datum/armor/proc/getList()
- return list(MELEE = melee, BULLET = bullet, LASER = laser, ENERGY = energy, BOMB = bomb, BIO = bio, RAD = rad, FIRE = fire, ACID = acid, STAMINA = stamina, CONSUME = consume, BLEED = bleed)
+ return list(MELEE = melee, BULLET = bullet, LASER = laser, ENERGY = energy, BOMB = bomb, BIO = bio, FIRE = fire, ACID = acid, STAMINA = stamina, CONSUME = consume, BLEED = bleed)
/datum/armor/proc/attachArmor(datum/armor/AA)
- return getArmor(melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy+AA.energy, bomb+AA.bomb, bio+AA.bio, rad+AA.rad, fire+AA.fire, acid+AA.acid, stamina+AA.stamina, consume+AA.consume, bleed+AA.bleed)
+ return getArmor(melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy+AA.energy, bomb+AA.bomb, bio+AA.bio, fire+AA.fire, acid+AA.acid, stamina+AA.stamina, consume+AA.consume, bleed+AA.bleed)
/datum/armor/proc/detachArmor(datum/armor/AA)
- return getArmor(melee-AA.melee, bullet-AA.bullet, laser-AA.laser, energy-AA.energy, bomb-AA.bomb, bio-AA.bio, rad-AA.rad, fire-AA.fire, acid-AA.acid, stamina-AA.stamina, consume+AA.consume, bleed+AA.bleed)
+ return getArmor(melee-AA.melee, bullet-AA.bullet, laser-AA.laser, energy-AA.energy, bomb-AA.bomb, bio-AA.bio, fire-AA.fire, acid-AA.acid, stamina-AA.stamina, consume+AA.consume, bleed+AA.bleed)
/datum/armor/vv_edit_var(var_name, var_value)
if (var_name == NAMEOF(src, tag))
diff --git a/code/datums/components/connect_loc_behalf.dm b/code/datums/components/connect_loc_behalf.dm
index e8806f9fe58ff..5e266ef5d4e8e 100644
--- a/code/datums/components/connect_loc_behalf.dm
+++ b/code/datums/components/connect_loc_behalf.dm
@@ -1,6 +1,6 @@
/// This component behaves similar to connect_loc, hooking into a signal on a tracked object's turf
/// It has the ability to react to that signal on behalf of a separate listener however
-/// This has great use, primarially for components, but it carries with it some overhead
+/// This has great use, primarily for components, but it carries with it some overhead
/// So we do it separately as it needs to hold state which is very likely to lead to bugs if it remains as an element.
/datum/component/connect_loc_behalf
dupe_mode = COMPONENT_DUPE_UNIQUE
diff --git a/code/datums/components/geiger_sound.dm b/code/datums/components/geiger_sound.dm
new file mode 100644
index 0000000000000..30e879b66681b
--- /dev/null
+++ b/code/datums/components/geiger_sound.dm
@@ -0,0 +1,92 @@
+/// Atoms with this component will play sounds depending on nearby radiation
+/datum/component/geiger_sound
+ var/datum/looping_sound/geiger/sound
+
+ var/last_parent = null
+
+/datum/component/geiger_sound/Initialize(...)
+ if (!isatom(parent))
+ return COMPONENT_INCOMPATIBLE
+
+/datum/component/geiger_sound/Destroy(force, silent)
+ QDEL_NULL(sound)
+
+ if (!isnull(last_parent))
+ UnregisterSignal(last_parent, COMSIG_IN_RANGE_OF_IRRADIATION)
+
+ last_parent = null
+
+ return ..()
+
+/datum/component/geiger_sound/RegisterWithParent()
+ sound = new(parent)
+
+ RegisterSignal(parent, COMSIG_IN_RANGE_OF_IRRADIATION, .proc/on_pre_potential_irradiation)
+
+ ADD_TRAIT(parent, TRAIT_BYPASS_EARLY_IRRADIATED_CHECK, REF(src))
+
+ if (isitem(parent))
+ var/atom/atom_parent = parent
+ RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_moved)
+ register_to_loc(atom_parent.loc)
+
+/datum/component/geiger_sound/UnregisterFromParent()
+ UnregisterSignal(parent, list(
+ COMSIG_MOVABLE_MOVED,
+ COMSIG_IN_RANGE_OF_IRRADIATION,
+ ))
+
+ REMOVE_TRAIT(parent, TRAIT_BYPASS_EARLY_IRRADIATED_CHECK, REF(src))
+
+/datum/component/geiger_sound/proc/on_pre_potential_irradiation(datum/source, datum/radiation_pulse_information/pulse_information, insulation_to_target)
+ SIGNAL_HANDLER
+
+ sound.last_insulation_to_target = insulation_to_target
+ sound.last_radiation_pulse = pulse_information
+ sound.start()
+
+ addtimer(CALLBACK(sound, /datum/looping_sound/proc/stop), TIME_WITHOUT_RADIATION_BEFORE_RESET, TIMER_UNIQUE | TIMER_OVERRIDE)
+
+/datum/component/geiger_sound/proc/on_moved(atom/source)
+ SIGNAL_HANDLER
+ register_to_loc(source.loc)
+
+/datum/component/geiger_sound/proc/register_to_loc(new_loc)
+ if (last_parent == new_loc)
+ return
+
+ if (!isnull(last_parent))
+ UnregisterSignal(last_parent, COMSIG_IN_RANGE_OF_IRRADIATION)
+
+ last_parent = new_loc
+
+ if (!isnull(new_loc))
+ RegisterSignal(new_loc, COMSIG_IN_RANGE_OF_IRRADIATION, .proc/on_pre_potential_irradiation)
+
+/datum/looping_sound/geiger
+ mid_sounds = list(
+ list('sound/items/geiger/low1.ogg'=1, 'sound/items/geiger/low2.ogg'=1, 'sound/items/geiger/low3.ogg'=1, 'sound/items/geiger/low4.ogg'=1),
+ list('sound/items/geiger/med1.ogg'=1, 'sound/items/geiger/med2.ogg'=1, 'sound/items/geiger/med3.ogg'=1, 'sound/items/geiger/med4.ogg'=1),
+ list('sound/items/geiger/high1.ogg'=1, 'sound/items/geiger/high2.ogg'=1, 'sound/items/geiger/high3.ogg'=1, 'sound/items/geiger/high4.ogg'=1),
+ list('sound/items/geiger/ext1.ogg'=1, 'sound/items/geiger/ext2.ogg'=1, 'sound/items/geiger/ext3.ogg'=1, 'sound/items/geiger/ext4.ogg'=1)
+ )
+ mid_length = 2
+ volume = 25
+
+ var/datum/radiation_pulse_information/last_radiation_pulse
+ var/last_insulation_to_target
+
+/datum/looping_sound/geiger/Destroy()
+ last_radiation_pulse = null
+ return ..()
+
+/datum/looping_sound/geiger/get_sound(starttime)
+ if (isnull(last_radiation_pulse))
+ return null
+
+ return ..(starttime, mid_sounds[get_perceived_radiation_danger(last_radiation_pulse, last_insulation_to_target)])
+
+/datum/looping_sound/geiger/stop()
+ . = ..()
+
+ last_radiation_pulse = null
diff --git a/code/datums/components/genetic_damage.dm b/code/datums/components/genetic_damage.dm
new file mode 100644
index 0000000000000..1092f444b6592
--- /dev/null
+++ b/code/datums/components/genetic_damage.dm
@@ -0,0 +1,72 @@
+#define GORILLA_MUTATION_CHANCE_PER_SECOND 0.25
+#define GORILLA_MUTATION_MINIMUM_DAMAGE 2500
+
+/// Genetic damage, given by DNA consoles, will start to deal toxin damage
+/// past a certain threshold, and will go down consistently.
+/// Adding multiple of this component will increase the total damage.
+/// Can turn monkeys into gorillas.
+/datum/component/genetic_damage
+ dupe_mode = COMPONENT_DUPE_UNIQUE
+
+ /// The total genetic damage on the mob
+ var/total_damage = 0
+
+ /// The amount of genetic damage a mob can sustain before taking damage
+ var/minimum_before_damage = 500
+
+ /// The amount of genetic damage to remove per second
+ var/remove_per_second = 1 / 3
+
+ /// The amount of toxin damage to deal per second, if over the minimum before taking damage
+ var/toxin_damage_per_second = 1 / 3
+
+/datum/component/genetic_damage/Initialize(genetic_damage)
+ if (!isliving(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ src.total_damage = genetic_damage
+
+ START_PROCESSING(SSprocessing, src)
+
+/datum/component/genetic_damage/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_LIVING_HEALTHSCAN, .proc/on_healthscan)
+
+/datum/component/genetic_damage/UnregisterFromParent()
+ UnregisterSignal(parent, COMSIG_LIVING_HEALTHSCAN)
+
+/datum/component/genetic_damage/Destroy(force, silent)
+ STOP_PROCESSING(SSprocessing, src)
+
+ return ..()
+
+/datum/component/genetic_damage/InheritComponent(datum/component/genetic_damage/old_component)
+ total_damage += old_component.total_damage
+
+/datum/component/genetic_damage/process(delta_time)
+ if (ismonkey(parent) && total_damage >= GORILLA_MUTATION_MINIMUM_DAMAGE && DT_PROB(GORILLA_MUTATION_CHANCE_PER_SECOND, delta_time))
+ var/mob/living/carbon/carbon_parent = parent
+ carbon_parent.gorillize()
+ qdel(src)
+ return PROCESS_KILL
+
+ if (total_damage >= minimum_before_damage)
+ var/mob/living/living_mob = parent
+ living_mob.adjustToxLoss(toxin_damage_per_second * delta_time)
+
+ total_damage -= remove_per_second * delta_time
+ if (total_damage <= 0)
+ qdel(src)
+ return PROCESS_KILL
+
+/datum/component/genetic_damage/proc/on_healthscan(datum/source, list/render_list, advanced)
+ SIGNAL_HANDLER
+
+ if (advanced)
+ render_list += "Genetic damage: [round(total_damage / minimum_before_damage * 100, 0.1)]%\n"
+ else if (total_damage >= minimum_before_damage)
+ render_list += "Severe genetic damage detected.\n"
+ else
+ render_list += "Minor genetic damage detected.\n"
+
+#undef GORILLA_MUTATION_CHANCE_PER_SECOND
+#undef GORILLA_MUTATION_MINIMUM_DAMAGE
diff --git a/code/datums/components/irradiated.dm b/code/datums/components/irradiated.dm
new file mode 100644
index 0000000000000..63a9379b9c159
--- /dev/null
+++ b/code/datums/components/irradiated.dm
@@ -0,0 +1,201 @@
+#define RADIATION_IMMEDIATE_TOX_DAMAGE 10
+
+#define RADIATION_TOX_DAMAGE_PER_INTERVAL 2
+#define RADIATION_TOX_INTERVAL (25 SECONDS)
+
+#define RADIATION_BURN_SPLOTCH_DAMAGE 11
+#define RADIATION_BURN_INTERVAL_MIN (30 SECONDS)
+#define RADIATION_BURN_INTERVAL_MAX (60 SECONDS)
+
+// Showers process on SSmachines
+#define RADIATION_CLEAN_IMMUNITY_TIME (SSMACHINES_DT + (1 SECONDS))
+
+/// This atom is irradiated, and will glow green.
+/// Humans will take toxin damage until all their toxin damage is cleared.
+/// Items will attempt to irradiate whoever is holding them, as well as whatever they are inside.
+/datum/component/irradiated
+ dupe_mode = COMPONENT_DUPE_UNIQUE
+
+ var/beginning_of_irradiation
+
+ var/burn_splotch_timer_id
+
+ COOLDOWN_DECLARE(clean_cooldown)
+ COOLDOWN_DECLARE(last_tox_damage)
+
+/datum/component/irradiated/Initialize()
+ if (!CAN_IRRADIATE(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ // This isn't incompatible, it's just wrong
+ if (HAS_TRAIT(parent, TRAIT_RADIMMUNE))
+ qdel(src)
+ return
+
+ ADD_TRAIT(parent, TRAIT_IRRADIATED, REF(src))
+
+ create_glow()
+
+ beginning_of_irradiation = world.time
+
+ if (ishuman(parent))
+ var/mob/living/carbon/human/human_parent = parent
+ human_parent.apply_damage(RADIATION_IMMEDIATE_TOX_DAMAGE, TOX)
+ START_PROCESSING(SSobj, src)
+
+ COOLDOWN_START(src, last_tox_damage, RADIATION_TOX_INTERVAL)
+
+ start_burn_splotch_timer()
+
+ human_parent.throw_alert("irradiated", /atom/movable/screen/alert/irradiated)
+
+/datum/component/irradiated/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/on_clean)
+ RegisterSignal(parent, COMSIG_GEIGER_COUNTER_SCAN, .proc/on_geiger_counter_scan)
+
+/datum/component/irradiated/UnregisterFromParent()
+ UnregisterSignal(parent, list(
+ COMSIG_COMPONENT_CLEAN_ACT,
+ COMSIG_GEIGER_COUNTER_SCAN,
+ ))
+
+/datum/component/irradiated/Destroy(force, silent)
+ var/atom/movable/parent_movable = parent
+ if (istype(parent_movable))
+ parent_movable.remove_filter("rad_glow")
+
+ var/mob/living/carbon/human/human_parent = parent
+ if (istype(human_parent))
+ human_parent.clear_alert("irradiated")
+
+ REMOVE_TRAIT(parent, TRAIT_IRRADIATED, REF(src))
+
+ deltimer(burn_splotch_timer_id)
+ STOP_PROCESSING(SSobj, src)
+
+ return ..()
+
+/datum/component/irradiated/process(delta_time)
+ if (!ishuman(parent))
+ return PROCESS_KILL
+
+ if (HAS_TRAIT(parent, TRAIT_RADIMMUNE))
+ qdel(src)
+ return PROCESS_KILL
+
+ var/mob/living/carbon/human/human_parent = parent
+ if (human_parent.getToxLoss() == 0)
+ qdel(src)
+ return PROCESS_KILL
+
+ if (should_halt_effects(parent))
+ return
+
+ if (human_parent.stat > DEAD)
+ human_parent.dna?.species?.handle_radiation(human_parent, world.time - beginning_of_irradiation, delta_time)
+
+ process_tox_damage(human_parent, delta_time)
+
+/datum/component/irradiated/proc/should_halt_effects(mob/living/carbon/human/target)
+ if (IS_IN_STASIS(target))
+ return TRUE
+
+ if (HAS_TRAIT(target, TRAIT_HALT_RADIATION_EFFECTS))
+ return TRUE
+
+ if (!COOLDOWN_FINISHED(src, clean_cooldown))
+ return TRUE
+
+ return FALSE
+
+/datum/component/irradiated/proc/process_tox_damage(mob/living/carbon/human/target, delta_time)
+ if (!COOLDOWN_FINISHED(src, last_tox_damage))
+ return
+
+ target.apply_damage(RADIATION_TOX_DAMAGE_PER_INTERVAL, TOX)
+ COOLDOWN_START(src, last_tox_damage, RADIATION_TOX_INTERVAL)
+
+/datum/component/irradiated/proc/start_burn_splotch_timer()
+ addtimer(CALLBACK(src, .proc/give_burn_splotches), rand(RADIATION_BURN_INTERVAL_MIN, RADIATION_BURN_INTERVAL_MAX), TIMER_STOPPABLE)
+
+/datum/component/irradiated/proc/give_burn_splotches()
+ // This shouldn't be possible, but just in case.
+ if (QDELETED(src))
+ return
+
+ start_burn_splotch_timer()
+
+ var/mob/living/carbon/human/human_parent = parent
+
+ if (should_halt_effects(parent))
+ return
+
+ var/obj/affected_limb = human_parent.get_bodypart(ran_zone())
+ human_parent.visible_message(
+ span_boldwarning("[human_parent]'s [affected_limb.name] bubbles unnaturally, then bursts into blisters!"),
+ span_boldwarning("Your [affected_limb.name] bubbles unnaturally, then bursts into blisters!"),
+ )
+
+ if (human_parent.is_blind())
+ to_chat(human_parent, span_boldwarning("Your [affected_limb.name] feels like it's bubbling, then burns like hell!"))
+
+ human_parent.apply_damage(RADIATION_BURN_SPLOTCH_DAMAGE, BURN, affected_limb)
+ playsound(
+ human_parent,
+ pick('sound/effects/wounds/sizzle1.ogg', 'sound/effects/wounds/sizzle2.ogg'),
+ 50,
+ vary = TRUE,
+ )
+
+/datum/component/irradiated/proc/create_glow()
+ var/atom/movable/parent_movable = parent
+ if (!istype(parent_movable))
+ return
+
+ parent_movable.add_filter("rad_glow", 2, list("type" = "outline", "color" = "#39ff1430", "size" = 2))
+ addtimer(CALLBACK(src, .proc/start_glow_loop, parent_movable), rand(0.1 SECONDS, 1.9 SECONDS)) // Things should look uneven
+
+/datum/component/irradiated/proc/start_glow_loop(atom/movable/parent_movable)
+ var/filter = parent_movable.get_filter("rad_glow")
+ if (!filter)
+ return
+
+ animate(filter, alpha = 110, time = 1.5 SECONDS, loop = -1)
+ animate(alpha = 40, time = 2.5 SECONDS)
+
+/datum/component/irradiated/proc/on_clean(datum/source, clean_types)
+ SIGNAL_HANDLER
+
+ if (!(clean_types & CLEAN_TYPE_RADIATION))
+ return
+
+ if (isitem(parent))
+ qdel(src)
+ return COMPONENT_CLEANED
+
+ COOLDOWN_START(src, clean_cooldown, RADIATION_CLEAN_IMMUNITY_TIME)
+
+/datum/component/irradiated/proc/on_geiger_counter_scan(datum/source, mob/user, obj/item/geiger_counter/geiger_counter)
+ SIGNAL_HANDLER
+
+ if (isliving(source))
+ var/mob/living/living_source = source
+ to_chat(user, span_boldannounce("[icon2html(geiger_counter, user)] Subject is irradiated. Contamination traces back to roughly [DisplayTimeText(world.time - beginning_of_irradiation, 5)] ago. Current toxin levels: [living_source.getToxLoss()]."))
+ else
+ // In case the green wasn't obvious enough...
+ to_chat(user, span_boldannounce("[icon2html(geiger_counter, user)] Target is irradiated."))
+
+ return COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL
+
+/atom/movable/screen/alert/irradiated
+ name = "Irradiated"
+ desc = "You're irradiated! Heal your toxins quick, and stand under a shower to halt the incoming damage."
+ icon_state = "irradiated"
+
+#undef RADIATION_BURN_SPLOTCH_DAMAGE
+#undef RADIATION_BURN_INTERVAL_MIN
+#undef RADIATION_BURN_INTERVAL_MAX
+#undef RADIATION_CLEAN_IMMUNITY_TIME
+#undef RADIATION_IMMEDIATE_TOX_DAMAGE
+#undef RADIATION_TOX_INTERVAL
+#undef RADIATION_TOX_DAMAGE_PER_INTERVAL
diff --git a/code/datums/components/rad_insulation.dm b/code/datums/components/rad_insulation.dm
deleted file mode 100644
index d5c62fbfb8e8c..0000000000000
--- a/code/datums/components/rad_insulation.dm
+++ /dev/null
@@ -1,31 +0,0 @@
-/datum/component/rad_insulation
- var/amount // Multiplier for radiation strength passing through
-
-/datum/component/rad_insulation/Initialize(_amount=RAD_MEDIUM_INSULATION, protects=TRUE, contamination_proof=TRUE)
- if(!isatom(parent))
- return COMPONENT_INCOMPATIBLE
-
- if(protects) // Does this protect things in its contents from being affected?
- RegisterSignal(parent, COMSIG_ATOM_RAD_PROBE, PROC_REF(rad_probe_react))
- if(contamination_proof) // Can this object be contaminated?
- RegisterSignal(parent, COMSIG_ATOM_RAD_CONTAMINATING, PROC_REF(rad_contaminating))
- if(_amount != 1) // If it's 1 it wont have any impact on radiation passing through anyway
- RegisterSignal(parent, COMSIG_ATOM_RAD_WAVE_PASSING, PROC_REF(rad_pass))
-
- amount = _amount
-
-/datum/component/rad_insulation/proc/rad_probe_react(datum/source)
- SIGNAL_HANDLER
-
- return COMPONENT_BLOCK_RADIATION
-
-/datum/component/rad_insulation/proc/rad_contaminating(datum/source, strength)
- SIGNAL_HANDLER
-
- return COMPONENT_BLOCK_CONTAMINATION
-
-/datum/component/rad_insulation/proc/rad_pass(datum/source, datum/radiation_wave/wave, index)
- SIGNAL_HANDLER
-
- wave.intensity[index] *= amount
- return COMPONENT_RAD_WAVE_HANDLED
diff --git a/code/datums/components/radiation_countdown.dm b/code/datums/components/radiation_countdown.dm
new file mode 100644
index 0000000000000..dfb77d360af4c
--- /dev/null
+++ b/code/datums/components/radiation_countdown.dm
@@ -0,0 +1,55 @@
+// Should be more than any minimum exposure time coming in
+#define TIME_UNTIL_DELETION (10 SECONDS)
+
+/// Begins the countdown before a target can be irradiated.
+/// Added by the radiation subsystem when a pulse information has a minimum exposure time.
+/// Will clear itself out after a while.
+/datum/component/radiation_countdown
+ /// The time this component was added
+ var/time_added
+
+ /// The shortest minimum time before being irradiated.
+ /// If the source has an attempted irradiation again outside this timeframe, it will go through.
+ var/minimum_exposure_time
+
+/datum/component/radiation_countdown/Initialize(minimum_exposure_time)
+ if (!CAN_IRRADIATE(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ src.minimum_exposure_time = minimum_exposure_time
+
+ time_added = world.time
+
+ to_chat(parent, span_userdanger("The air around you feels warm...perhaps you should go somewhere else."))
+
+ start_deletion_timer()
+
+/datum/component/radiation_countdown/proc/start_deletion_timer()
+ addtimer(CALLBACK(src, .proc/remove_self), TIME_UNTIL_DELETION, TIMER_UNIQUE | TIMER_OVERRIDE)
+
+/datum/component/radiation_countdown/proc/remove_self()
+ if (!HAS_TRAIT(parent, TRAIT_IRRADIATED))
+ to_chat(parent, span_notice("The air here feels safer."))
+
+ qdel(src)
+
+/datum/component/radiation_countdown/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_IN_THRESHOLD_OF_IRRADIATION, .proc/on_pre_potential_irradiation_within_range)
+
+/datum/component/radiation_countdown/UnregisterFromParent()
+ UnregisterSignal(parent, COMSIG_IN_THRESHOLD_OF_IRRADIATION)
+
+/datum/component/radiation_countdown/proc/on_pre_potential_irradiation_within_range(datum/source, datum/radiation_pulse_information/pulse_information)
+ SIGNAL_HANDLER
+
+ minimum_exposure_time = min(minimum_exposure_time, pulse_information.minimum_exposure_time)
+
+ start_deletion_timer()
+
+ // Played with fire, now you might be getting irradiated.
+ if (world.time - time_added >= minimum_exposure_time)
+ return SKIP_MINIMUM_EXPOSURE_TIME_CHECK
+
+ return CANCEL_IRRADIATION
+
+#undef TIME_UNTIL_DELETION
diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm
deleted file mode 100644
index 3a2109a1643ac..0000000000000
--- a/code/datums/components/radioactive.dm
+++ /dev/null
@@ -1,117 +0,0 @@
-#define RAD_AMOUNT_LOW 50
-#define RAD_AMOUNT_MEDIUM 200
-#define RAD_AMOUNT_HIGH 500
-#define RAD_AMOUNT_EXTREME 1000
-
-/datum/component/radioactive
- dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
-
- var/source
- var/hl3_release_date //the half-life measured in ticks
- var/strength
- var/can_contaminate
-
-/datum/component/radioactive/Initialize(_strength=0, _source, _half_life=RAD_HALF_LIFE, _can_contaminate=TRUE)
- strength = _strength
- source = _source
- hl3_release_date = _half_life
- can_contaminate = _can_contaminate
- if(istype(parent, /atom))
- RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(rad_examine))
- RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(rad_clean))
- if(istype(parent, /obj/item))
- RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(rad_attack))
- RegisterSignal(parent, COMSIG_ITEM_ATTACK_OBJ, PROC_REF(rad_attack))
- else
- return COMPONENT_INCOMPATIBLE
- if(strength * (RAD_CONTAMINATION_STR_COEFFICIENT * RAD_CONTAMINATION_BUDGET_SIZE) > RAD_COMPONENT_MINIMUM)
- SSradiation.warn(src)
- //Let's make er glow
- //This relies on parent not being a turf or something. IF YOU CHANGE THAT, CHANGE THIS
- var/atom/movable/master = parent
- master.add_filter("rad_glow", 2, list("type" = "outline", "color" = "#39ff1430", "size" = 2))
- addtimer(CALLBACK(src, PROC_REF(glow_loop), master), rand(1,19))//Things should look uneven
- START_PROCESSING(SSradiation, src)
-
-/datum/component/radioactive/Destroy()
- STOP_PROCESSING(SSradiation, src)
- var/atom/movable/master = parent
- master.remove_filter("rad_glow")
- return ..()
-
-/datum/component/radioactive/process(delta_time)
- if(!DT_PROB(50, delta_time))
- return
- if(strength >= RAD_WAVE_MINIMUM)
- radiation_pulse(parent, strength, RAD_DISTANCE_COEFFICIENT*RAD_DISTANCE_COEFFICIENT_COMPONENT_MULTIPLIER, FALSE, can_contaminate)
- if(!hl3_release_date)
- return
- strength -= strength / hl3_release_date
-
- if(strength < RAD_COMPONENT_MINIMUM)
- qdel(src)
-
-/datum/component/radioactive/proc/glow_loop(atom/movable/master)
- var/filter = master.get_filter("rad_glow")
- if(filter)
- animate(filter, alpha = 110, time = 15, loop = -1)
- animate(alpha = 40, time = 25)
-
-/datum/component/radioactive/InheritComponent(datum/component/C, i_am_original, _strength, _source, _half_life, _can_contaminate)
- if(!i_am_original)
- return
- if(!hl3_release_date) // Permanently radioactive things don't get to grow stronger
- return
- if(C)
- var/datum/component/radioactive/other = C
- strength += other.strength
- else
- strength = max(strength, _strength)
-
-/datum/component/radioactive/proc/rad_examine(datum/source, mob/user, atom/thing)
- SIGNAL_HANDLER
-
- var/atom/master = parent
- var/list/out = list()
- if(get_dist(master, user) <= 1)
- out += "The air around [master] feels warm"
- switch(strength)
- if(RAD_AMOUNT_LOW to RAD_AMOUNT_MEDIUM)
- out += "[length(out) ? " and it " : "[master] "]feels weird to look at."
- if(RAD_AMOUNT_MEDIUM to RAD_AMOUNT_HIGH)
- out += "[length(out) ? " and it " : "[master] "]seems to be glowing a bit."
- if(RAD_AMOUNT_HIGH to INFINITY) //At this level the object can contaminate other objects
- out += "[length(out) ? " and it " : "[master] "]hurts to look at."
- if(!LAZYLEN(out))
- return
- out += "."
- to_chat(user, "[out.Join()]")
-
-/datum/component/radioactive/proc/rad_attack(datum/source, atom/movable/target, mob/living/user)
- SIGNAL_HANDLER
-
- radiation_pulse(parent, strength/20)
- target.rad_act(strength/2)
- if(!hl3_release_date)
- return
- strength -= strength / hl3_release_date
-
-/datum/component/radioactive/proc/rad_clean(datum/source, clean_types)
- if(QDELETED(src))
- return
-
- if(!(clean_types & CLEAN_TYPE_RADIATION))
- return
-
- if(!(clean_types & CLEAN_TYPE_WEAK))
- qdel(src)
- return
-
- strength = max(0, (strength - (RAD_BACKGROUND_RADIATION * 2)))
- if(strength <= RAD_BACKGROUND_RADIATION)
- qdel(src)
-
-#undef RAD_AMOUNT_LOW
-#undef RAD_AMOUNT_MEDIUM
-#undef RAD_AMOUNT_HIGH
-#undef RAD_AMOUNT_EXTREME
diff --git a/code/datums/elements/radiation_protected_clothing.dm b/code/datums/elements/radiation_protected_clothing.dm
new file mode 100644
index 0000000000000..152ed26e26991
--- /dev/null
+++ b/code/datums/elements/radiation_protected_clothing.dm
@@ -0,0 +1,25 @@
+/// Marks the item as being radiation protected.
+/// Adds the TRAIT_RADIATION_PROTECTED_CLOTHING trait, as well as adding an
+/// extra bit to the examine descrpition.
+/datum/element/radiation_protected_clothing
+ element_flags = ELEMENT_DETACH
+
+/datum/element/radiation_protected_clothing/Attach(datum/target)
+ . = ..()
+
+ if (!isclothing(target))
+ return ELEMENT_INCOMPATIBLE
+
+ ADD_TRAIT(target, TRAIT_RADIATION_PROTECTED_CLOTHING, REF(src))
+ RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine)
+
+/datum/element/radiation_protected_clothing/Detach(datum/source, ...)
+ REMOVE_TRAIT(source, TRAIT_RADIATION_PROTECTED_CLOTHING, REF(src))
+ UnregisterSignal(source, COMSIG_PARENT_EXAMINE)
+
+ return ..()
+
+/datum/element/radiation_protected_clothing/proc/on_examine(datum/source, mob/user, list/examine_text)
+ SIGNAL_HANDLER
+
+ examine_text += span_notice("A patch with a hazmat sign on the side suggests it would protect you from radiation.")
diff --git a/code/datums/elements/radioactive.dm b/code/datums/elements/radioactive.dm
new file mode 100644
index 0000000000000..b1a68a314a1db
--- /dev/null
+++ b/code/datums/elements/radioactive.dm
@@ -0,0 +1,38 @@
+#define DELAY_BETWEEN_RADIATION_PULSES (3 SECONDS)
+
+/// This atom will regularly pulse radiation.
+/// As this is only applied on uranium objects for now, this defaults to uranium constants.
+/datum/element/radioactive
+ element_flags = ELEMENT_DETACH
+
+ var/list/radioactive_objects = list()
+
+/datum/element/radioactive/New()
+ START_PROCESSING(SSdcs, src)
+
+/datum/element/radioactive/Attach(datum/target)
+ . = ..()
+
+ radioactive_objects[target] = world.time
+
+/datum/element/radioactive/Detach(datum/source, ...)
+ radioactive_objects -= source
+
+ return ..()
+
+/datum/element/radioactive/process(delta_time)
+ for (var/radioactive_object in radioactive_objects)
+ if (world.time - radioactive_objects[radioactive_object] < DELAY_BETWEEN_RADIATION_PULSES)
+ continue
+
+ radiation_pulse(
+ radioactive_object,
+ max_range = 3,
+ threshold = RAD_LIGHT_INSULATION,
+ chance = URANIUM_IRRADIATION_CHANCE,
+ minimum_exposure_time = URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME,
+ )
+
+ radioactive_objects[radioactive_object] = world.time
+
+#undef DELAY_BETWEEN_RADIATION_PULSES
diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm
index 5b02eef9c4ce6..70a20aa56963b 100644
--- a/code/datums/looping_sounds/item_sounds.dm
+++ b/code/datums/looping_sounds/item_sounds.dm
@@ -1,41 +1,3 @@
-#define RAD_GEIGER_LOW 100 // Geiger counter sound thresholds
-#define RAD_GEIGER_MEDIUM 500
-#define RAD_GEIGER_HIGH 1000
-
-/datum/looping_sound/geiger
- mid_sounds = list(
- list('sound/items/geiger/low1.ogg'=1, 'sound/items/geiger/low2.ogg'=1, 'sound/items/geiger/low3.ogg'=1, 'sound/items/geiger/low4.ogg'=1),
- list('sound/items/geiger/med1.ogg'=1, 'sound/items/geiger/med2.ogg'=1, 'sound/items/geiger/med3.ogg'=1, 'sound/items/geiger/med4.ogg'=1),
- list('sound/items/geiger/high1.ogg'=1, 'sound/items/geiger/high2.ogg'=1, 'sound/items/geiger/high3.ogg'=1, 'sound/items/geiger/high4.ogg'=1),
- list('sound/items/geiger/ext1.ogg'=1, 'sound/items/geiger/ext2.ogg'=1, 'sound/items/geiger/ext3.ogg'=1, 'sound/items/geiger/ext4.ogg'=1)
- )
- mid_length = 2
- volume = 25
- var/last_radiation
-
-/datum/looping_sound/geiger/get_sound()
- var/danger
- switch(last_radiation)
- if(RAD_BACKGROUND_RADIATION to RAD_GEIGER_LOW)
- danger = 1
- if(RAD_GEIGER_LOW to RAD_GEIGER_MEDIUM)
- danger = 2
- if(RAD_GEIGER_MEDIUM to RAD_GEIGER_HIGH)
- danger = 3
- if(RAD_GEIGER_HIGH to INFINITY)
- danger = 4
- else
- return null
- return ..(mid_sounds[danger])
-
-/datum/looping_sound/geiger/stop()
- . = ..()
- last_radiation = 0
-
-#undef RAD_GEIGER_LOW
-#undef RAD_GEIGER_MEDIUM
-#undef RAD_GEIGER_HIGH
-
/datum/looping_sound/reverse_bear_trap
mid_sounds = list('sound/effects/clock_tick.ogg')
mid_length = 3.5
diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm
index 32600b825d236..6ba7f71581320 100644
--- a/code/datums/martial/krav_maga.dm
+++ b/code/datums/martial/krav_maga.dm
@@ -217,4 +217,4 @@
siemens_coefficient = 0
permeability_coefficient = 0.05
strip_delay = 80
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0)
diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm
index 843a0999e4c27..27f4b46010a33 100644
--- a/code/datums/materials/_material.dm
+++ b/code/datums/materials/_material.dm
@@ -29,7 +29,7 @@ Simple datum which is instanced once per type and is used for every object of sa
var/value_per_unit = 0
/*
///Armor modifiers, multiplies an items normal armor vars by these amounts.
- var/armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1, "acid" = 1)
+ var/armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "fire" = 1, "acid" = 1)
///How beautiful is this material per unit
var/beauty_modifier = 0
*/
@@ -41,7 +41,7 @@ Simple datum which is instanced once per type and is used for every object of sa
var/texture_layer_icon_state
///a cached icon for the texture filter
var/cached_texture_filter_icon
-
+
/datum/material/New()
. = ..()
diff --git a/code/datums/materials/alloys.dm b/code/datums/materials/alloys.dm
index 40734febd327d..de24ff3a710d5 100644
--- a/code/datums/materials/alloys.dm
+++ b/code/datums/materials/alloys.dm
@@ -36,7 +36,7 @@
value_per_unit = 0.135
strength_modifier = 1.25
integrity_modifier = 1.5 // Heavy duty.
- //armor_modifiers = list(MELEE = 1.4, BULLET = 1.4, LASER = 1.1, ENERGY = 1.1, BOMB = 1.5, BIO = 1, RAD = 1.5, FIRE = 1.1, ACID = 1)
+ //armor_modifiers = list(MELEE = 1.4, BULLET = 1.4, LASER = 1.1, ENERGY = 1.1, BOMB = 1.5, BIO = 1, FIRE = 1.1, ACID = 1)
sheet_type = /obj/item/stack/sheet/plasteel
categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE)
composition = list(/datum/material/iron=1, /datum/material/plasma=1)
@@ -69,7 +69,7 @@
value_per_unit = 0.225
strength_modifier = 0.9 // It's a lightweight alloy.
integrity_modifier = 1.3
- //armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.4, ENERGY = 1.4, BOMB = 1.1, BIO = 1.2, RAD = 1.1, FIRE = 1.5, ACID = 1)
+ //armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.4, ENERGY = 1.4, BOMB = 1.1, BIO = 1.2, FIRE = 1.5, ACID = 1)
sheet_type = /obj/item/stack/sheet/mineral/plastitanium
categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE)
composition = list(/datum/material/titanium=1, /datum/material/plasma=1)
@@ -86,7 +86,7 @@
alpha = 150
init_flags = MATERIAL_INIT_MAPLOAD
integrity_modifier = 0.5
- //armor_modifiers = list(MELEE = 0.8, BULLET = 0.8, LASER = 1.2, ENERGY = 1.2, BOMB = 0.3, BIO = 1.2, RAD = 1, FIRE = 2, ACID = 2)
+ //armor_modifiers = list(MELEE = 0.8, BULLET = 0.8, LASER = 1.2, ENERGY = 1.2, BOMB = 0.3, BIO = 1.2, FIRE = 2, ACID = 2)
sheet_type = /obj/item/stack/sheet/plasmaglass
//shard_type = /obj/item/shard/plasma
value_per_unit = 0.075
@@ -104,7 +104,7 @@
greyscale_colors = "#cfbee096"
alpha = 150
init_flags = MATERIAL_INIT_MAPLOAD
- //armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 0.8, ENERGY = 0.8, BOMB = 0.5, BIO = 1.2, RAD = 1, FIRE = 0.8, ACID = 2)
+ //armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 0.8, ENERGY = 0.8, BOMB = 0.5, BIO = 1.2, FIRE = 0.8, ACID = 2)
sheet_type = /obj/item/stack/sheet/titaniumglass
//shard_type = /obj/item/shard
value_per_unit = 0.04
@@ -123,7 +123,7 @@
alpha = 150
init_flags = MATERIAL_INIT_MAPLOAD
integrity_modifier = 1.1
- //armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 1.2, ENERGY = 1.2, BOMB = 0.5, BIO = 1.2, RAD = 1, FIRE = 2, ACID = 2)
+ //armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 1.2, ENERGY = 1.2, BOMB = 0.5, BIO = 1.2, FIRE = 2, ACID = 2)
sheet_type = /obj/item/stack/sheet/plastitaniumglass
//shard_type = /obj/item/shard/plasma
value_per_unit = 0.125
@@ -144,7 +144,7 @@
init_flags = MATERIAL_INIT_MAPLOAD
strength_modifier = 1.5 // It's twice the density of plasteel and just as durable. Getting hit with it is going to HURT.
integrity_modifier = 1.5
- //armor_modifiers = list(MELEE = 1.4, BULLET = 1.4, LASER = 1.2, ENERGY = 1.2, BOMB = 1.5, BIO = 1.2, RAD = 1.5, FIRE = 1.2, ACID = 1.2)
+ //armor_modifiers = list(MELEE = 1.4, BULLET = 1.4, LASER = 1.2, ENERGY = 1.2, BOMB = 1.5, BIO = 1.2, FIRE = 1.2, ACID = 1.2)
sheet_type = /obj/item/stack/sheet/mineral/abductor
value_per_unit = 0.4
categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE)
diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm
index 94db9c8246f14..9ae6006754151 100644
--- a/code/datums/materials/basemats.dm
+++ b/code/datums/materials/basemats.dm
@@ -69,11 +69,19 @@ Unless you know what you're doing, only use the first three numbers. They're in
/datum/material/uranium/on_applied(atom/source, amount, material_flags)
. = ..()
- source.AddComponent(/datum/component/radioactive, amount / 50, source, 0) //half-life of 0 because we keep on going. amount / 50 means 40 radiation per sheet.
+ // Uranium structures should irradiate, but not items, because item irradiation is a lot more annoying.
+ // For example, consider picking up uranium as a miner.
+ if (isitem(source))
+ return
+
+ source.AddElement(/datum/element/radioactive)
/datum/material/uranium/on_removed(atom/source, amount, material_flags)
. = ..()
- qdel(source.GetComponent(/datum/component/radioactive))
+ if (isitem(source))
+ return
+
+ source.RemoveElement(/datum/element/radioactive)
///Adds firestacks on hit (Still needs support to turn into gas on destruction)
/datum/material/plasma
diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm
index a7eb976c49c1a..c5eeab00dc1ee 100644
--- a/code/game/gamemodes/clown_ops/clown_weapons.dm
+++ b/code/game/gamemodes/clown_ops/clown_weapons.dm
@@ -17,7 +17,7 @@
desc = "advanced clown shoes that protect the wearer and render them nearly immune to slipping on their own peels. They also squeak at 100% capacity."
clothing_flags = NOSLIP
slowdown = SHOES_SLOWDOWN
- armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 10, RAD = 0, FIRE = 70, ACID = 50, STAMINA = 25, BLEED = 40)
+ armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 10, FIRE = 70, ACID = 50, STAMINA = 25, BLEED = 40)
strip_delay = 70
resistance_flags = NONE
permeability_coefficient = 0.05
@@ -32,7 +32,7 @@
name = "mk-honk combat shoes"
desc = "The culmination of years of clown combat research, these shoes leave a trail of chaos in their wake. They will slowly recharge themselves over time, or can be manually charged with bananium."
slowdown = SHOES_SLOWDOWN
- armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 10, RAD = 0, FIRE = 70, ACID = 50, STAMINA = 25, BLEED = 40)
+ armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 10, FIRE = 70, ACID = 50, STAMINA = 25, BLEED = 40)
strip_delay = 70
resistance_flags = NONE
permeability_coefficient = 0.05
@@ -294,7 +294,7 @@
base_icon_state = "darkhonker"
max_integrity = 300
deflect_chance = 15
- armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 35, BOMB = 20, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 35, BOMB = 20, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_temperature = 35000
operation_req_access = list(ACCESS_SYNDICATE)
internals_req_access = list(ACCESS_SYNDICATE)
diff --git a/code/game/gamemodes/gangs/dominator.dm b/code/game/gamemodes/gangs/dominator.dm
index 7d9a88b0f97dd..0a05afa43cdb2 100644
--- a/code/game/gamemodes/gangs/dominator.dm
+++ b/code/game/gamemodes/gangs/dominator.dm
@@ -14,7 +14,7 @@
max_hit_damage = 30
integrity_failure = 0.33
move_resist = INFINITY
- armor = list(MELEE = 20, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 10, BIO = 100, RAD = 100, FIRE = 10, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 20, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 10, BIO = 100, FIRE = 10, ACID = 70, STAMINA = 0, BLEED = 0)
var/datum/team/gang/gang
var/operating = FALSE //false=standby or broken, true=takeover
var/warned = FALSE //if this device has set off the warning at <3 minutes yet
diff --git a/code/game/gamemodes/gangs/gang_items.dm b/code/game/gamemodes/gangs/gang_items.dm
index 519d9a350b541..1c1e3f6c50b47 100644
--- a/code/game/gamemodes/gangs/gang_items.dm
+++ b/code/game/gamemodes/gangs/gang_items.dm
@@ -153,11 +153,11 @@
var/obj/item/storage/box/armor_box = new (get_turf(user))
var/obj/item/clothing/suit/suit = new gang.suit(armor_box)
- suit.armor = suit.armor.setRating(melee = 20, bullet = 35, laser = 10, energy = 10, bomb = 30, bio = 0, rad = 0, fire = 30, acid = 30)
+ suit.armor = suit.armor.setRating(melee = 20, bullet = 35, laser = 10, energy = 10, bomb = 30, bio = 0, fire = 30, acid = 30)
suit.desc += " Tailored for the [gang.name] Gang to offer the wearer moderate protection against ballistics and physical trauma."
var/obj/item/clothing/head/hat = new gang.hat(armor_box)
- hat.armor = hat.armor.setRating(melee = 20, bullet = 35, laser = 10, energy = 10, bomb = 30, bio = 0, rad = 0, fire = 30, acid = 30)
+ hat.armor = hat.armor.setRating(melee = 20, bullet = 35, laser = 10, energy = 10, bomb = 30, bio = 0, fire = 30, acid = 30)
hat.desc += " Tailored for the [gang.name] Gang to offer the wearer moderate protection against ballistics and physical trauma."
user.put_in_hands(armor_box)
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index c8de830c096ed..d671d8f253585 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -147,7 +147,7 @@ Class Procs:
/obj/machinery/Initialize(mapload)
if(!armor)
- armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0)
. = ..()
GLOB.machines += src
diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm
index 5de006e590189..fe82514f14056 100644
--- a/code/game/machinery/ai_slipper.dm
+++ b/code/game/machinery/ai_slipper.dm
@@ -6,7 +6,7 @@
layer = PROJECTILE_HIT_THRESHOLD_LAYER
plane = FLOOR_PLANE
max_integrity = 200
- armor = list(MELEE = 50, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
var/uses = 20
var/cooldown = 0
diff --git a/code/game/machinery/airlock_cycle_control.dm b/code/game/machinery/airlock_cycle_control.dm
index eac10a08fbc9f..1a3882783be1a 100644
--- a/code/game/machinery/airlock_cycle_control.dm
+++ b/code/game/machinery/airlock_cycle_control.dm
@@ -53,7 +53,7 @@
req_access = list(ACCESS_ATMOSPHERICS)
max_integrity = 250
integrity_failure = 0.2
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
layer = ABOVE_WINDOW_LAYER
diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm
index 79f53e53dc643..bcf31805824d9 100644
--- a/code/game/machinery/buttons.dm
+++ b/code/game/machinery/buttons.dm
@@ -11,7 +11,7 @@
var/device_type = null
var/id = null
var/initialized_button = 0
- armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 10, BIO = 100, RAD = 100, FIRE = 90, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 10, BIO = 100, FIRE = 90, ACID = 70, STAMINA = 0, BLEED = 0)
use_power = IDLE_POWER_USE
idle_power_usage = 2
resistance_flags = LAVA_PROOF | FIRE_PROOF
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 829dad51359f0..e90264630a3f2 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -13,7 +13,7 @@
layer = WALL_OBJ_LAYER
resistance_flags = FIRE_PROOF
- armor = list(MELEE = 50, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, BIO = 0, RAD = 0, FIRE = 90, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, BIO = 0, FIRE = 90, ACID = 50, STAMINA = 0, BLEED = 0)
max_integrity = 100
integrity_failure = 0.5
var/default_camera_icon = "camera" //the camera's base icon used by update_icon - icon_state is primarily used for mapping display purposes.
diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm
index ebaa93ed3ada6..525acb56f4072 100644
--- a/code/game/machinery/computer/_computer.dm
+++ b/code/game/machinery/computer/_computer.dm
@@ -12,7 +12,7 @@
active_power_usage = 300
max_integrity = 200
integrity_failure = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 40, ACID = 20, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 40, ACID = 20, STAMINA = 0, BLEED = 0)
clicksound = "keyboard"
light_system = STATIC_LIGHT
light_range = 1
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index b19a591943781..c205806191deb 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -304,7 +304,7 @@
anim_parts = "left=-13,0;right=13,0"
normal_integrity = 150
damage_deflection = 5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
/obj/machinery/door/airlock/bronze/seethru
assemblytype = /obj/structure/door_assembly/door_assembly_bronze/seethru
@@ -582,7 +582,7 @@
desc = "An airlock hastily corrupted by blood magic, it is unusually brittle in this state."
normal_integrity = 150
damage_deflection = 5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
//////////////////////////////////
/*
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index b303eb31cd972..12a44fbacf274 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -12,7 +12,7 @@
pass_flags_self = PASSDOORS
z_flags = Z_BLOCK_IN_DOWN | Z_BLOCK_IN_UP
max_integrity = 350
- armor = list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 10, BIO = 100, RAD = 100, FIRE = 80, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 10, BIO = 100, FIRE = 80, ACID = 70, STAMINA = 0, BLEED = 0)
CanAtmosPass = ATMOS_PASS_DENSITY
flags_1 = PREVENT_CLICK_UNDER_1
ricochet_chance_mod = 0.8
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index b116e9250aa2b..0e8e9a732d7b4 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -24,7 +24,7 @@
layer = BELOW_OPEN_DOOR_LAYER
closingLayer = CLOSED_FIREDOOR_LAYER
assemblytype = /obj/structure/firelock_frame
- armor = list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 10, BIO = 100, RAD = 100, FIRE = 95, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 10, BIO = 100, FIRE = 95, ACID = 70, STAMINA = 0, BLEED = 0)
interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_REQUIRES_SILICON | INTERACT_MACHINE_OPEN
air_tight = TRUE
open_speed = 2
diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm
index f19e832377097..167b8c18eba75 100644
--- a/code/game/machinery/doors/poddoor.dm
+++ b/code/game/machinery/doors/poddoor.dm
@@ -11,7 +11,7 @@
heat_proof = TRUE
safe = FALSE
max_integrity = 600
- armor = list(MELEE = 50, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 50, BIO = 100, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
damage_deflection = 70
var/datum/crafting_recipe/recipe_type = /datum/crafting_recipe/blast_doors
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index c531f9d1fe7e6..ddba9dc19bd5d 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -9,7 +9,7 @@
var/base_state = "left"
max_integrity = 150 //If you change this, consider changing ../door/window/brigdoor/ max_integrity at the bottom of this .dm file
integrity_failure = 0
- armor = list(MELEE = 20, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 10, BIO = 100, RAD = 100, FIRE = 70, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 20, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 10, BIO = 100, FIRE = 70, ACID = 100, STAMINA = 0, BLEED = 0)
visible = FALSE
flags_1 = ON_BORDER_1
opacity = FALSE
@@ -437,7 +437,7 @@
shards = 0
rods = 0
max_integrity = 50
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 100, RAD = 100, FIRE = 70, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 100, FIRE = 70, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF | ACID_PROOF
operationdelay = 10
var/made_glow = FALSE
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index d429b35023c00..473078adfcafe 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -20,7 +20,7 @@
icon_state = "fire0"
max_integrity = 250
integrity_failure = 0.4
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
use_power = IDLE_POWER_USE
idle_power_usage = 2
active_power_usage = 6
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index 45e5e116c44e1..d4cf4a5f45dc8 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -42,7 +42,7 @@ Possible to do for anyone motivated enough:
idle_power_usage = 5
active_power_usage = 100
max_integrity = 300
- armor = list(MELEE = 50, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, BIO = 0, FIRE = 50, ACID = 0, STAMINA = 0, BLEED = 0)
circuit = /obj/item/circuitboard/machine/holopad
var/list/masters //List of living mobs that use the holopad
var/list/holorays //Holoray-mob link.
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index dcce9b812b5a1..7dd9406e1eabc 100644
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -10,7 +10,7 @@
active_power_usage = 4
max_integrity = 300
circuit = /obj/item/circuitboard/machine/igniter
- armor = list(MELEE = 50, BULLET = 30, LASER = 70, ENERGY = 50, BOMB = 20, BIO = 0, RAD = 0, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 30, LASER = 70, ENERGY = 50, BOMB = 20, BIO = 0, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
var/id = null
var/on = FALSE
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index 35e77322e7adc..f4216dcca7018 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -9,7 +9,7 @@
desc = "A radio beacon used for bot navigation."
layer = UNDER_CATWALK
max_integrity = 500
- armor = list(MELEE = 70, BULLET = 70, LASER = 70, ENERGY = 70, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 70, BULLET = 70, LASER = 70, ENERGY = 70, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
var/open = FALSE // true if cover is open
var/locked = TRUE // true if controls are locked
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index e6cee442b0401..9c8aaa3458909 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -39,7 +39,7 @@
//the turret's health
max_integrity = 160
integrity_failure = 0.5
- armor = list(MELEE = 50, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 0, RAD = 0, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 0, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
//if the turret's behaviour control access is locked
var/locked = TRUE
@@ -762,7 +762,7 @@ DEFINE_BUFFER_HANDLER(/obj/machinery/porta_turret)
lethal_projectile = /obj/projectile/bullet/p50/penetrator/shuttle
lethal_projectile_sound = 'sound/weapons/gunshot_smg.ogg'
stun_projectile_sound = 'sound/weapons/gunshot_smg.ogg'
- armor = list(MELEE = 50, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 80, BIO = 0, RAD = 0, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 80, BIO = 0, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
/obj/machinery/porta_turret/syndicate/shuttle/target(atom/movable/target)
if(target)
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index 0e359250bb1fe..c509691b0be4b 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -76,7 +76,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments)
var/anon_tips_receiver = FALSE // Can you relay information to this console?
var/auth_id = "Unknown" //Will contain the name and and job of the person who verified it
max_integrity = 300
- armor = list(MELEE = 70, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 0, BIO = 0, RAD = 0, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 70, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 0, BIO = 0, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
light_color = LIGHT_COLOR_GREEN
light_power = 1.5
diff --git a/code/game/machinery/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm
index 1c1a9330a5d21..f05c0cf0b3ada 100644
--- a/code/game/machinery/shuttle/shuttle_heater.dm
+++ b/code/game/machinery/shuttle/shuttle_heater.dm
@@ -23,7 +23,7 @@
density = TRUE
z_flags = Z_BLOCK_IN_DOWN | Z_BLOCK_IN_UP
max_integrity = 400
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
layer = OBJ_LAYER
showpipe = TRUE
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index 5df43092dea74..78c0c12fed830 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -13,7 +13,7 @@
name = "space heater"
desc = "Made by Space Amish using traditional space techniques, this heater/cooler is guaranteed not to set the station on fire. Warranty void if used in engines."
max_integrity = 250
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 100, FIRE = 80, ACID = 10, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 80, ACID = 10, STAMINA = 0, BLEED = 0)
circuit = /obj/item/circuitboard/machine/space_heater
//We don't use area power, we always use the cell
use_power = NO_POWER_USE
diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm
index 8879663f62add..fe2608c2c8c65 100644
--- a/code/game/machinery/telecomms/machines/message_server.dm
+++ b/code/game/machinery/telecomms/machines/message_server.dm
@@ -14,7 +14,7 @@
use_power = IDLE_POWER_USE
idle_power_usage = 10
active_power_usage = 100
- armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0)
var/obj/item/stored
investigate_flags = ADMIN_INVESTIGATE_TARGET
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index 64400f96130c8..f73edfbdff0c0 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -24,7 +24,7 @@ RLD
w_class = WEIGHT_CLASS_LARGE
custom_materials = list(/datum/material/iron=100000)
req_access_txt = "11"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
var/datum/effect_system/spark_spread/spark_system
var/matter = 0
diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm
index 413c3f36b725b..9569bbefdf904 100644
--- a/code/game/objects/items/RPD.dm
+++ b/code/game/objects/items/RPD.dm
@@ -214,7 +214,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
w_class = WEIGHT_CLASS_LARGE
slot_flags = ITEM_SLOT_BELT
custom_materials = list(/datum/material/iron=75000, /datum/material/glass=37500)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
var/datum/effect_system/spark_spread/spark_system
var/working = 0
diff --git a/code/game/objects/items/RSF.dm b/code/game/objects/items/RSF.dm
index b29a67d9a7b2b..816c11c00af38 100644
--- a/code/game/objects/items/RSF.dm
+++ b/code/game/objects/items/RSF.dm
@@ -14,7 +14,7 @@ RSF
density = FALSE
anchored = FALSE
item_flags = NOBLUDGEON
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
var/matter = 0
var/mode = 1
w_class = WEIGHT_CLASS_NORMAL
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index a743677e5141e..28be237639f2f 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -164,7 +164,7 @@
lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
slot_flags = ITEM_SLOT_ID
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF | ACID_PROOF
var/list/access = list()
var/registered_name// The name registered_name on the card
@@ -849,7 +849,7 @@ update_label("John Doe", "Clowny")
name = "paper nametag"
desc = "Some spare papers taped into a vague card shape, with a name scribbled on it. Seems trustworthy."
icon_state = "paper"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = null // removes all resistance because its a piece of paper
access = list()
assignment = "Unknown"
diff --git a/code/game/objects/items/crab17.dm b/code/game/objects/items/crab17.dm
index 60b1769475811..79a660b380815 100644
--- a/code/game/objects/items/crab17.dm
+++ b/code/game/objects/items/crab17.dm
@@ -34,7 +34,7 @@
icon = 'icons/obj/money_machine.dmi'
icon_state = "bogdanoff"
layer = TABLE_LAYER //So that the crate inside doesn't appear underneath
- armor = list(MELEE = 30, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 100, BIO = 0, RAD = 0, FIRE = 100, ACID = 80, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 100, BIO = 0, FIRE = 100, ACID = 80, STAMINA = 0, BLEED = 0)
density = TRUE
pixel_z = -8
layer = LARGE_MOB_LAYER
diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm
index dd9f63ee12241..a55e8fcf9da50 100644
--- a/code/game/objects/items/debug_items.dm
+++ b/code/game/objects/items/debug_items.dm
@@ -200,7 +200,7 @@
desc = "very powerful."
icon_state = "hardsuit0-syndielite"
hardsuit_type = "syndielite"
- armor = list(MELEE = 300, BULLET = 300, LASER = 300, ENERGY = 300, BOMB = 300, BIO = 300, RAD = 300, FIRE = 300, ACID = 300, STAMINA = 300) // prevent armor penetration
+ armor = list(MELEE = 300, BULLET = 300, LASER = 300, ENERGY = 300, BOMB = 300, BIO = 300, FIRE = 300, ACID = 300, STAMINA = 300) // prevent armor penetration
strip_delay = 6000
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
@@ -213,7 +213,7 @@
hardsuit_type = "syndielite"
w_class = WEIGHT_CLASS_TINY
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/debug
- armor = list(MELEE = 300, BULLET = 300, LASER = 300, ENERGY = 300, BOMB = 300, BIO = 300, RAD = 300, FIRE = 300, ACID = 300, STAMINA = 300) // prevent armor penetration
+ armor = list(MELEE = 300, BULLET = 300, LASER = 300, ENERGY = 300, BOMB = 300, BIO = 300, FIRE = 300, ACID = 300, STAMINA = 300) // prevent armor penetration
gas_transfer_coefficient = 0
permeability_coefficient = 0
siemens_coefficient = 0
@@ -235,7 +235,7 @@
item_state = "holdingpack"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
item_flags = NO_MAT_REDEMPTION
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
/obj/item/storage/backpack/debug/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index ad4d2dccb00e1..b3eea0c8c9553 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -14,7 +14,7 @@
throwforce = 6
w_class = WEIGHT_CLASS_BULKY
actions_types = list(/datum/action/item_action/toggle_paddles)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
var/obj/item/shockpaddles/paddle_type = /obj/item/shockpaddles
var/on = FALSE //if the paddles are equipped (1) or on the defib (0)
diff --git a/code/game/objects/items/deployable/barricade.dm b/code/game/objects/items/deployable/barricade.dm
index 38688c4cc8eed..3aac72b95174e 100644
--- a/code/game/objects/items/deployable/barricade.dm
+++ b/code/game/objects/items/deployable/barricade.dm
@@ -194,7 +194,7 @@
icon_state = "barrier1"
max_integrity = 180
proj_pass_rate = 20
- armor = list(MELEE = 10, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 10, BIO = 100, RAD = 100, FIRE = 10, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 10, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 10, BIO = 100, FIRE = 10, ACID = 0, STAMINA = 0, BLEED = 0)
req_access = list(ACCESS_SECURITY)
pickup_damaged = FALSE
locked_down = TRUE
diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm
index 7c6d8c1798069..fd283cc042c4a 100644
--- a/code/game/objects/items/devices/forcefieldprojector.dm
+++ b/code/game/objects/items/devices/forcefieldprojector.dm
@@ -87,7 +87,7 @@
mouse_opacity = MOUSE_OPACITY_OPAQUE
resistance_flags = INDESTRUCTIBLE
CanAtmosPass = ATMOS_PASS_DENSITY
- armor = list(MELEE = 0, BULLET = 25, LASER = 50, ENERGY = 50, BOMB = 25, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 25, LASER = 50, ENERGY = 50, BOMB = 25, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
var/obj/item/forcefield_projector/generator
/obj/structure/projected_forcefield/Initialize(mapload, obj/item/forcefield_projector/origin)
diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm
index 758e005962151..97b721ec7c2eb 100644
--- a/code/game/objects/items/dualsaber.dm
+++ b/code/game/objects/items/dualsaber.dm
@@ -27,7 +27,7 @@
block_sound = 'sound/weapons/egloves.ogg'
block_flags = BLOCKING_ACTIVE | BLOCKING_NASTY | BLOCKING_PROJECTILE
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
light_system = MOVABLE_LIGHT
light_range = 6
diff --git a/code/game/objects/items/fireaxe.dm b/code/game/objects/items/fireaxe.dm
index 4a5a13943e8de..e3d34d80891a4 100644
--- a/code/game/objects/items/fireaxe.dm
+++ b/code/game/objects/items/fireaxe.dm
@@ -18,7 +18,7 @@
sharpness = IS_SHARP
bleed_force = BLEED_CUT
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
item_flags = ISWEAPON
var/icon_prefix = "fireaxe"
diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm
index f10620228adfb..ad97336305d2b 100644
--- a/code/game/objects/items/handcuffs.dm
+++ b/code/game/objects/items/handcuffs.dm
@@ -26,7 +26,7 @@
throw_range = 5
custom_materials = list(/datum/material/iron=500)
breakouttime = 1 MINUTES
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
var/cuffsound = 'sound/weapons/handcuffs.ogg'
var/trashtype = null //for disposable cuffs
diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm
index 9949cd605d231..343af602e3eec 100644
--- a/code/game/objects/items/kitchen.dm
+++ b/code/game/objects/items/kitchen.dm
@@ -29,7 +29,7 @@
attack_verb_continuous = list("attacks", "stabs", "pokes")
attack_verb_simple = list("attack", "stab", "poke")
hitsound = 'sound/weapons/bladeslice.ogg'
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
var/datum/reagent/forkload //used to eat omelette
/obj/item/kitchen/fork/suicide_act(mob/living/carbon/user)
diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm
index f62317ac872de..e50e6936a0e49 100644
--- a/code/game/objects/items/knives.dm
+++ b/code/game/objects/items/knives.dm
@@ -20,7 +20,7 @@
attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
sharpness = IS_SHARP_ACCURATE
bleed_force = BLEED_CUT
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50)
var/bayonet = FALSE //Can this be attached to a gun?
//wound_bonus = 5
//bare_wound_bonus = 15
@@ -160,7 +160,7 @@
custom_materials = list()
attack_verb_continuous = list("shanks", "shivs")
attack_verb_simple = list("shank", "shiv")
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
// Shank - Makeshift weapon that can embed on throw
/obj/item/knife/shank
diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm
index 054c9f0083f01..4cf87865de234 100644
--- a/code/game/objects/items/melee/energy.dm
+++ b/code/game/objects/items/melee/energy.dm
@@ -3,7 +3,7 @@
hitsound_on = 'sound/weapons/blade1.ogg'
heat = 3500
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
light_system = MOVABLE_LIGHT
light_range = 3
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index 6d4c517ea8efe..3a8d75dd4122d 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -149,7 +149,7 @@
lefthand_file = null
righthand_file = null
block_power = 60
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100)
/obj/item/melee/sabre/mime/on_exit_storage(datum/component/storage/concrete/R)
var/obj/item/storage/belt/sabre/mime/M = R.real_location()
diff --git a/code/game/objects/items/pitchfork.dm b/code/game/objects/items/pitchfork.dm
index 8cc87560fcb22..1798c49540bde 100644
--- a/code/game/objects/items/pitchfork.dm
+++ b/code/game/objects/items/pitchfork.dm
@@ -16,7 +16,7 @@
sharpness = IS_SHARP
bleed_force = BLEED_CUT
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
/obj/item/pitchfork/ComponentInitialize()
diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm
index 55fe304b9fa8d..3e50090fc46b4 100644
--- a/code/game/objects/items/pneumaticCannon.dm
+++ b/code/game/objects/items/pneumaticCannon.dm
@@ -15,7 +15,7 @@
item_state = "bulldog"
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 60, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 60, ACID = 50, STAMINA = 0, BLEED = 0)
var/maxWeightClass = 20 //The max weight of items that can fit into the cannon
var/loadedWeightClass = 0 //The weight of items currently in the cannon
var/obj/item/tank/internals/tank = null //The gas tank that is drawn from to fire things
diff --git a/code/game/objects/items/powerfist.dm b/code/game/objects/items/powerfist.dm
index f558447a11618..b47431380f49b 100644
--- a/code/game/objects/items/powerfist.dm
+++ b/code/game/objects/items/powerfist.dm
@@ -14,7 +14,7 @@
throw_range = 7
w_class = WEIGHT_CLASS_NORMAL
item_flags = ISWEAPON
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 40, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 40, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
var/click_delay = 1.5
var/fisto_setting = 1
diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm
index 30a5b22125a64..46838cd44f9aa 100644
--- a/code/game/objects/items/religion.dm
+++ b/code/game/objects/items/religion.dm
@@ -298,7 +298,7 @@
desc = "Metal boots, they look heavy."
icon_state = "crusader"
w_class = WEIGHT_CLASS_NORMAL
- armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 40, BOMB = 60, BIO = 0, RAD = 0, FIRE = 60, ACID = 60, STAMINA = 30, BLEED = 60) //does this even do anything on boots?
+ armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 40, BOMB = 60, BIO = 0, FIRE = 60, ACID = 60, STAMINA = 30, BLEED = 60) //does this even do anything on boots?
clothing_flags = NOSLIP
cold_protection = FEET
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm
index ad2ae95a1219a..c7b0524babfc2 100644
--- a/code/game/objects/items/singularityhammer.dm
+++ b/code/game/objects/items/singularityhammer.dm
@@ -14,7 +14,7 @@
throw_range = 1
w_class = WEIGHT_CLASS_HUGE
item_flags = ISWEAPON
- armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 0, BOMB = 50, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 0, BOMB = 50, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF | ACID_PROOF
force_string = "LORD SINGULOTH HIMSELF"
var/charged = 5
diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm
index ae7aaa4f2a6aa..1c65f2df40317 100644
--- a/code/game/objects/items/spear.dm
+++ b/code/game/objects/items/spear.dm
@@ -21,7 +21,7 @@
sharpness = IS_SHARP
bleed_force = BLEED_CUT
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
var/war_cry = "AAAAARGH!!!"
var/icon_prefix = "spearglass"
diff --git a/code/game/objects/items/stacks/sheets/mineral/glass.dm b/code/game/objects/items/stacks/sheets/mineral/glass.dm
index 80f392130647d..dd96b39d42cd3 100644
--- a/code/game/objects/items/stacks/sheets/mineral/glass.dm
+++ b/code/game/objects/items/stacks/sheets/mineral/glass.dm
@@ -17,7 +17,7 @@
icon_state = "sheet-glass"
item_state = "sheet-glass"
mats_per_unit = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/glass
grind_results = list(/datum/reagent/silicon = 20)
@@ -70,7 +70,7 @@
icon_state = "sheet-rglass"
item_state = "sheet-rglass"
custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 70, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 70, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/rglass
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10)
@@ -115,7 +115,7 @@
item_state = "sheet-pglass"
mats_per_unit = list(/datum/material/alloy/plasmaglass=MINERAL_MATERIAL_AMOUNT)
material_type = /datum/material/alloy/plasmaglass
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 75, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 75, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plasmaglass
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10)
@@ -152,7 +152,7 @@
icon_state = "sheet-prglass"
item_state = "sheet-prglass"
mats_per_unit = list(/datum/material/alloy/plasmaglass=MINERAL_MATERIAL_AMOUNT, /datum/material/iron = MINERAL_MATERIAL_AMOUNT * 0.5)
- armor = list(MELEE = 20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = ACID_PROOF
material_flags = NONE
merge_type = /obj/item/stack/sheet/plasmarglass
@@ -173,7 +173,7 @@
item_state = "sheet-titaniumglass"
mats_per_unit = list(/datum/material/alloy/titaniumglass=MINERAL_MATERIAL_AMOUNT)
material_type = /datum/material/alloy/titaniumglass
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/titaniumglass
@@ -189,7 +189,7 @@
icon_state = "sheet-plastitaniumglass"
item_state = "sheet-plastitaniumglass"
mats_per_unit = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = ACID_PROOF
material_flags = NONE
merge_type = /obj/item/stack/sheet/plastitaniumglass
@@ -215,7 +215,7 @@
attack_verb_simple = list("stab", "slash", "slice", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
resistance_flags = ACID_PROOF
- armor = list(MELEE = 100, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 50, ACID = 100, STAMINA = 0, BLEED = 0)
max_integrity = 40
sharpness = IS_SHARP
bleed_force = BLEED_SURFACE
diff --git a/code/game/objects/items/stacks/sheets/mineral/metals.dm b/code/game/objects/items/stacks/sheets/mineral/metals.dm
index cdcb2c53bd51d..7807b19b771b2 100644
--- a/code/game/objects/items/stacks/sheets/mineral/metals.dm
+++ b/code/game/objects/items/stacks/sheets/mineral/metals.dm
@@ -60,7 +60,7 @@ Metals Sheets
material_type = /datum/material/alloy/plasteel
throwforce = 10
flags_1 = CONDUCT_1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 80, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 80, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
merge_type = /obj/item/stack/sheet/plasteel
grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20)
diff --git a/code/game/objects/items/stacks/sheets/organic/wood.dm b/code/game/objects/items/stacks/sheets/organic/wood.dm
index 9219242ab69fe..aa80eb22196ca 100644
--- a/code/game/objects/items/stacks/sheets/organic/wood.dm
+++ b/code/game/objects/items/stacks/sheets/organic/wood.dm
@@ -18,7 +18,7 @@ Woods Sheets
icon = 'icons/obj/stacks/organic.dmi'
mats_per_unit = list(/datum/material/wood=MINERAL_MATERIAL_AMOUNT)
sheettype = "wood"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 0, STAMINA = 0, BLEED = 0)
resistance_flags = FLAMMABLE
merge_type = /obj/item/stack/sheet/wood
material_type = /datum/material/wood
@@ -39,7 +39,7 @@ Woods Sheets
icon = 'icons/obj/stacks/organic.dmi'
force = 10
throwforce = 10
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 0, STAMINA = 0, BLEED = 0)
resistance_flags = FLAMMABLE
merge_type = /obj/item/stack/sheet/bamboo
grind_results = list("carbon" = 5)
diff --git a/code/game/objects/items/stacks/tiles/tile_iron.dm b/code/game/objects/items/stacks/tiles/tile_iron.dm
index 45a4781f85605..fb4d68f8fe93a 100644
--- a/code/game/objects/items/stacks/tiles/tile_iron.dm
+++ b/code/game/objects/items/stacks/tiles/tile_iron.dm
@@ -10,7 +10,7 @@
throwforce = 10
flags_1 = CONDUCT_1
turf_type = /turf/open/floor/iron
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 70, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 70, STAMINA = 0)
resistance_flags = FIRE_PROOF
matter_amount = 1
cost = 125
diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm
index 413f29af2861d..da20e4b57dd92 100644
--- a/code/game/objects/items/storage/backpack.dm
+++ b/code/game/objects/items/storage/backpack.dm
@@ -45,7 +45,7 @@
item_state = "holdingpack"
resistance_flags = FIRE_PROOF
item_flags = NO_MAT_REDEMPTION
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 60, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 60, ACID = 50, STAMINA = 0, BLEED = 0)
component_type = /datum/component/storage/concrete/bluespace/bag_of_holding
/obj/item/storage/backpack/holding/clown
@@ -81,7 +81,7 @@
worn_icon_state = "baguette"
resistance_flags = FIRE_PROOF
item_flags = NO_MAT_REDEMPTION
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
component_type = /datum/component/storage/concrete/bluespace/bag_of_holding
/obj/item/storage/backpack/hammerspace/ComponentInitialize()
@@ -466,11 +466,11 @@
new /obj/item/razor(src)
new /obj/item/reagent_containers/medspray/sterilizine(src)
new /obj/item/blood_filter(src)
-
+
/obj/item/storage/backpack/duffelbag/med/implant
name = "surplus implants duffel bag"
desc = "A large duffel bag for holding implants - this one has a material inlay with space for various implants."
-
+
/obj/item/storage/backpack/duffelbag/med/implant/PopulateContents()
var/implants = list(/obj/item/organ/cyberimp/arm/janitor,
/obj/item/organ/cyberimp/arm/botany,
diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm
index 58cfd2010c330..155c6dbd56d41 100644
--- a/code/game/objects/items/storage/secure.dm
+++ b/code/game/objects/items/storage/secure.dm
@@ -213,7 +213,7 @@ It is made out of the same material as the station's Black Box and is designed t
There appears to be a small amount of surface corrosion. It doesn't look like it could withstand much of an explosion. \
It remains quite flush against the wall, and there only seems to be enough room to fit something as slim as an ID card."
can_hack_open = FALSE
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 70, BIO = 100, RAD = 100, FIRE = 80, ACID = 70);
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 70, BIO = 100, FIRE = 80, ACID = 70);
max_integrity = 300
color = "#ffdd33"
diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index 3db83f01c93c6..87309fe3dcc25 100644
--- a/code/game/objects/items/stunbaton.dm
+++ b/code/game/objects/items/stunbaton.dm
@@ -13,7 +13,7 @@
item_flags = ISWEAPON
attack_verb_continuous = list("enforces the law upon")
attack_verb_simple = list("enforce the law upon")
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
var/stunforce = 40
var/turned_on = FALSE
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index 6405e4b22a110..673e8fd5c6493 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -17,7 +17,7 @@
throw_range = 4
custom_materials = list(/datum/material/iron = 500)
actions_types = list(/datum/action/item_action/set_internals)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 80, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 80, ACID = 30, STAMINA = 0, BLEED = 0)
var/datum/gas_mixture/air_contents = null
var/distribute_pressure = ONE_ATMOSPHERE
var/integrity = 3
diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm
index 7c7c944d047eb..9fd49b0c694b9 100644
--- a/code/game/objects/items/tanks/watertank.dm
+++ b/code/game/objects/items/tanks/watertank.dm
@@ -12,7 +12,7 @@
slowdown = 1
actions_types = list(/datum/action/item_action/toggle_mister)
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
var/obj/item/noz
diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm
index ec9d47cfe22a4..468027b837fb2 100644
--- a/code/game/objects/items/teleportation.dm
+++ b/code/game/objects/items/teleportation.dm
@@ -110,7 +110,7 @@
throw_speed = 3
throw_range = 5
custom_materials = list(/datum/material/iron=10000)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 30, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
var/list/active_portal_pairs
var/max_portal_pairs = 3
diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm
index 7caa4d083a85e..786e1c87b3036 100644
--- a/code/game/objects/items/tools/crowbar.dm
+++ b/code/game/objects/items/tools/crowbar.dm
@@ -17,7 +17,7 @@
attack_verb_simple = list("attack", "bash", "batter", "bludgeon", "whack")
tool_behaviour = TOOL_CROWBAR
toolspeed = 1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
drop_sound = 'sound/items/handling/crowbar_drop.ogg'
pickup_sound = 'sound/items/handling/crowbar_pickup.ogg'
diff --git a/code/game/objects/items/tools/powertools.dm b/code/game/objects/items/tools/powertools.dm
index e53106267b310..764b3f4afc8c9 100644
--- a/code/game/objects/items/tools/powertools.dm
+++ b/code/game/objects/items/tools/powertools.dm
@@ -6,7 +6,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
custom_materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25) //done for balance reasons, making them high value for research, but harder to get
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
toolspeed = 0.7
diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm
index 59b08705a8ea2..932055575c021 100644
--- a/code/game/objects/items/tools/screwdriver.dm
+++ b/code/game/objects/items/tools/screwdriver.dm
@@ -26,7 +26,7 @@
greyscale_config_inhand_left = /datum/greyscale_config/screwdriver_inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/screwdriver_inhand_right
greyscale_config_belt = /datum/greyscale_config/screwdriver_belt
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
drop_sound = 'sound/items/handling/screwdriver_drop.ogg'
pickup_sound = 'sound/items/handling/screwdriver_pickup.ogg'
/// If the item should be assigned a random color
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index 5f78cff0474f6..a5cca65c9a462 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -26,7 +26,7 @@
throw_speed = 3
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
custom_materials = list(/datum/material/iron=70, /datum/material/glass=30)
diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm
index 485c62322bd7a..c292069d48dc6 100644
--- a/code/game/objects/items/tools/wirecutters.dm
+++ b/code/game/objects/items/tools/wirecutters.dm
@@ -22,7 +22,7 @@
pickup_sound = 'sound/items/handling/wirecutter_pickup.ogg'
tool_behaviour = TOOL_WIRECUTTER
toolspeed = 1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
var/random_color = TRUE
var/static/list/wirecutter_colors = list(
"blue" = "#1861d5",
diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm
index 28c09bf616be7..8461b31f93ec0 100644
--- a/code/game/objects/items/tools/wrench.dm
+++ b/code/game/objects/items/tools/wrench.dm
@@ -20,7 +20,7 @@
attack_verb_simple = list("bash", "batter", "bludgeon", "whack")
tool_behaviour = TOOL_WRENCH
toolspeed = 1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30, STAMINA = 0, BLEED = 0)
/obj/item/wrench/suicide_act(mob/living/user)
user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
diff --git a/code/game/objects/items/vending_items.dm b/code/game/objects/items/vending_items.dm
index a740e0baad725..0c90c6b6c8eaf 100644
--- a/code/game/objects/items/vending_items.dm
+++ b/code/game/objects/items/vending_items.dm
@@ -17,7 +17,7 @@
throw_speed = 1
throw_range = 7
w_class = WEIGHT_CLASS_BULKY
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 70, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 70, ACID = 30, STAMINA = 0, BLEED = 0)
// Built automatically from the corresponding vending machine.
// If null, considered to be full. Otherwise, is list(/typepath = amount).
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 2c34e1f6cca52..4048d37314275 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -13,7 +13,7 @@
attack_verb_continuous = list("bans")
attack_verb_simple = list("ban")
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
/obj/item/banhammer/suicide_act(mob/living/user)
@@ -87,7 +87,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
sharpness = IS_SHARP
bleed_force = BLEED_DEEP_WOUND
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
/obj/item/claymore/Initialize(mapload)
@@ -242,7 +242,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
block_level = 0
block_power = 30
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
/obj/item/katana
name = "katana"
@@ -268,7 +268,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
sharpness = IS_SHARP
bleed_force = BLEED_DEEP_WOUND
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
/obj/item/katana/cursed
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index 3f97e790cae44..13458c20cead1 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -11,7 +11,7 @@
/obj/structure/Initialize(mapload)
if (!armor)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
. = ..()
if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK))
QUEUE_SMOOTH(src)
diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm
index d47d71b3fa1d0..051aa3dfca476 100644
--- a/code/game/objects/structures/barsigns.dm
+++ b/code/game/objects/structures/barsigns.dm
@@ -6,7 +6,7 @@
req_access = list(ACCESS_BAR)
max_integrity = 500
integrity_failure = 0.5
- armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
buildable_sign = 0
var/panel_open = FALSE
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index f6d0983296766..29c01900d29e2 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -7,7 +7,7 @@
drag_slowdown = 1.5 // Same as a prone mob
max_integrity = 200
integrity_failure = 0.25
- armor = list(MELEE = 20, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 70, ACID = 60, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 20, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 70, ACID = 60, STAMINA = 0, BLEED = 0)
blocks_emissive = EMISSIVE_BLOCK_GENERIC
pass_flags_self = LETPASSCLICKS | PASSSTRUCTURE
var/contents_initialised = FALSE
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index f459dda04fb4a..63fd142e5434c 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -4,7 +4,7 @@
locked = TRUE
icon_state = "secure"
max_integrity = 250
- armor = list(MELEE = 30, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
secure = TRUE
/obj/structure/closet/secure_closet/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm
index a3b28f10edaf0..bb220f1441169 100644
--- a/code/game/objects/structures/crates_lockers/crates/secure.dm
+++ b/code/game/objects/structures/crates_lockers/crates/secure.dm
@@ -5,7 +5,7 @@
secure = TRUE
locked = TRUE
max_integrity = 500
- armor = list(MELEE = 30, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
var/tamperproof = 0
icon_door = "crate"
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index a2d071256fd45..ab099b00366b6 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -6,7 +6,7 @@
density = TRUE
anchored = TRUE
resistance_flags = ACID_PROOF
- armor = list(MELEE = 30, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 70, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 70, ACID = 100, STAMINA = 0, BLEED = 0)
max_integrity = 200
integrity_failure = 0.25
var/obj/item/showpiece = null
diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm
index b417c19d64091..1d97a36972bb8 100644
--- a/code/game/objects/structures/fireaxe.dm
+++ b/code/game/objects/structures/fireaxe.dm
@@ -5,7 +5,7 @@
icon_state = "fireaxe"
anchored = TRUE
density = FALSE
- armor = list(MELEE = 50, BULLET = 20, LASER = 0, ENERGY = 100, BOMB = 10, BIO = 100, RAD = 100, FIRE = 90, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 20, LASER = 0, ENERGY = 100, BOMB = 10, BIO = 100, FIRE = 90, ACID = 50, STAMINA = 0, BLEED = 0)
max_integrity = 150
integrity_failure = 0.33
layer = ABOVE_WINDOW_LAYER
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 753abd9bc564d..32c34df0d9fea 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -13,7 +13,7 @@
z_flags = Z_BLOCK_IN_DOWN | Z_BLOCK_IN_UP
pressure_resistance = 5*ONE_ATMOSPHERE
layer = BELOW_OBJ_LAYER
- armor = list(MELEE = 50, BULLET = 70, LASER = 70, ENERGY = 100, BOMB = 10, BIO = 100, RAD = 100, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 70, LASER = 70, ENERGY = 100, BOMB = 10, BIO = 100, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
max_integrity = 50
integrity_failure = 0.4
var/rods_type = /obj/item/stack/rods
diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm
index e4704b0e9e266..afa56ecde9fbf 100644
--- a/code/game/objects/structures/holosign.dm
+++ b/code/game/objects/structures/holosign.dm
@@ -6,7 +6,7 @@
icon = 'icons/effects/effects.dmi'
anchored = TRUE
max_integrity = 1
- armor = list(MELEE = 0, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 0, BIO = 0, FIRE = 20, ACID = 20, STAMINA = 0, BLEED = 0)
layer = BELOW_OBJ_LAYER
var/obj/item/holosign_creator/projector
diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm
index 8efc68e382e4f..29f14b3a77412 100644
--- a/code/game/objects/structures/lattice.dm
+++ b/code/game/objects/structures/lattice.dm
@@ -9,7 +9,7 @@
canSmoothWith = list(SMOOTH_GROUP_OPEN_FLOOR, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_LATTICE)
density = FALSE
anchored = TRUE
- armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0)
max_integrity = 50
layer = LATTICE_LAYER //under pipes
plane = FLOOR_PLANE
diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm
index 4a9790843926e..c7f1eacf3dc4d 100644
--- a/code/game/objects/structures/mineral_doors.dm
+++ b/code/game/objects/structures/mineral_doors.dm
@@ -11,7 +11,7 @@
icon = 'icons/obj/doors/mineral_doors.dmi'
icon_state = "metal"
max_integrity = 200
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 10, BIO = 100, RAD = 100, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 10, BIO = 100, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
CanAtmosPass = ATMOS_PASS_DENSITY
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
rad_insulation = RAD_MEDIUM_INSULATION
diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm
index ac850ce157a0d..53184beed0a78 100644
--- a/code/game/objects/structures/plasticflaps.dm
+++ b/code/game/objects/structures/plasticflaps.dm
@@ -3,7 +3,7 @@
desc = "Heavy duty, airtight, plastic flaps. Definitely can't get past those. No way."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "plasticflaps"
- armor = list(MELEE = 100, BULLET = 80, LASER = 80, ENERGY = 100, BOMB = 50, BIO = 100, RAD = 100, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 80, LASER = 80, ENERGY = 100, BOMB = 50, BIO = 100, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
density = FALSE
anchored = TRUE
layer = BELOW_OBJ_LAYER
diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm
index 64077859247e6..43d3d6adec9d7 100644
--- a/code/game/objects/structures/signs/_signs.dm
+++ b/code/game/objects/structures/signs/_signs.dm
@@ -5,7 +5,7 @@
density = FALSE
layer = SIGN_LAYER
max_integrity = 100
- armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
var/buildable_sign = 1 //unwrenchable and modifiable
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index ccd47398717ab..4ae2a97884cb3 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -287,7 +287,7 @@
canSmoothWith = null
max_integrity = 70
resistance_flags = ACID_PROOF
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
var/list/debris = list()
/obj/structure/table/glass/Initialize(mapload)
@@ -355,7 +355,7 @@
buildstack = /obj/item/stack/sheet/plasmaglass
glass_shard_type = /obj/item/shard/plasma
max_integrity = 270
- armor = list(MELEE = 10, BULLET = 5, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 80, ACID = 100)
+ armor = list(MELEE = 10, BULLET = 5, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 80, ACID = 100)
/obj/structure/table/glass/plasma/Initialize(mapload)
. = ..()
@@ -476,7 +476,7 @@
buildstack = /obj/item/stack/sheet/plasteel
max_integrity = 200
integrity_failure = 0.25
- armor = list(MELEE = 10, BULLET = 30, LASER = 30, ENERGY = 100, BOMB = 20, BIO = 0, RAD = 0, FIRE = 80, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 10, BULLET = 30, LASER = 30, ENERGY = 100, BOMB = 20, BIO = 0, FIRE = 80, ACID = 70, STAMINA = 0, BLEED = 0)
/obj/structure/table/reinforced/deconstruction_hints(mob/user)
if(deconstruction_ready)
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index d4e0708538617..badcea1ce0b35 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -10,7 +10,7 @@
max_integrity = 50
can_be_unanchored = TRUE
resistance_flags = ACID_PROOF
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
CanAtmosPass = ATMOS_PASS_PROC
rad_insulation = RAD_VERY_LIGHT_INSULATION
rad_flags = RAD_PROTECT_CONTENTS
@@ -399,7 +399,7 @@
icon_state = "rwindow"
reinf = TRUE
heat_resistance = 1600
- armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 25, BIO = 100, RAD = 100, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 25, BIO = 100, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
max_integrity = 100
explosion_block = 1
glass_type = /obj/item/stack/sheet/rglass
@@ -424,7 +424,7 @@
icon_state = "plasmawindow"
reinf = FALSE
heat_resistance = 25000
- armor = list(MELEE = 75, BULLET = 5, LASER = 0, ENERGY = 0, BOMB = 45, BIO = 100, RAD = 100, FIRE = 99, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 75, BULLET = 5, LASER = 0, ENERGY = 0, BOMB = 45, BIO = 100, FIRE = 99, ACID = 100, STAMINA = 0, BLEED = 0)
max_integrity = 300
glass_type = /obj/item/stack/sheet/plasmaglass
rad_insulation = RAD_NO_INSULATION
@@ -456,7 +456,7 @@
icon_state = "plasmarwindow"
reinf = TRUE
heat_resistance = 50000
- armor = list(MELEE = 85, BULLET = 20, LASER = 0, ENERGY = 0, BOMB = 60, BIO = 100, RAD = 100, FIRE = 99, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 85, BULLET = 20, LASER = 0, ENERGY = 0, BOMB = 60, BIO = 100, FIRE = 99, ACID = 100, STAMINA = 0, BLEED = 0)
max_integrity = 500
explosion_block = 2
glass_type = /obj/item/stack/sheet/plasmarglass
@@ -487,7 +487,7 @@
icon_state = "duwindow"
reinf = TRUE
heat_resistance = 50000
- armor = list(MELEE = 45, BULLET = 20, LASER = 0, ENERGY = 0, BOMB = 60, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 45, BULLET = 20, LASER = 0, ENERGY = 0, BOMB = 60, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_integrity = 500
explosion_block = 2
glass_type = /obj/item/stack/sheet/mineral/uranium
@@ -619,7 +619,7 @@
flags_1 = PREVENT_CLICK_UNDER_1
reinf = TRUE
heat_resistance = 1600
- armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 100, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
explosion_block = 3
glass_type = /obj/item/stack/sheet/titaniumglass
glass_amount = 2
@@ -649,7 +649,7 @@
flags_1 = PREVENT_CLICK_UNDER_1
reinf = TRUE
heat_resistance = 1600
- armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 100, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
explosion_block = 3
glass_type = /obj/item/stack/sheet/plastitaniumglass
glass_amount = 2
@@ -676,7 +676,7 @@
decon_speed = 10
CanAtmosPass = ATMOS_PASS_YES
resistance_flags = FLAMMABLE
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
breaksound = 'sound/items/poster_ripped.ogg'
hitsound = 'sound/weapons/slashmiss.ogg'
var/static/mutable_appearance/torn = mutable_appearance('icons/obj/smooth_structures/windows/paperframes.dmi',icon_state = "torn", layer = ABOVE_OBJ_LAYER - 0.1)
diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm
index 3e75c43a45649..18f35cee3a89d 100644
--- a/code/game/shuttle_engines.dm
+++ b/code/game/shuttle_engines.dm
@@ -8,7 +8,7 @@
icon = 'icons/turf/shuttle.dmi'
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
max_integrity = 500
- armor = list(MELEE = 100, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0) //default + ignores melee
+ armor = list(MELEE = 100, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0) //default + ignores melee
/obj/structure/shuttle/engine
name = "engine"
diff --git a/code/game/turfs/closed/wall/reinf_walls.dm b/code/game/turfs/closed/wall/reinf_walls.dm
index 6369006e63474..7218bf10d700a 100644
--- a/code/game/turfs/closed/wall/reinf_walls.dm
+++ b/code/game/turfs/closed/wall/reinf_walls.dm
@@ -22,7 +22,7 @@
)
/turf/closed/wall/r_wall/get_armour_list()
- return list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 10, BIO = 100, RAD = 100, FIRE = 80, ACID = 70, STAMINA = 0, BLEED = 0)
+ return list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 10, BIO = 100, FIRE = 80, ACID = 70, STAMINA = 0, BLEED = 0)
/turf/closed/wall/r_wall/deconstruction_hints(mob/user)
switch(d_state)
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index 22d7187f89a31..b1ffd2a87c94e 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -13,7 +13,7 @@
icon_state = "vest_stealth"
item_state = "armor"
blood_overlay_type = "armor"
- armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 15, BIO = 15, RAD = 15, FIRE = 70, ACID = 70, STAMINA = 30, BLEED = 40)
+ armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 15, BIO = 15, FIRE = 70, ACID = 70, STAMINA = 30, BLEED = 40)
actions_types = list(/datum/action/item_action/hands_free/activate)
allowed = list(
/obj/item/abductor,
@@ -28,8 +28,8 @@
/// Cooldown in seconds
var/combat_cooldown = 20
var/datum/icon_snapshot/disguise
- var/stealth_armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 15, BIO = 15, RAD = 15, FIRE = 70, ACID = 70, STAMINA = 30, BLEED = 40)
- var/combat_armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 50, RAD = 50, FIRE = 90, ACID = 90, STAMINA = 60, BLEED = 80)
+ var/stealth_armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 15, BIO = 15, FIRE = 70, ACID = 70, STAMINA = 30, BLEED = 40)
+ var/combat_armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 50, FIRE = 90, ACID = 90, STAMINA = 60, BLEED = 80)
/obj/item/clothing/suit/armor/abductor/vest/Initialize(mapload)
. = ..()
@@ -876,5 +876,5 @@ Congratulations! You are now trained for invasive xenobiology research!"}
icon_state = "abductor-suit"
item_state = "bl_suit"
worn_icon = 'icons/mob/clothing/under/syndicate.dmi'
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
can_adjust = FALSE
diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm
index e7870b87acfaf..aa18323b68155 100644
--- a/code/modules/antagonists/blob/structures/_blob.dm
+++ b/code/modules/antagonists/blob/structures/_blob.dm
@@ -12,7 +12,7 @@
CanAtmosPass = ATMOS_PASS_PROC
var/point_return = 0 //How many points the blob gets back when it removes a blob of that type. If less than 0, blob cannot be removed.
max_integrity = 30
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 70, STAMINA = 0, BLEED = 0)
var/health_regen = 2 //how much health this blob regens when pulsed
var/pulse_timestamp = 0 //we got pulsed when?
var/heal_timestamp = 0 //we got healed when?
diff --git a/code/modules/antagonists/blob/structures/core.dm b/code/modules/antagonists/blob/structures/core.dm
index 5ed9ce87c3833..09a60324e0cdf 100644
--- a/code/modules/antagonists/blob/structures/core.dm
+++ b/code/modules/antagonists/blob/structures/core.dm
@@ -5,7 +5,7 @@
desc = "A huge, pulsating yellow mass."
max_integrity = 400
max_hit_damage = 40
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 75, ACID = 90, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 75, ACID = 90, STAMINA = 0, BLEED = 0)
explosion_block = 6
point_return = -1
health_regen = 0 //we regen in Life() instead of when pulsed
diff --git a/code/modules/antagonists/blob/structures/node.dm b/code/modules/antagonists/blob/structures/node.dm
index 89ba25e521558..4cccd7536f60c 100644
--- a/code/modules/antagonists/blob/structures/node.dm
+++ b/code/modules/antagonists/blob/structures/node.dm
@@ -5,7 +5,7 @@
desc = "A large, pulsating yellow mass."
max_integrity = 200
max_hit_damage = 40
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 65, ACID = 90, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 65, ACID = 90, STAMINA = 0, BLEED = 0)
health_regen = 3
point_return = 25
resistance_flags = LAVA_PROOF
diff --git a/code/modules/antagonists/blob/structures/shield.dm b/code/modules/antagonists/blob/structures/shield.dm
index f39f8613c25e7..dc7008579e4e9 100644
--- a/code/modules/antagonists/blob/structures/shield.dm
+++ b/code/modules/antagonists/blob/structures/shield.dm
@@ -9,7 +9,7 @@
explosion_block = 3
point_return = 4
atmosblock = TRUE
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
/obj/structure/blob/shield/scannerreport()
if(atmosblock)
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 39da9eafa0d9c..6cfaa4127c731 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -403,7 +403,7 @@
item_flags = DROPDEL
clothing_flags = STOPSPRESSUREDAMAGE | HEADINTERNALS //Not THICKMATERIAL because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen)
- armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 30, BOMB = 30, BIO = 20, RAD = 20, FIRE = 90, ACID = 90, STAMINA = 10, BLEED = 80)//Bit less armoured than the Syndicate space suit
+ armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 30, BOMB = 30, BIO = 20, FIRE = 90, ACID = 90, STAMINA = 10, BLEED = 80)//Bit less armoured than the Syndicate space suit
slowdown = 0.2
var/datum/reagent/salbutamol = /datum/reagent/medicine/salbutamol
actions_types = list()
@@ -436,7 +436,7 @@
desc = "A covering of armored pressure and temperature-resistant organic tissue with a glass-like chitin front."
item_flags = DROPDEL
clothing_flags = STOPSPRESSUREDAMAGE
- armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 30, BOMB = 30, BIO = 20, RAD = 20, FIRE = 90, ACID = 90, STAMINA = 10, BLEED = 80)
+ armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 30, BOMB = 30, BIO = 20, FIRE = 90, ACID = 90, STAMINA = 10, BLEED = 80)
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/head/helmet/space/changeling/Initialize(mapload)
@@ -469,7 +469,7 @@
item_state = null
item_flags = DROPDEL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 25, BIO = 0, RAD = 0, FIRE = 25, ACID = 25, STAMINA = 30, BLEED = 90)
+ armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 25, BIO = 0, FIRE = 25, ACID = 25, STAMINA = 30, BLEED = 90)
flags_inv = HIDEJUMPSUIT
cold_protection = 0
heat_protection = 0
@@ -488,7 +488,7 @@
icon_state = "lingarmorhelmet"
item_state = null
item_flags = DROPDEL
- armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 25, BIO = 0, RAD = 0, FIRE = 25, ACID = 25, STAMINA = 30, BLEED = 90)
+ armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 25, BIO = 0, FIRE = 25, ACID = 25, STAMINA = 30, BLEED = 90)
flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES|HIDEFACIALHAIR|HIDEFACE|HIDESNOUT
/obj/item/clothing/head/helmet/changeling/Initialize(mapload)
diff --git a/code/modules/antagonists/clock_cult/clockwork_turfs.dm b/code/modules/antagonists/clock_cult/clockwork_turfs.dm
index 36a9381d42eac..1c0e6569a4f59 100644
--- a/code/modules/antagonists/clock_cult/clockwork_turfs.dm
+++ b/code/modules/antagonists/clock_cult/clockwork_turfs.dm
@@ -546,7 +546,7 @@
icon_state = "clockwork_window_single"
resistance_flags = FIRE_PROOF | ACID_PROOF
max_integrity = 80
- armor = list(MELEE = 40, BULLET = -20, LASER = 0, ENERGY = 0, BOMB = 25, BIO = 100, RAD = 100, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 40, BULLET = -20, LASER = 0, ENERGY = 0, BOMB = 25, BIO = 100, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
explosion_block = 2 //fancy AND hard to destroy. the most useful combination.
decon_speed = 40
glass_type = /obj/item/stack/sheet/brass
diff --git a/code/modules/antagonists/clock_cult/items/brass_clothing.dm b/code/modules/antagonists/clock_cult/items/brass_clothing.dm
index 28ef84e13a5ca..913eb66628c96 100644
--- a/code/modules/antagonists/clock_cult/items/brass_clothing.dm
+++ b/code/modules/antagonists/clock_cult/items/brass_clothing.dm
@@ -5,7 +5,7 @@
icon_state = "clockwork_cuirass"
worn_icon = 'icons/mob/clothing/suits/armor.dmi'
worn_icon_state = "clockwork_cuirass"
- armor = list(MELEE = 50, BULLET = 60, LASER = 30, ENERGY = 80, BOMB = 80, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
+ armor = list(MELEE = 50, BULLET = 60, LASER = 30, ENERGY = 80, BOMB = 80, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
slowdown = 0.6
resistance_flags = FIRE_PROOF | ACID_PROOF
w_class = WEIGHT_CLASS_BULKY
@@ -39,14 +39,14 @@
worn_icon_state = "clockwork_cuirass_speed"
slowdown = -0.3
resistance_flags = FIRE_PROOF | ACID_PROOF
- armor = list(MELEE = 40, BULLET = 40, LASER = 10, ENERGY = -20, BOMB = 60, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 30, BLEED = 40)
+ armor = list(MELEE = 40, BULLET = 40, LASER = 10, ENERGY = -20, BOMB = 60, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 30, BLEED = 40)
/obj/item/clothing/suit/clockwork/cloak
name = "shrouding cloak"
desc = "A faltering cloak that bends light around it, distorting the user's appearance, making it hard to see them with the naked eye. However, it provides very little protection."
icon_state = "clockwork_cloak"
worn_icon_state = "clockwork_cloak"
- armor = list(MELEE = 10, BULLET = 60, LASER = 40, ENERGY = 20, BOMB = 40, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 20, BLEED = 20)
+ armor = list(MELEE = 10, BULLET = 60, LASER = 40, ENERGY = 20, BOMB = 40, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 20, BLEED = 20)
slowdown = 0.4
resistance_flags = FIRE_PROOF | ACID_PROOF
var/shroud_active = FALSE
@@ -143,7 +143,7 @@
desc = "A strong, brass helmet worn by the soldiers of the Ratvarian armies. Includes an integrated light-dimmer for flash protection, as well as occult-grade muffling for factory based environments."
icon = 'icons/obj/clothing/clockwork_garb.dmi'
icon_state = "clockwork_helmet"
- armor = list(MELEE = 50, BULLET = 60, LASER = 30, ENERGY = 80, BOMB = 80, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
+ armor = list(MELEE = 50, BULLET = 60, LASER = 30, ENERGY = 80, BOMB = 80, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
resistance_flags = FIRE_PROOF | ACID_PROOF
w_class = WEIGHT_CLASS_BULKY
flash_protect = 1
@@ -168,4 +168,4 @@
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0, BLEED = 20)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0, BLEED = 20)
diff --git a/code/modules/antagonists/clock_cult/scriptures/ocular_warden.dm b/code/modules/antagonists/clock_cult/scriptures/ocular_warden.dm
index 9197614fe896b..4bf9c5033c3a8 100644
--- a/code/modules/antagonists/clock_cult/scriptures/ocular_warden.dm
+++ b/code/modules/antagonists/clock_cult/scriptures/ocular_warden.dm
@@ -32,7 +32,7 @@
break_message = "A black ooze leaks from the ocular warden as it slowly sinks to the ground."
icon_state = "ocular_warden"
max_integrity = 60
- armor = list(MELEE = -80, BULLET = -50, LASER = 40, ENERGY = 40, BOMB = 20, BIO = 0, RAD = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = -80, BULLET = -50, LASER = 40, ENERGY = 40, BOMB = 20, BIO = 0, STAMINA = 0, BLEED = 0)
var/cooldown
/obj/structure/destructible/clockwork/ocular_warden/process(delta_time)
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index 6af798845c3a3..1dc9d2a2a6044 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -138,7 +138,7 @@ Striking a noncultist, however, will tear their flesh."}
desc = "A torn, dust-caked hood. Strange letters line the inside."
flags_inv = HIDEFACE|HIDEHAIR|HIDEEARS
flags_cover = HEADCOVERSEYES
- armor = list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 25, BIO = 10, RAD = 0, FIRE = 10, ACID = 10, STAMINA = 40, BLEED = 20)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 25, BIO = 10, FIRE = 10, ACID = 10, STAMINA = 40, BLEED = 20)
cold_protection = HEAD
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
heat_protection = HEAD
@@ -153,7 +153,7 @@ Striking a noncultist, however, will tear their flesh."}
item_state = "cultrobes"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/tome, /obj/item/melee/cultblade)
- armor = list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 25, BIO = 10, RAD = 0, FIRE = 10, ACID = 10, STAMINA = 40, BLEED = 20)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 20, BOMB = 25, BIO = 10, FIRE = 10, ACID = 10, STAMINA = 40, BLEED = 20)
flags_inv = HIDEJUMPSUIT
cold_protection = CHEST|GROIN|LEGS|ARMS
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
@@ -187,7 +187,7 @@ Striking a noncultist, however, will tear their flesh."}
item_state = null
desc = "A helm worn by the followers of Nar'Sie."
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES|HIDESNOUT
- armor = list(MELEE = 50, BULLET = 30, LASER = 50, ENERGY = 20, BOMB = 25, BIO = 10, RAD = 0, FIRE = 10, ACID = 10, STAMINA = 50, BLEED = 50)
+ armor = list(MELEE = 50, BULLET = 30, LASER = 50, ENERGY = 20, BOMB = 25, BIO = 10, FIRE = 10, ACID = 10, STAMINA = 50, BLEED = 50)
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/suit/magusred
@@ -199,7 +199,7 @@ Striking a noncultist, however, will tear their flesh."}
item_state = null
body_parts_covered = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/tome, /obj/item/melee/cultblade)
- armor = list(MELEE = 50, BULLET = 30, LASER = 50, ENERGY = 20, BOMB = 25, BIO = 10, RAD = 0, FIRE = 10, ACID = 10, STAMINA = 50, BLEED = 20)
+ armor = list(MELEE = 50, BULLET = 30, LASER = 50, ENERGY = 20, BOMB = 25, BIO = 10, FIRE = 10, ACID = 10, STAMINA = 50, BLEED = 20)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/sharpener/cult
@@ -220,7 +220,7 @@ Striking a noncultist, however, will tear their flesh."}
icon_state = "cult_armor"
item_state = null
w_class = WEIGHT_CLASS_BULKY
- armor = list(MELEE = 40, BULLET = 30, LASER = 40, ENERGY = 30, BOMB = 50, BIO = 30, RAD = 30, FIRE = 50, ACID = 60, STAMINA = 40, BLEED = 20)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 40, ENERGY = 30, BOMB = 50, BIO = 30, FIRE = 50, ACID = 60, STAMINA = 40, BLEED = 20)
hoodtype = /obj/item/clothing/head/hooded/cult_hoodie
/// if anyone can equip this. used by the prefs menu
var/allow_any = FALSE
@@ -242,7 +242,7 @@ Striking a noncultist, however, will tear their flesh."}
name = "empowered cultist helmet"
desc = "Empowered helmet which creates a powerful shield around the user."
icon_state = "cult_hoodalt"
- armor = list(MELEE = 40, BULLET = 30, LASER = 40, ENERGY = 30, BOMB = 50, BIO = 30, RAD = 30, FIRE = 50, ACID = 60, STAMINA = 40, BLEED = 20)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 40, ENERGY = 30, BOMB = 50, BIO = 30, FIRE = 50, ACID = 60, STAMINA = 40, BLEED = 20)
/obj/item/clothing/suit/hooded/cultrobes/cult_shield/equipped(mob/living/user, slot)
..()
@@ -257,14 +257,14 @@ Striking a noncultist, however, will tear their flesh."}
name = "flagellant's robes"
desc = "Blood-soaked robes infused with dark magic; allows the user to move at inhuman speeds, but at the cost of reduced protection."
allowed = list(/obj/item/tome, /obj/item/melee/cultblade)
- armor = list(MELEE = 10, BULLET = 20, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 40, BLEED = 20)
+ armor = list(MELEE = 10, BULLET = 20, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 40, BLEED = 20)
slowdown = -0.4
hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/berserkerhood
/obj/item/clothing/head/hooded/cult_hoodie/berserkerhood
name = "flagellant's hood"
desc = "Blood-soaked hood infused with dark magic."
- armor = list(MELEE = 10, BULLET = 20, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 40, BLEED = 20)
+ armor = list(MELEE = 10, BULLET = 20, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 40, BLEED = 20)
/obj/item/clothing/suit/hooded/cultrobes/berserker/equipped(mob/living/user, slot)
..()
diff --git a/code/modules/antagonists/heretic/items/heretic_armor.dm b/code/modules/antagonists/heretic/items/heretic_armor.dm
index 35815ff66ae45..ae61f91b32f06 100644
--- a/code/modules/antagonists/heretic/items/heretic_armor.dm
+++ b/code/modules/antagonists/heretic/items/heretic_armor.dm
@@ -31,7 +31,7 @@
allowed = list(/obj/item/melee/sickly_blade)
hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/eldritch
// Slightly better than normal cult robes
- armor = list(MELEE = 50, BULLET = 50, LASER = 50,ENERGY = 50, BOMB = 35, BIO = 20, RAD = 20, FIRE = 20, ACID = 20, STAMINA = 50, BLEED = 40)
+ armor = list(MELEE = 50, BULLET = 50, LASER = 50,ENERGY = 50, BOMB = 35, BIO = 20, FIRE = 20, ACID = 20, STAMINA = 50, BLEED = 40)
/obj/item/clothing/suit/hooded/cultrobes/eldritch/examine(mob/user)
. = ..()
@@ -51,7 +51,7 @@
flags_cover = NONE
desc = "Black like tar and doesn't reflect any light. Runic symbols line the outside, with each flash you lose comprehension of what you are seeing."
item_flags = EXAMINE_SKIP
- armor = list(MELEE = 30, BULLET = 30, LASER = 30,ENERGY = 30, BOMB = 15, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 30, BLEED = 40)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 30,ENERGY = 30, BOMB = 15, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 30, BLEED = 40)
/obj/item/clothing/head/hooded/cult_hoodie/void/Initialize(mapload)
. = ..()
@@ -66,7 +66,7 @@
hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/void
flags_inv = NONE
// slightly worse than normal cult robes
- armor = list(MELEE = 30, BULLET = 30, LASER = 30,ENERGY = 30, BOMB = 15, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 30, BLEED = 40)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 30,ENERGY = 30, BOMB = 15, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 30, BLEED = 40)
body_parts_covered = CHEST|GROIN|ARMS
pocket_storage_component_path = /datum/component/storage/concrete/pockets/void_cloak
qdel_hood = TRUE
diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
index 1da124706b09f..f59ade68831e2 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
@@ -654,7 +654,7 @@ This is here to make the tiles around the station mininuke change when it's arme
icon_state = "nucleardisk"
persistence_replacement = /obj/item/disk/nuclear/fake
max_integrity = 250
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 30, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
var/fake = FALSE
var/turf/lastlocation
diff --git a/code/modules/antagonists/space_dragon/carp_rift.dm b/code/modules/antagonists/space_dragon/carp_rift.dm
index 643119e949ebc..a693c8705324e 100644
--- a/code/modules/antagonists/space_dragon/carp_rift.dm
+++ b/code/modules/antagonists/space_dragon/carp_rift.dm
@@ -60,7 +60,7 @@
/obj/structure/carp_rift
name = "carp rift"
desc = "A rift akin to the ones space carp use to travel long distances."
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_integrity = 300
max_hit_damage = 50
icon = 'icons/obj/carp_rift.dmi'
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index f02f560c3ab11..262ff1ac2f795 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -70,7 +70,7 @@
req_access = list(ACCESS_ATMOSPHERICS)
max_integrity = 250
integrity_failure = 0.33
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
clicksound = 'sound/machines/terminal_select.ogg'
layer = ABOVE_WINDOW_LAYER
diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm
index f484ea71a372d..96bc4473dd8bd 100644
--- a/code/modules/atmospherics/machinery/atmosmachinery.dm
+++ b/code/modules/atmospherics/machinery/atmosmachinery.dm
@@ -57,7 +57,7 @@
normalize_cardinal_directions()
nodes = new(device_type)
if (!armor)
- armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
..()
if(process)
SSair.start_processing_machine(src)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 3ef275765c9ce..3d34d3f9abb15 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -8,7 +8,7 @@
icon_state = "pod-off"
density = TRUE
max_integrity = 350
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 30, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 30, ACID = 30, STAMINA = 0, BLEED = 0)
layer = ABOVE_WINDOW_LAYER
state_open = FALSE
circuit = /obj/item/circuitboard/machine/cryo_tube
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
index e7e7c4650972b..dc849b33e1c31 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
@@ -7,7 +7,7 @@
density = TRUE
max_integrity = 300
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 80, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 80, ACID = 30, STAMINA = 0, BLEED = 0)
layer = OBJ_LAYER
circuit = /obj/item/circuitboard/machine/thermomachine
diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm
index 24d3e44239728..7ccd173e510ac 100644
--- a/code/modules/atmospherics/machinery/other/meter.dm
+++ b/code/modules/atmospherics/machinery/other/meter.dm
@@ -9,7 +9,7 @@
idle_power_usage = 2
active_power_usage = 4
max_integrity = 150
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 40, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 40, ACID = 0, STAMINA = 0, BLEED = 0)
var/frequency = 0
var/atom/target
var/target_layer = PIPING_LAYER_DEFAULT
diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm
index d828301a6a128..4caf7c9d7fa2f 100644
--- a/code/modules/atmospherics/machinery/portable/canister.dm
+++ b/code/modules/atmospherics/machinery/portable/canister.dm
@@ -9,7 +9,7 @@
greyscale_colors = "#ffff00#000000"
density = TRUE
volume = 1000
- armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 10, BIO = 100, RAD = 100, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 10, BIO = 100, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0)
max_integrity = 250
integrity_failure = 0.4
pressure_resistance = 7 * ONE_ATMOSPHERE
diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
index 36f8f066a4066..bd1f9d53d6c5d 100644
--- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
+++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
@@ -3,7 +3,7 @@
icon = 'icons/obj/atmos.dmi'
use_power = NO_POWER_USE
max_integrity = 250
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 60, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 60, ACID = 30, STAMINA = 0, BLEED = 0)
anchored = FALSE
interacts_with_air = TRUE
diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm
index 1aa6d774f215a..e28a7bba1ecb3 100644
--- a/code/modules/awaymissions/mission_code/snowdin.dm
+++ b/code/modules/awaymissions/mission_code/snowdin.dm
@@ -543,7 +543,7 @@
/obj/item/clothing/under/syndicate/coldres
name = "insulated tactical turtleneck"
desc = "A nondescript and slightly suspicious-looking turtleneck with digital camouflage cargo pants. The interior has been padded with special insulation for both warmth and protection."
- armor = list(MELEE = 20, BULLET = 10, LASER = 0, ENERGY = 5, BOMB = 0, BIO = 0, RAD = 0, FIRE = 25, ACID = 25, STAMINA = 30, BLEED = 10)
+ armor = list(MELEE = 20, BULLET = 10, LASER = 0, ENERGY = 5, BOMB = 0, BIO = 0, FIRE = 25, ACID = 25, STAMINA = 30, BLEED = 10)
cold_protection = CHEST|GROIN|ARMS|LEGS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm
index 6f7043fd0ac3b..6d5f7728bcad8 100644
--- a/code/modules/cargo/supplypod.dm
+++ b/code/modules/cargo/supplypod.dm
@@ -12,7 +12,7 @@
delivery_icon = null
can_weld_shut = FALSE
divable = FALSE
- armor = list(MELEE = 30, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 100, BIO = 0, RAD = 0, FIRE = 100, ACID = 80, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 100, BIO = 0, FIRE = 100, ACID = 80, STAMINA = 0, BLEED = 0)
anchored = TRUE //So it cant slide around after landing
anchorable = FALSE
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index 90bec770bbb80..f4c1f3f0c391e 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -356,7 +356,7 @@
random_sensor = FALSE
resistance_flags = NONE
can_adjust = FALSE
- armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
var/datum/action/item_action/chameleon/change/chameleon_action
@@ -433,7 +433,7 @@
item_state = "armor"
blood_overlay_type = "armor"
resistance_flags = NONE
- armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
var/datum/action/item_action/chameleon/change/chameleon_action
@@ -477,7 +477,7 @@
icon_state = "meson"
item_state = "meson"
resistance_flags = NONE
- armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
var/datum/action/item_action/chameleon/change/chameleon_action
@@ -530,7 +530,7 @@
worn_icon_state = "ygloves"
resistance_flags = NONE
- armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
var/datum/action/item_action/chameleon/change/chameleon_action
@@ -581,7 +581,7 @@
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
- armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
/obj/item/clothing/head/chameleon
name = "grey cap"
@@ -591,7 +591,7 @@
clothing_flags = SNUG_FIT
icon_state = "greysoft"
resistance_flags = NONE
- armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
var/datum/action/item_action/chameleon/change/chameleon_action
@@ -655,7 +655,7 @@
// The camohat, I mean, holographic hat projection, is part of the
// drone itself.
clothing_flags = SNUG_FIT
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
// which means it offers no protection, it's just air and light
/obj/item/clothing/head/chameleon/drone/Initialize(mapload)
@@ -709,7 +709,7 @@
icon_state = "gas_alt"
item_state = "gas_alt"
resistance_flags = NONE
- armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
gas_transfer_coefficient = 0.01
@@ -778,7 +778,7 @@
/obj/item/clothing/mask/chameleon/drone
//Same as the drone chameleon hat, undroppable and no protection
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 10)
// Can drones use the voice changer part? Let's not find out.
voice_change = FALSE
@@ -803,7 +803,7 @@
desc = "A pair of black shoes."
permeability_coefficient = 0.05
resistance_flags = NONE
- armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
var/datum/action/item_action/chameleon/change/chameleon_action
@@ -1043,7 +1043,7 @@
desc = "A neosilk clip-on tie."
icon_state = "blacktie"
resistance_flags = NONE
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
/obj/item/clothing/neck/chameleon
var/datum/action/item_action/chameleon/change/chameleon_action
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 7eb20bdca3c0c..b5abd199ee886 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -144,7 +144,7 @@
actions_types = list(/datum/action/item_action/toggle_research_scanner)
glass_colour_type = /datum/client_colour/glass_colour/purple
resistance_flags = ACID_PROOF
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
/obj/item/clothing/glasses/science/item_action_slot_check(slot)
if(slot == ITEM_SLOT_EYES)
@@ -156,7 +156,7 @@
icon_state = "prescscihud"
emissive_state = "prehud_emissive"
resistance_flags = NONE
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 40, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 20, ACID = 40, STAMINA = 0, BLEED = 0)
vision_correction = 1
/obj/item/clothing/glasses/science/sciencesun
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index 7b6e4a9108017..bb98856881266 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -178,7 +178,7 @@
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
strip_delay = 60
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 70, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 70, ACID = 50, STAMINA = 0, BLEED = 0)
/obj/item/clothing/gloves/color/latex
name = "latex gloves"
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index e993df33d96ca..f2d99c884f3f6 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -25,7 +25,7 @@
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 70, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 70, ACID = 30, STAMINA = 0, BLEED = 0)
/obj/item/clothing/gloves/combat
name = "combat gloves"
@@ -41,7 +41,7 @@
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50, STAMINA = 20, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 50, STAMINA = 20, BLEED = 10)
/obj/item/clothing/gloves/bracer
name = "bone bracers"
@@ -57,7 +57,7 @@
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
- armor = list(MELEE = 15, BULLET = 35, LASER = 35, ENERGY = 20, BOMB = 35, BIO = 35, RAD = 35, FIRE = 0, ACID = 0, STAMINA = 20, BLEED = 20)
+ armor = list(MELEE = 15, BULLET = 35, LASER = 35, ENERGY = 20, BOMB = 35, BIO = 35, FIRE = 0, ACID = 0, STAMINA = 20, BLEED = 20)
/obj/item/clothing/gloves/rapid
name = "Gloves of the North Star"
diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm
index 5e2360d757310..2ef298633d6c3 100644
--- a/code/modules/clothing/head/beanie.dm
+++ b/code/modules/clothing/head/beanie.dm
@@ -89,7 +89,7 @@
name = "durathread beanie"
desc = "A beanie made from durathread, its resilient fibres provide some protection to the wearer."
icon_state = "beaniedurathread"
- armor = list(MELEE = 15, BULLET = 25, LASER = 15, ENERGY = 5, BOMB = 10, BIO = 0, RAD = 0, FIRE = 30, ACID = 5, STAMINA = 20, BLEED = 40)
+ armor = list(MELEE = 15, BULLET = 25, LASER = 15, ENERGY = 5, BOMB = 10, BIO = 0, FIRE = 30, ACID = 5, STAMINA = 20, BLEED = 40)
/obj/item/clothing/head/beanie/waldo
name = "red striped bobble hat"
diff --git a/code/modules/clothing/head/cakehat.dm b/code/modules/clothing/head/cakehat.dm
index c461b585a9c62..c10817b43a6f9 100644
--- a/code/modules/clothing/head/cakehat.dm
+++ b/code/modules/clothing/head/cakehat.dm
@@ -10,7 +10,7 @@
righthand_file = 'icons/mob/inhands/clothing_righthand.dmi'
hitsound = 'sound/weapons/tap.ogg'
flags_inv = HIDEEARS|HIDEHAIR
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0)
light_range = 2 //luminosity when on
flags_cover = HEADCOVERSEYES
heat = 1000 //use round numbers, guh
diff --git a/code/modules/clothing/head/costume.dm b/code/modules/clothing/head/costume.dm
index 23e23c5b6dcd0..8df86e5fd74d0 100644
--- a/code/modules/clothing/head/costume.dm
+++ b/code/modules/clothing/head/costume.dm
@@ -126,7 +126,7 @@
icon = 'icons/obj/clothing/clockwork_garb.dmi'
icon_state = "clockwork_helmet_old"
flags_inv = HIDEEARS|HIDEHAIR
- armor = list(MELEE = 5, BULLET = 0, LASER = -5, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 20, ACID = 20, STAMINA = 30)
+ armor = list(MELEE = 5, BULLET = 0, LASER = -5, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 20, ACID = 20, STAMINA = 30)
/obj/item/clothing/head/hooded/flashsuit
name = "flash button"
@@ -163,7 +163,7 @@
desc = "Spaceworthy and it looks like a space carp's head, smells like one too."
icon_state = "carp_helm"
item_state = "syndicate"
- armor = list(MELEE = 20, BULLET = 10, LASER = 20, ENERGY = 20, BOMB = 30, BIO = 100, RAD = 75, FIRE = 60, ACID = 75, STAMINA = 40)
+ armor = list(MELEE = 20, BULLET = 10, LASER = 20, ENERGY = 20, BOMB = 30, BIO = 100, FIRE = 60, ACID = 75, STAMINA = 40)
light_system = NO_LIGHT_SUPPORT
light_range = 0 //luminosity when on
actions_types = list()
@@ -175,13 +175,13 @@
/obj/item/clothing/head/hooded/carp_hood/spaceproof/old
name = "battered carp helmet"
desc = "It's covered in bite marks and scratches, yet seems to be still perfectly functional."
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 50, FIRE = 80, ACID = 70, STAMINA = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 80, ACID = 70, STAMINA = 10)
/obj/item/clothing/suit/hooded/carp_costume/spaceproof/old
name = "battered carp space suit"
desc = "It's covered in bite marks and scratches, yet seems to be still perfectly functional."
slowdown = 1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 50, FIRE = 80, ACID = 70, STAMINA = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 80, ACID = 70, STAMINA = 10)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool)
hoodtype = /obj/item/clothing/head/hooded/carp_hood/spaceproof/old
@@ -209,11 +209,11 @@
/obj/item/clothing/suit/hooded/bee_costume/syndie
name = "BLF costume"
- armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 40, BOMB = 0, BIO = 60, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 40)
+ armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 40, BOMB = 0, BIO = 60, FIRE = 0, ACID = 50, STAMINA = 40)
hoodtype = /obj/item/clothing/head/hooded/bee_hood/syndie
/obj/item/clothing/head/hooded/bee_hood/syndie
- armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 40, BOMB = 0, BIO = 60, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 40)
+ armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 40, BOMB = 0, BIO = 60, FIRE = 0, ACID = 50, STAMINA = 40)
/obj/item/clothing/head/hooded/human_head
name = "bloated human head"
diff --git a/code/modules/clothing/head/crown.dm b/code/modules/clothing/head/crown.dm
index 885baaccb51d0..85b2787542228 100644
--- a/code/modules/clothing/head/crown.dm
+++ b/code/modules/clothing/head/crown.dm
@@ -2,7 +2,7 @@
name = "crown"
desc = "A crown fit for a king, a petty king maybe."
icon_state = "crown"
- armor = list(MELEE = 15, BULLET = 0, LASER = 0, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 40)
+ armor = list(MELEE = 15, BULLET = 0, LASER = 0, ENERGY = 15, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 40)
resistance_flags = FIRE_PROOF
dynamic_hair_suffix = ""
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index 53a77aaffcd89..2d845abdd844d 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -7,7 +7,7 @@
desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight."
icon_state = "hardhat0_yellow"
item_state = null
- armor = list(MELEE = 15, BULLET = 5, LASER = 20, ENERGY = 10, BOMB = 20, BIO = 10, RAD = 20, FIRE = 100, ACID = 50, STAMINA = 20, BLEED = 60)
+ armor = list(MELEE = 15, BULLET = 5, LASER = 20, ENERGY = 10, BOMB = 20, BIO = 10, FIRE = 100, ACID = 50, STAMINA = 20, BLEED = 60)
flags_inv = NONE
actions_types = list(/datum/action/item_action/toggle_helmet_light)
resistance_flags = FIRE_PROOF
@@ -173,7 +173,7 @@
hat_type = "pumpkin"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
clothing_flags = SNUG_FIT
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 10)
light_range = 2 //luminosity when on
flags_cover = HEADCOVERSEYES
@@ -187,7 +187,7 @@
item_state = null
hat_type = "reindeer"
flags_inv = 0
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0)
light_range = 1 //luminosity when on
dynamic_hair_suffix = ""
diff --git a/code/modules/clothing/head/hat.dm b/code/modules/clothing/head/hat.dm
index 1ec1a0b6b5979..b352ddf5c4d2e 100644
--- a/code/modules/clothing/head/hat.dm
+++ b/code/modules/clothing/head/hat.dm
@@ -8,7 +8,7 @@
desc = "It's good to be emperor."
item_state = "that"
flags_inv = NONE
- armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 30)
+ armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 30)
strip_delay = 80
clothing_flags = SNUG_FIT // prevents bypassing the strip delay
@@ -18,7 +18,7 @@
desc = "Worn by the finest of CentCom commanders. Inside the lining of the cap, lies two faint initials."
item_state = "that"
flags_inv = 0
- armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 30)
+ armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 30)
strip_delay = (8 SECONDS)
/obj/item/clothing/head/costume/canada
@@ -44,7 +44,7 @@
icon_state = "plaguedoctor"
clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | SNUG_FIT
permeability_coefficient = 0.01
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 0, ACID = 0, STAMINA = 0)
flags_inv = HIDEHAIR
/obj/item/clothing/head/costume/nursehat
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 9f53df84a6946..f9fd9f19c58ca 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -5,7 +5,7 @@
worn_icon = 'icons/mob/clothing/head/helmet.dmi'
icon_state = "helmet"
item_state = "helmet"
- armor = list(MELEE = 35, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 50)
+ armor = list(MELEE = 35, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 50)
flags_inv = HIDEEARS
cold_protection = HEAD
heat_protection = HEAD
@@ -57,7 +57,7 @@
desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent."
icon_state = "helmetalt"
item_state = "helmetalt"
- armor = list(MELEE = 15, BULLET = 60, LASER = 10, ENERGY = 15, BOMB = 40, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 50)
+ armor = list(MELEE = 15, BULLET = 60, LASER = 10, ENERGY = 15, BOMB = 40, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 50)
/obj/item/clothing/head/helmet/alt/Initialize(mapload)
. = ..()
@@ -116,7 +116,7 @@
item_state = "helmet"
toggle_message = "You pull the visor down on"
alt_toggle_message = "You push the visor up on"
- armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 50, BLEED = 70)
+ armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 15, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 50, BLEED = 70)
flags_inv = HIDEEARS|HIDEFACE|HIDESNOUT
strip_delay = 80
actions_types = list(/datum/action/item_action/toggle)
@@ -172,7 +172,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 = 30, LASER = 30, ENERGY = 40, BOMB = 50, BIO = 90, RAD = 20, FIRE = 50, ACID = 50, STAMINA = 50, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 50, BIO = 90, FIRE = 50, ACID = 50, STAMINA = 50, BLEED = 70)
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
heat_protection = HEAD
@@ -198,7 +198,7 @@
flags_inv = HIDEEARS|HIDEHAIR
icon_state = "thunderdome"
item_state = "thunderdome"
- armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, RAD = 100, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
heat_protection = HEAD
@@ -208,14 +208,14 @@
/obj/item/clothing/head/helmet/thunderdome/holosuit
cold_protection = null
heat_protection = null
- armor = list(MELEE = 10, BULLET = 10, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 10, BULLET = 10, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
/obj/item/clothing/head/helmet/roman
name = "\improper Roman helmet"
desc = "An ancient helmet made of bronze and leather."
flags_inv = HIDEEARS|HIDEHAIR
flags_cover = HEADCOVERSEYES
- armor = list(MELEE = 25, BULLET = 0, LASER = 25, ENERGY = 30, BOMB = 10, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 40, BLEED = 50)
+ armor = list(MELEE = 25, BULLET = 0, LASER = 25, ENERGY = 30, BOMB = 10, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 40, BLEED = 50)
resistance_flags = FIRE_PROOF
icon_state = "roman"
item_state = "roman"
@@ -223,7 +223,7 @@
/obj/item/clothing/head/helmet/roman/fake
desc = "An ancient helmet made of plastic and leather."
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 10)
/obj/item/clothing/head/helmet/roman/legionnaire
name = "\improper Roman legionnaire helmet"
@@ -233,7 +233,7 @@
/obj/item/clothing/head/helmet/roman/legionnaire/fake
desc = "An ancient helmet made of plastic and leather. Has a red crest on top of it."
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 10)
/obj/item/clothing/head/helmet/gladiator
name = "gladiator helmet"
@@ -249,7 +249,7 @@
icon_state = "redtaghelm"
flags_cover = HEADCOVERSEYES
item_state = "redtaghelm"
- armor = list(MELEE = 15, BULLET = 10, LASER = 20, ENERGY = 30, BOMB = 20, BIO = 0, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 15, BULLET = 10, LASER = 20, ENERGY = 30, BOMB = 20, BIO = 0, FIRE = 0, ACID = 50, STAMINA = 10, BLEED = 10)
/obj/item/clothing/head/helmet/bluetaghelm
name = "blue laser tag helmet"
@@ -257,14 +257,14 @@
icon_state = "bluetaghelm"
flags_cover = HEADCOVERSEYES
item_state = "bluetaghelm"
- armor = list(MELEE = 15, BULLET = 10, LASER = 20, ENERGY = 30, BOMB = 20, BIO = 0, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 15, BULLET = 10, LASER = 20, ENERGY = 30, BOMB = 20, BIO = 0, FIRE = 0, ACID = 50, STAMINA = 10, BLEED = 10)
/obj/item/clothing/head/helmet/knight
name = "medieval helmet"
desc = "A classic metal helmet."
icon_state = "knight_green"
item_state = "knight_green"
- armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 50, BLEED = 10)
+ armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 50, BLEED = 10)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
strip_delay = 80
@@ -287,7 +287,7 @@
desc = "An intimidating tribal helmet, it doesn't look very comfortable."
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT
flags_cover = HEADCOVERSEYES
- armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 40)
+ armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 40)
icon_state = "skull"
item_state = "skull"
strip_delay = 100
@@ -298,7 +298,7 @@
icon_state = "durathread"
item_state = "durathread"
resistance_flags = FLAMMABLE
- armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 5, BOMB = 15, BIO = 0, RAD = 0, FIRE = 40, ACID = 50, STAMINA = 30, BLEED = 60)
+ armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 5, BOMB = 15, BIO = 0, FIRE = 40, ACID = 50, STAMINA = 30, BLEED = 60)
strip_delay = 60
/obj/item/clothing/head/helmet/rus_helmet
@@ -306,7 +306,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 = 15, BOMB = 10, BIO = 0, RAD = 20, FIRE = 20, ACID = 50, STAMINA = 20, BLEED = 15)
+ armor = list(MELEE = 25, BULLET = 30, LASER = 0, ENERGY = 15, BOMB = 10, BIO = 0, FIRE = 20, ACID = 50, STAMINA = 20, BLEED = 15)
pocket_storage_component_path = /datum/component/storage/concrete/pockets/helmet
/obj/item/clothing/head/helmet/rus_ushanka
@@ -317,7 +317,7 @@
body_parts_covered = HEAD
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
- armor = list(MELEE = 25, BULLET = 20, LASER = 20, ENERGY = 10, BOMB = 20, BIO = 50, RAD = 20, FIRE = -10, ACID = 50, STAMINA = 20, BLEED = 15)
+ armor = list(MELEE = 25, BULLET = 20, LASER = 20, ENERGY = 10, BOMB = 20, BIO = 50, FIRE = -10, ACID = 50, STAMINA = 20, BLEED = 15)
/obj/item/clothing/head/helmet/outlaw
name = "outlaw's hat"
@@ -328,4 +328,4 @@
item_state = "cowboy"
worn_icon_state = "cowboy_outlaw"
body_parts_covered = HEAD
- armor = list(MELEE = 25, BULLET = 25, LASER = 20, ENERGY = 10, BOMB = 30, BIO = 30, RAD = 20, FIRE = 0, ACID = 40, STAMINA = 25, BLEED = 15)
+ armor = list(MELEE = 25, BULLET = 25, LASER = 20, ENERGY = 10, BOMB = 30, BIO = 30, FIRE = 0, ACID = 40, STAMINA = 25, BLEED = 15)
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index debc8f0c7bc1d..f39861b430ead 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -32,7 +32,7 @@
icon_state = "captain"
item_state = "that"
flags_inv = 0
- armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 30, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 30)
+ armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 30, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 30)
strip_delay = 60
dog_fashion = /datum/dog_fashion/head/captain
dying_key = DYE_REGISTRY_CAP
@@ -50,7 +50,7 @@
name = "head of personnel's cap"
icon_state = "hopcap"
desc = "The symbol of true bureaucratic micromanagement."
- armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 30, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 15)
+ armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 30, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 15)
dog_fashion = /datum/dog_fashion/head/hop
dying_key = DYE_REGISTRY_CAP
@@ -74,7 +74,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 = 5, LASER = 25, ENERGY = 30, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 50, STAMINA = 25, BLEED = 20)
+ armor = list(MELEE = 25, BULLET = 5, LASER = 25, ENERGY = 30, BOMB = 0, BIO = 0, FIRE = 30, ACID = 50, STAMINA = 25, BLEED = 20)
icon_state = "detective"
item_state = "det_hat"
var/candy_cooldown = 0
@@ -171,7 +171,7 @@
name = "durathread beret"
desc = "A beret made from durathread, its resilient fibres provide some protection to the wearer."
icon_state = "beretdurathread"
- armor = list(MELEE = 15, BULLET = 25, LASER = 15, ENERGY = 20, BOMB = 10, BIO = 0, RAD = 0, FIRE = 30, ACID = 5, STAMINA = 20, BLEED = 45)
+ armor = list(MELEE = 15, BULLET = 25, LASER = 15, ENERGY = 20, BOMB = 10, BIO = 0, FIRE = 30, ACID = 5, STAMINA = 20, BLEED = 45)
//Security
@@ -179,7 +179,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 = 30, LASER = 25, ENERGY = 30, BOMB = 25, BIO = 10, RAD = 0, FIRE = 50, ACID = 60, STAMINA = 30, BLEED = 30)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 25, ENERGY = 30, BOMB = 25, BIO = 10, FIRE = 50, ACID = 60, STAMINA = 30, BLEED = 30)
strip_delay = 80
dynamic_hair_suffix = ""
dying_key = DYE_REGISTRY_CAP
@@ -205,7 +205,7 @@
name = "warden's police hat"
desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts."
icon_state = "policehelm"
- armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 25, BIO = 0, RAD = 0, FIRE = 30, ACID = 60, STAMINA = 30, BLEED = 25)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 25, BIO = 0, FIRE = 30, ACID = 60, STAMINA = 30, BLEED = 25)
strip_delay = 60
dog_fashion = /datum/dog_fashion/head/warden
@@ -282,14 +282,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 = 30, LASER = 30, ENERGY = 30, BOMB = 25, BIO = 0, RAD = 0, FIRE = 30, ACID = 60, STAMINA = 30, BLEED = 25)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 25, BIO = 0, FIRE = 30, ACID = 60, STAMINA = 30, BLEED = 25)
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 = 35, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 25)
+ armor = list(MELEE = 35, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 25)
strip_delay = 60
dog_fashion = null
@@ -297,14 +297,14 @@
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 = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 25, BIO = 0, RAD = 0, FIRE = 20, ACID = 50, STAMINA = 30, BLEED = 25)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 25, BIO = 0, FIRE = 20, ACID = 50, STAMINA = 30, BLEED = 25)
strip_delay = 60
/obj/item/clothing/head/beret/spacepol
name = "spacepol officer beret"
desc = "A special black beret for the mundane life of a SpacePol officer."
icon_state = "beret_corporate_officer"
- armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 25, BIO = 0, RAD = 0, FIRE = 20, ACID = 50, STAMINA = 30, BLEED = 25)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 25, BIO = 0, FIRE = 20, ACID = 50, STAMINA = 30, BLEED = 25)
strip_delay = 60
/obj/item/clothing/head/beret/sec/navyhos
@@ -316,7 +316,7 @@
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 = 30, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 30, ACID = 50, STAMINA = 30, BLEED = 25)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 30, ACID = 50, STAMINA = 30, BLEED = 25)
strip_delay = 60
/obj/item/clothing/head/beret/sec/navyofficer
@@ -333,35 +333,35 @@
name = "engineering beret"
desc = "A beret with the engineering insignia emblazoned on it. For engineers that are more inclined towards style than safety."
icon_state = "beret_engineering"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 10, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 10, ACID = 0, STAMINA = 0, BLEED = 0)
strip_delay = 60
/obj/item/clothing/head/beret/atmos
name = "atmospherics beret"
desc = "A beret for those who have shown immaculate proficienty in piping. Or plumbing."
icon_state = "beret_atmospherics"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 10, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 10, ACID = 0, STAMINA = 0, BLEED = 0)
strip_delay = 60
/obj/item/clothing/head/beret/ce
name = "chief engineer beret"
desc = "A white beret with the engineering insignia emblazoned on it. Its owner knows what they're doing. Probably."
icon_state = "beret_ce"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 20, FIRE = 30, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 30, ACID = 0, STAMINA = 0, BLEED = 0)
strip_delay = 60
/obj/item/clothing/head/beret/sci
name = "science beret"
desc = "A purple beret with the science insignia emblazoned on it. It has that authentic burning plasma smell."
icon_state = "beret_sci"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 5, BIO = 5, RAD = 0, FIRE = 5, ACID = 10, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 5, BIO = 5, FIRE = 5, ACID = 10, STAMINA = 0, BLEED = 0)
strip_delay = 60
/obj/item/clothing/head/beret/supply
name = "supply beret"
desc = "A brown beret with the supply insignia emblazoned on it. You can't help but wonder how much it'd sell for."
icon_state = "beret_supply"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 10, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 10, ACID = 0, STAMINA = 0, BLEED = 0)
strip_delay = 60
//Medical
@@ -369,14 +369,14 @@
name = "medical beret"
desc = "A white beret with a blue cross finely threaded into it. It has that sterile smell about it."
icon_state = "beret_med"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 20, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 20, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
strip_delay = 60
/obj/item/clothing/head/beret/cmo
name = "chief medical officer beret"
desc = "A baby blue beret with the insignia of Medistan. It smells very sterile."
icon_state = "beret_cmo"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 30, RAD = 10, FIRE = 0, ACID = 20, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 30, FIRE = 0, ACID = 20, STAMINA = 0, BLEED = 0)
strip_delay = 60
//CentCom
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index d90996a26bbc4..711eceef6f44f 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -19,7 +19,7 @@
custom_materials = list(/datum/material/iron=1750, /datum/material/glass=400)
flash_protect = 2
tint = 2
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 60, STAMINA = 5)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 60, STAMINA = 5)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT
actions_types = list(/datum/action/item_action/toggle)
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index ffeb296e16c42..cc197ad3e4afa 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -100,7 +100,7 @@
desc = "It's a robust baseball hat in tasteful red colour."
icon_state = "secsoft"
soft_color = "sec"
- armor = list(MELEE = 30, BULLET = 25, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 20, ACID = 50, STAMINA = 30, BLEED = 10)
+ armor = list(MELEE = 30, BULLET = 25, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 20, ACID = 50, STAMINA = 30, BLEED = 10)
strip_delay = 60
/obj/item/clothing/head/soft/sec/brig_physician
diff --git a/code/modules/clothing/head/tinfoilhat.dm b/code/modules/clothing/head/tinfoilhat.dm
index d7474119fadd2..0e5aac952c4bf 100644
--- a/code/modules/clothing/head/tinfoilhat.dm
+++ b/code/modules/clothing/head/tinfoilhat.dm
@@ -4,7 +4,7 @@
icon_state = "foilhat"
item_state = null
clothing_flags = EFFECT_HAT | SNUG_FIT
- armor = list(MELEE = 0, BULLET = 0, LASER = -5, ENERGY = 0, BOMB = 0, BIO = 0, RAD = -5, FIRE = 0, ACID = 0, STAMINA = 50)
+ armor = list(MELEE = 0, BULLET = 0, LASER = -5, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 50)
equip_delay_other = 140
var/datum/brain_trauma/mild/phobia/conspiracies/paranoia
var/mutable_appearance/psychic_overlay
@@ -61,7 +61,7 @@
item_state = "tinfoil_envirohelm"
strip_delay = 150
clothing_flags = STOPSPRESSUREDAMAGE | EFFECT_HAT | SNUG_FIT | HEADINTERNALS
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 50)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 50, ACID = 50, STAMINA = 50)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
light_system = MOVABLE_LIGHT
light_range = 4
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index 0b11d95207a2c..07daadfa15b98 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -28,7 +28,7 @@
custom_materials = list(/datum/material/iron=4000, /datum/material/glass=2000)
flash_protect = 2
tint = 2
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 55, STAMINA = 15, BLEED = 5)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 55, STAMINA = 15, BLEED = 5)
actions_types = list(/datum/action/item_action/toggle)
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT
flags_cover = MASKCOVERSEYES
@@ -53,7 +53,7 @@
desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply."
icon_state = "plaguedoctor"
item_state = "gas_mask"
- armor = list(MELEE = 0, BULLET = 0, LASER = 2, ENERGY = 2, BOMB = 0, BIO = 75, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 2, ENERGY = 2, BOMB = 0, BIO = 75, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
/obj/item/clothing/mask/gas/syndicate
name = "syndicate mask"
diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm
index 7dd01b5036195..e3b03cf0c29b9 100644
--- a/code/modules/clothing/masks/hailer.dm
+++ b/code/modules/clothing/masks/hailer.dm
@@ -33,7 +33,7 @@
aggressiveness = 3
flags_inv = HIDEFACIALHAIR | HIDEFACE | HIDEEYES | HIDEEARS | HIDEHAIR | HIDESNOUT
visor_flags_inv = 0
- armor = list(MELEE = 10, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, BIO = 50, RAD = 0, FIRE = 20, ACID = 40, STAMINA = 30, BLEED = 30)
+ armor = list(MELEE = 10, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, BIO = 50, FIRE = 20, ACID = 40, STAMINA = 30, BLEED = 30)
/obj/item/clothing/mask/gas/sechailer/swat/spacepol
name = "spacepol mask"
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 36de595d0c701..d4dd5f766121b 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -28,7 +28,7 @@
visor_flags_cover = MASKCOVERSMOUTH
gas_transfer_coefficient = 0.9
permeability_coefficient = 0.01
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 25, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 25, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
actions_types = list(/datum/action/item_action/adjust)
/obj/item/clothing/mask/surgical/attack_self(mob/user)
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index 6e3a364ab8ff3..bec86b1900578 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -65,7 +65,7 @@
icon_state = "advmag0"
magboot_state = "advmag"
slowdown_active = SHOES_SLOWDOWN
- armor = list(MELEE = 40, BULLET = 30, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 30, RAD = 30, FIRE = 90, ACID = 50, STAMINA = 30, BLEED = 40)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 30, FIRE = 90, ACID = 50, STAMINA = 30, BLEED = 40)
clothing_flags = NOSLIP
/obj/item/clothing/shoes/magboots/commando/attack_self(mob/user) //Code for the passive no-slip of the commando magboots to always apply, kind of a shit code solution though.
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 062fd6927148f..e6e826a32f602 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -6,7 +6,7 @@
item_state = "jackboots"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
- armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 10, RAD = 0, FIRE = 70, ACID = 50, STAMINA = 30, BLEED = 20)
+ armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 10, FIRE = 70, ACID = 50, STAMINA = 30, BLEED = 20)
strip_delay = 40
resistance_flags = NONE
permeability_coefficient = 0.05 //Thick soles, and covers the ankle
@@ -17,7 +17,7 @@
desc = "High speed, no drag combat boots."
permeability_coefficient = 0.01
clothing_flags = NOSLIP
- armor = list(MELEE = 40, BULLET = 30, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 30, RAD = 30, FIRE = 90, ACID = 50, STAMINA = 30, BLEED = 20)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 30, FIRE = 90, ACID = 50, STAMINA = 30, BLEED = 20)
/obj/item/clothing/shoes/sandal
desc = "A pair of rather plain wooden sandals."
@@ -50,7 +50,7 @@
strip_delay = 30
equip_delay_other = 50
resistance_flags = NONE
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 40, ACID = 75, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 40, ACID = 75, STAMINA = 0, BLEED = 0)
can_be_bloody = FALSE
custom_price = 100
diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm
index 10f1173c51507..fa46bf2736967 100644
--- a/code/modules/clothing/spacesuits/_spacesuits.dm
+++ b/code/modules/clothing/spacesuits/_spacesuits.dm
@@ -11,7 +11,7 @@
desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays."
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | HEADINTERNALS
permeability_coefficient = 0.01
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 50, FIRE = 80, ACID = 70, STAMINA = 10, BLEED = 50)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 80, ACID = 70, STAMINA = 10, BLEED = 50)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
dynamic_hair_suffix = ""
dynamic_fhair_suffix = ""
@@ -43,7 +43,7 @@
/obj/item/tank/internals,
)
slowdown = 1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 50, FIRE = 80, ACID = 70, STAMINA = 10, BLEED = 50)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 80, ACID = 70, STAMINA = 10, BLEED = 50)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT_OFF
diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm
index a9dbc7b1f9c47..0bc8fe78f8cfb 100644
--- a/code/modules/clothing/spacesuits/chronosuit.dm
+++ b/code/modules/clothing/spacesuits/chronosuit.dm
@@ -4,7 +4,7 @@
icon_state = "chronohelmet"
item_state = "chronohelmet"
slowdown = 1
- armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 60, BOMB = 30, BIO = 90, RAD = 90, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 80)
+ armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 60, BOMB = 30, BIO = 90, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 80)
resistance_flags = FIRE_PROOF | ACID_PROOF
var/obj/item/clothing/suit/space/chronos/suit
@@ -24,7 +24,7 @@
icon_state = "chronosuit"
item_state = "chronosuit"
actions_types = list(/datum/action/item_action/toggle_spacesuit, /datum/action/item_action/toggle)
- armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 60, BOMB = 30, BIO = 90, RAD = 90, FIRE = 100, ACID = 1000, STAMINA = 70, BLEED = 80)
+ armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 60, BOMB = 30, BIO = 90, FIRE = 100, ACID = 1000, STAMINA = 70, BLEED = 80)
resistance_flags = FIRE_PROOF | ACID_PROOF
var/list/chronosafe_items = list(/obj/item/chrono_eraser, /obj/item/gun/energy/chrono_gun)
var/obj/item/clothing/head/helmet/space/chronos/helmet
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 448e6be1c812e..b2c6a910b9e77 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -10,7 +10,7 @@
icon_state = "hardsuit0-engineering"
item_state = "eng_helm"
max_integrity = 300
- armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, RAD = 75, FIRE = 50, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, FIRE = 50, ACID = 75, STAMINA = 20, BLEED = 70)
light_system = MOVABLE_LIGHT_DIRECTIONAL
light_range = 4
light_power = 1
@@ -136,7 +136,7 @@
icon_state = "hardsuit-engineering"
item_state = "eng_hardsuit"
max_integrity = 300
- armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, RAD = 75, FIRE = 50, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, FIRE = 50, ACID = 75, STAMINA = 20, BLEED = 70)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser)
siemens_coefficient = 0
var/obj/item/clothing/head/helmet/space/hardsuit/helmet
@@ -281,7 +281,7 @@
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
icon_state = "hardsuit0-engineering"
item_state = "eng_helm"
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 12, BOMB = 10, BIO = 100, RAD = 75, FIRE = 100, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 12, BOMB = 10, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 20, BLEED = 70)
hardsuit_type = "engineering"
resistance_flags = FIRE_PROOF
@@ -290,7 +290,7 @@
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
icon_state = "hardsuit-engineering"
item_state = "eng_hardsuit"
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, RAD = 75, FIRE = 100, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 20, BLEED = 70)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine
resistance_flags = FIRE_PROOF
@@ -301,7 +301,7 @@
icon_state = "hardsuit0-atmospherics"
item_state = "atmo_helm"
hardsuit_type = "atmospherics"
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, RAD = 25, FIRE = 100, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 20, BLEED = 70)
heat_protection = HEAD //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
@@ -310,7 +310,7 @@
desc = "A special suit that protects against hazardous, low pressure environments. Has thermal shielding."
icon_state = "hardsuit-atmospherics"
item_state = "atmo_hardsuit"
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, RAD = 25, FIRE = 100, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 20, BLEED = 70)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
@@ -323,7 +323,7 @@
icon_state = "hardsuit0-white"
item_state = "ce_helm"
hardsuit_type = "white"
- armor = list(MELEE = 40, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 90, STAMINA = 30, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 50, BIO = 100, FIRE = 100, ACID = 90, STAMINA = 30, BLEED = 70)
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
@@ -332,7 +332,7 @@
name = "advanced hardsuit"
desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish."
item_state = "ce_hardsuit"
- armor = list(MELEE = 40, BULLET = 5, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 90, STAMINA = 30, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 5, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 100, FIRE = 100, ACID = 90, STAMINA = 30, BLEED = 70)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite
@@ -349,7 +349,7 @@
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
heat_protection = HEAD
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 75, STAMINA = 40, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 50, BIO = 100, FIRE = 50, ACID = 75, STAMINA = 40, BLEED = 70)
light_range = 7
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator)
high_pressure_multiplier = 0.6
@@ -366,7 +366,7 @@
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
supports_variations = DIGITIGRADE_VARIATION
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 75, STAMINA = 40, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 100, FIRE = 50, ACID = 75, STAMINA = 40, BLEED = 70)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -384,7 +384,7 @@
item_state = "death_commando_mask"
hardsuit_type = "exploration"
heat_protection = HEAD
- armor = list(MELEE = 35, BULLET = 15, LASER = 20, ENERGY = 10, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 35, BULLET = 15, LASER = 20, ENERGY = 10, BOMB = 50, BIO = 100, FIRE = 50, ACID = 75, STAMINA = 20, BLEED = 70)
light_range = 6
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator)
actions_types = list(
@@ -409,7 +409,7 @@
desc = "An advanced space-proof hardsuit designed to protect against off-station threats. Despite looking remarkably similar to the mining hardsuit \
Nanotrasen officials note that it is unique in every way and the design has not been copied in any way."
item_state = "exploration_hardsuit"
- armor = list(MELEE = 35, BULLET = 15, LASER = 20, ENERGY = 10, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 35, BULLET = 15, LASER = 20, ENERGY = 10, BOMB = 50, BIO = 100, FIRE = 50, ACID = 75, STAMINA = 20, BLEED = 70)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/exploration
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -422,7 +422,7 @@
icon_state = "hardsuit0-cybersun"
item_state = "death_commando_mask"
hardsuit_type = "cybersun"
- armor = list(MELEE = 30, BULLET = 35, LASER = 15, ENERGY = 15, BOMB = 60, BIO = 100, RAD = 55, FIRE = 30, ACID = 60, STAMINA = 15, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 35, LASER = 15, ENERGY = 15, BOMB = 60, BIO = 100, FIRE = 30, ACID = 60, STAMINA = 15, BLEED = 70)
strip_delay = 600
/obj/item/clothing/suit/space/hardsuit/cybersun
@@ -431,7 +431,7 @@
desc = "A bulky, protective suit designed to protect against the perils facing Cybersun Employed Engineers, Researchers, and more as they head from the safety of \
more stable employment to the dangers of Nanotrasen Controlled Deep Space. Designed to get the job done despite on-site hazards in derelicts, laser armor was \
sacrificed in favor of more effective blunt armor plates and radiation shielding."
- armor = list(MELEE = 30, BULLET = 35, LASER = 15, ENERGY = 15, BOMB = 60, BIO = 100, RAD = 55, FIRE = 30, ACID = 60, STAMINA = 15, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 35, LASER = 15, ENERGY = 15, BOMB = 60, BIO = 100, FIRE = 30, ACID = 60, STAMINA = 15, BLEED = 70)
hardsuit_type = "cybersun"
item_state = "death_commando_mask"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cybersun
@@ -445,7 +445,7 @@
icon_state = "hardsuit1-syndi"
item_state = "syndie_helm"
hardsuit_type = "syndi"
- armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 55, BOMB = 35, BIO = 100, RAD = 50, FIRE = 50, ACID = 90, STAMINA = 60, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 55, BOMB = 35, BIO = 100, FIRE = 50, ACID = 90, STAMINA = 60, BLEED = 70)
on = TRUE
var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null
actions_types = list(
@@ -536,7 +536,7 @@
hardsuit_type = "syndi"
w_class = WEIGHT_CLASS_NORMAL
supports_variations = DIGITIGRADE_VARIATION
- armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 55, BOMB = 35, BIO = 100, RAD = 50, FIRE = 50, ACID = 90, STAMINA = 60, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 55, BOMB = 35, BIO = 100, FIRE = 50, ACID = 90, STAMINA = 60, BLEED = 70)
allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi
jetpack = /obj/item/tank/jetpack/suit
@@ -611,7 +611,7 @@
alt_desc = "An elite version of the syndicate helmet, with improved armour and fireproofing. It is in combat mode. Property of Gorlex Marauders."
icon_state = "hardsuit0-syndielite"
hardsuit_type = "syndielite"
- armor = list(MELEE = 60, BULLET = 60, LASER = 50, ENERGY = 80, BOMB = 55, BIO = 100, RAD = 70, FIRE = 100, ACID = 100, STAMINA = 80, BLEED = 70)
+ armor = list(MELEE = 60, BULLET = 60, LASER = 50, ENERGY = 80, BOMB = 55, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 80, BLEED = 70)
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -623,7 +623,7 @@
icon_state = "hardsuit0-syndielite"
hardsuit_type = "syndielite"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
- armor = list(MELEE = 60, BULLET = 60, LASER = 50, ENERGY = 80, BOMB = 55, BIO = 100, RAD = 70, FIRE = 100, ACID = 100, STAMINA = 80, BLEED = 70)
+ armor = list(MELEE = 60, BULLET = 60, LASER = 50, ENERGY = 80, BOMB = 55, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 80, BLEED = 70)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -659,7 +659,7 @@
item_state = "wiz_helm"
hardsuit_type = "wiz"
resistance_flags = FIRE_PROOF | ACID_PROOF //No longer shall our kind be foiled by lone chemists with spray bottles!
- armor = list(MELEE = 40, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 100, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 70)
heat_protection = HEAD //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
@@ -670,7 +670,7 @@
item_state = "wiz_hardsuit"
w_class = WEIGHT_CLASS_NORMAL
resistance_flags = FIRE_PROOF | ACID_PROOF
- armor = list(MELEE = 40, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 100, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 70)
allowed = list(/obj/item/teleportation_scroll, /obj/item/tank/internals)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
@@ -693,7 +693,7 @@
item_state = "medical_helm"
hardsuit_type = "medical"
flash_protect = 0
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, RAD = 60, FIRE = 60, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, FIRE = 60, ACID = 75, STAMINA = 20, BLEED = 70)
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | SCAN_REAGENTS | HEADINTERNALS
/obj/item/clothing/suit/space/hardsuit/medical
@@ -703,7 +703,7 @@
item_state = "medical_hardsuit"
supports_variations = DIGITIGRADE_VARIATION
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/firstaid, /obj/item/healthanalyzer, /obj/item/stack/medical)
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, RAD = 60, FIRE = 60, ACID = 75, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, FIRE = 60, ACID = 75, STAMINA = 20, BLEED = 70)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical
slowdown = 0.5
@@ -724,7 +724,7 @@
hardsuit_type = "rd"
resistance_flags = ACID_PROOF | FIRE_PROOF
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 100, BIO = 100, RAD = 60, FIRE = 60, ACID = 80, STAMINA = 30, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 100, BIO = 100, FIRE = 60, ACID = 80, STAMINA = 30, BLEED = 70)
var/obj/machinery/doppler_array/integrated/bomb_radar
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | SCAN_REAGENTS | HEADINTERNALS
actions_types = list(
@@ -758,7 +758,7 @@
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure.
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/gun/energy/wormhole_projector,
/obj/item/hand_tele, /obj/item/aicard)
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 100, BIO = 100, RAD = 60, FIRE = 60, ACID = 80, STAMINA = 30, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 100, BIO = 100, FIRE = 60, ACID = 80, STAMINA = 30, BLEED = 70)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd
cell = /obj/item/stock_parts/cell/super
@@ -773,7 +773,7 @@
icon_state = "hardsuit0-sec"
item_state = "sec_helm"
hardsuit_type = "sec"
- armor = list(MELEE = 35, BULLET = 35, LASER = 30, ENERGY = 50, BOMB = 40, BIO = 100, RAD = 50, FIRE = 75, ACID = 75, STAMINA = 50, BLEED = 70)
+ armor = list(MELEE = 35, BULLET = 35, LASER = 30, ENERGY = 50, BOMB = 40, BIO = 100, FIRE = 75, ACID = 75, STAMINA = 50, BLEED = 70)
/obj/item/clothing/suit/space/hardsuit/security
@@ -782,7 +782,7 @@
desc = "A bulky, armored suit designed to protect security personnel in low pressure environments."
item_state = "sec_hardsuit"
supports_variations = DIGITIGRADE_VARIATION
- armor = list(MELEE = 35, BULLET = 35, LASER = 30, ENERGY = 50, BOMB = 40, BIO = 100, RAD = 50, FIRE = 75, ACID = 75, STAMINA = 50, BLEED = 70)
+ armor = list(MELEE = 35, BULLET = 35, LASER = 30, ENERGY = 50, BOMB = 40, BIO = 100, FIRE = 75, ACID = 75, STAMINA = 50, BLEED = 70)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security
/obj/item/clothing/suit/space/hardsuit/security/Initialize(mapload)
@@ -795,7 +795,7 @@
desc = "A bulky, armored helmet designed to protect security personnel in low pressure environments. This one has markings for the head of security."
icon_state = "hardsuit0-hos"
hardsuit_type = "hos"
- armor = list(MELEE = 35, BULLET = 35, LASER = 30, ENERGY = 50, BOMB = 40, BIO = 100, RAD = 50, FIRE = 75, ACID = 75, STAMINA = 50, BLEED = 70)
+ armor = list(MELEE = 35, BULLET = 35, LASER = 30, ENERGY = 50, BOMB = 40, BIO = 100, FIRE = 75, ACID = 75, STAMINA = 50, BLEED = 70)
/obj/item/clothing/suit/space/hardsuit/security/head_of_security
@@ -803,7 +803,7 @@
name = "head of security's hardsuit"
supports_variations = DIGITIGRADE_VARIATION
desc = "A bulky, armored suit designed to protect security personnel in low pressure environments. This one has markings for the head of security."
- armor = list(MELEE = 35, BULLET = 35, LASER = 30, ENERGY = 50, BOMB = 40, BIO = 100, RAD = 50, FIRE = 75, ACID = 75, STAMINA = 50, BLEED = 70)
+ armor = list(MELEE = 35, BULLET = 35, LASER = 30, ENERGY = 50, BOMB = 40, BIO = 100, FIRE = 75, ACID = 75, STAMINA = 50, BLEED = 70)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
jetpack = /obj/item/tank/jetpack/suit
cell = /obj/item/stock_parts/cell/super
@@ -814,7 +814,7 @@
icon_state = "swat2helm"
item_state = "swat2helm"
desc = "A tactical SWAT helmet MK.II."
- armor = list(MELEE = 40, BULLET = 50, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 50, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
resistance_flags = FIRE_PROOF | ACID_PROOF
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT
heat_protection = HEAD
@@ -828,7 +828,7 @@
desc = "A MK.II SWAT suit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available."
icon_state = "swat2"
item_state = "swat2"
- armor = list(MELEE = 40, BULLET = 50, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 50, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
resistance_flags = FIRE_PROOF | ACID_PROOF
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT //this needed to be added a long fucking time ago
@@ -860,7 +860,7 @@
desc = "A special helmet designed for work in a hazardous, low-humor environment. Has radiation shielding."
icon_state = "hardsuit0-clown"
item_state = "hardsuit0-clown"
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 20, BOMB = 10, BIO = 100, RAD = 75, FIRE = 60, ACID = 30, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 20, BOMB = 10, BIO = 100, FIRE = 60, ACID = 30, STAMINA = 20, BLEED = 70)
hardsuit_type = "clown"
/obj/item/clothing/suit/space/hardsuit/clown
@@ -868,7 +868,7 @@
desc = "A special suit that protects against hazardous, low humor environments. Has radiation shielding. Only a true clown can wear it."
icon_state = "hardsuit-clown"
item_state = "clown_hardsuit"
- armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 20, BOMB = 10, BIO = 100, RAD = 75, FIRE = 60, ACID = 30, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 20, BOMB = 10, BIO = 100, FIRE = 60, ACID = 30, STAMINA = 20, BLEED = 70)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clown
/obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE)
@@ -886,7 +886,7 @@
desc = "Early prototype RIG hardsuit helmet, designed to quickly shift over a user's head. Design constraints of the helmet mean it has no inbuilt cameras, thus it restricts the users visability."
icon_state = "hardsuit0-ancient"
item_state = "anc_helm"
- armor = list(MELEE = 30, BULLET = 5, LASER = 5, ENERGY = 10, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 75, STAMINA = 30, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 5, ENERGY = 10, BOMB = 50, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 30, BLEED = 70)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/gun/energy/plasmacutter, /obj/item/gun/energy/plasmacutter/adv, /obj/item/gun/energy/laser/retro, /obj/item/gun/energy/laser/retro/old, /obj/item/gun/energy/e_gun/old)
hardsuit_type = "ancient"
resistance_flags = FIRE_PROOF
@@ -896,7 +896,7 @@
desc = "Prototype powered RIG hardsuit. Provides excellent protection from the elements of space while being comfortable to move around in, thanks to the powered locomotives. Remains very bulky however."
icon_state = "hardsuit-ancient"
item_state = "anc_hardsuit"
- armor = list(MELEE = 30, BULLET = 5, LASER = 5, ENERGY = 10, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 75, STAMINA = 30, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 5, LASER = 5, ENERGY = 10, BOMB = 50, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 30, BLEED = 70)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/gun/energy/laser/retro, /obj/item/gun/energy/laser/retro/old, /obj/item/gun/energy/e_gun/old)
slowdown = 3
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ancient
@@ -912,7 +912,7 @@
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
allowed = null
supports_variations = DIGITIGRADE_VARIATION
- armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 40, BOMB = 10, BIO = 100, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 40, BOMB = 10, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/suit/space/hardsuit/shielded/setup_shielding()
@@ -932,7 +932,7 @@
worn_icon = 'icons/mob/clothing/suits/ctf.dmi'
icon_state = "standard"
// Adding TRAIT_NODROP is done when the CTF spawner equips people
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0) // CTF gear gives no protection outside of the shield
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0) // CTF gear gives no protection outside of the shield
allowed = null
greyscale_config = /datum/greyscale_config/ctf_standard
greyscale_config_worn = /datum/greyscale_config/ctf_standard_worn
@@ -999,7 +999,7 @@
icon_state = "hardsuit1-syndi"
item_state = "syndie_hardsuit"
hardsuit_type = "syndi"
- armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 40, BOMB = 35, BIO = 100, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 40, BOMB = 35, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
slowdown = 0
@@ -1035,7 +1035,7 @@
icon_state = "hardsuit1-syndi"
item_state = "syndie_helm"
hardsuit_type = "syndi"
- armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 40, BOMB = 35, BIO = 100, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 40, BOMB = 35, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 70)
actions_types = list(
/datum/action/item_action/toggle_helmet_light,
/datum/action/item_action/toggle_beacon_hud
@@ -1065,7 +1065,7 @@
icon_state = "deathsquad"
item_state = "swat_suit"
hardsuit_type = "syndi"
- armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY =60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
+ armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY =60, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
jetpack = /obj/item/tank/jetpack/suit
@@ -1081,7 +1081,7 @@
icon_state = "deathsquad"
item_state = "deathsquad"
hardsuit_type = "syndi"
- armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
+ armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
actions_types = list()
@@ -1108,7 +1108,7 @@
desc = "A somehow spaceworthy set of armor with outstanding protection against almost everything. Comes in an oddly nostalgic green. "
icon_state = "doomguy"
item_state = "doomguy"
- armor = list(MELEE = 135, BULLET = 135, LASER = 135, ENERGY = 135, BOMB = 135, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
+ armor = list(MELEE = 135, BULLET = 135, LASER = 135, ENERGY = 135, BOMB = 135, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF | LAVA_PROOF
@@ -1123,7 +1123,7 @@
desc = "A dusty old helmet, somehow capable of resisting the strongest of blows."
icon_state = "doomguy"
item_state = "doomguy"
- armor = list(MELEE = 135, BULLET = 135, LASER = 135, ENERGY = 135, BOMB = 135, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
+ armor = list(MELEE = 135, BULLET = 135, LASER = 135, ENERGY = 135, BOMB = 135, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
actions_types = list()
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index af61ae8dab4be..49a157c01e8cc 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -22,7 +22,7 @@ Contains:
desc = "An advanced tactical space helmet."
icon_state = "deathsquad"
item_state = "deathsquad"
- armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
+ armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -37,7 +37,7 @@ Contains:
icon_state = "deathsquad"
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/knife/combat)
- armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
+ armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -56,7 +56,7 @@ Contains:
dynamic_hair_suffix = "+generic"
dynamic_fhair_suffix = "+generic"
flags_inv = 0
- armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
+ armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -75,7 +75,7 @@ Contains:
flags_inv = 0
w_class = WEIGHT_CLASS_NORMAL
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)
- armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
+ armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -116,7 +116,7 @@ Contains:
worn_icon = 'icons/mob/clothing/head/costume.dmi'
icon_state = "pirate"
item_state = "pirate"
- armor = list(MELEE = 30, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75, STAMINA = 20, BLEED = 20)
+ armor = list(MELEE = 30, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, FIRE = 60, ACID = 75, STAMINA = 20, BLEED = 20)
flags_inv = HIDEHAIR
strip_delay = 40
equip_delay_other = 20
@@ -137,7 +137,7 @@ Contains:
w_class = WEIGHT_CLASS_NORMAL
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/melee/transforming/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
slowdown = 0
- armor = list(MELEE = 30, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75, STAMINA = 20, BLEED = 20)
+ armor = list(MELEE = 30, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, FIRE = 60, ACID = 75, STAMINA = 20, BLEED = 20)
strip_delay = 40
equip_delay_other = 20
@@ -147,7 +147,7 @@ Contains:
desc = "The integrated helmet of an ERT hardsuit, this one has blue highlights."
icon_state = "hardsuit0-ert_commander"
item_state = "hardsuit0-ert_commander"
- armor = list(MELEE = 65, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 80, STAMINA = 70, BLEED = 70)
+ armor = list(MELEE = 65, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, FIRE = 80, ACID = 80, STAMINA = 70, BLEED = 70)
strip_delay = 130
light_range = 7
resistance_flags = FIRE_PROOF
@@ -185,7 +185,7 @@ Contains:
item_state = "ert_command"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert
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)
- armor = list(MELEE = 65, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 80, STAMINA = 70, BLEED = 70)
+ armor = list(MELEE = 65, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, FIRE = 80, ACID = 80, STAMINA = 70, BLEED = 70)
slowdown = 0
strip_delay = 130
resistance_flags = FIRE_PROOF
@@ -284,7 +284,7 @@ Contains:
icon_state = "space"
item_state = "eva_suit"
desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies."
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 20, FIRE = 50, ACID = 65, STAMINA = 0, BLEED = 0, BLEED = 30)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 50, ACID = 65, STAMINA = 0, BLEED = 0, BLEED = 30)
/obj/item/clothing/head/helmet/space/eva
name = "EVA helmet"
@@ -292,7 +292,7 @@ Contains:
item_state = "eva_helmet"
desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies."
flash_protect = 0
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 20, FIRE = 50, ACID = 65, STAMINA = 0, BLEED = 0, BLEED = 30)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 50, ACID = 65, STAMINA = 0, BLEED = 0, BLEED = 30)
/obj/item/clothing/head/helmet/space/freedom
name = "eagle helmet"
@@ -301,7 +301,7 @@ Contains:
worn_icon = 'icons/mob/clothing/head/costume.dmi'
icon_state = "griffinhat"
item_state = null
- armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 25, BOMB = 100, BIO = 100, RAD = 100, FIRE = 80, ACID = 80, STAMINA = 10, BLEED = 30)
+ armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 25, BOMB = 100, BIO = 100, FIRE = 80, ACID = 80, STAMINA = 10, BLEED = 30)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF | FIRE_PROOF
@@ -312,7 +312,7 @@ Contains:
icon_state = "freedom"
item_state = "freedom"
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)
- armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 25, BOMB = 100, BIO = 100, RAD = 100, FIRE = 80, ACID = 80, STAMINA = 10, BLEED = 30)
+ armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 25, BOMB = 100, BIO = 100, FIRE = 80, ACID = 80, STAMINA = 10, BLEED = 30)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF | FIRE_PROOF
@@ -393,7 +393,7 @@ Contains:
desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable."
icon_state = "syndicate-helm-orange"
item_state = "syndicate-helm-orange"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 5)
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 5)
strip_delay = 65
flash_protect = 0
@@ -404,7 +404,7 @@ Contains:
icon_state = "syndicate-orange"
item_state = "syndicate-orange"
slowdown = 2
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 5)
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 5)
strip_delay = 65
w_class = WEIGHT_CLASS_NORMAL
@@ -424,7 +424,7 @@ Contains:
icon_state = "hunter"
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/knife/combat)
- armor = list(melee = 60, bullet = 40, laser = 40, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100, stamina = 70, BLEED = 70)
+ armor = list(melee = 60, bullet = 40, laser = 40, energy = 50, bomb = 100, bio = 100, fire = 100, acid = 100, stamina = 70, BLEED = 70)
strip_delay = 130
resistance_flags = FIRE_PROOF | ACID_PROOF
cell = /obj/item/stock_parts/cell/hyper
@@ -438,7 +438,7 @@ Contains:
max_integrity = 200
desc = "An airtight helmet meant to protect the wearer during emergency situations."
permeability_coefficient = 0.01
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 20, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 20, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
min_cold_protection_temperature = EMERGENCY_HELM_MIN_TEMP_PROTECT
heat_protection = NONE
flash_protect = 0
@@ -467,7 +467,7 @@ Contains:
species_restricted = null
gas_transfer_coefficient = 0.5
permeability_coefficient = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals)
min_cold_protection_temperature = EMERGENCY_SUIT_MIN_TEMP_PROTECT
heat_protection = NONE
@@ -483,4 +483,4 @@ Contains:
icon_state = "hunter"
item_state = "hunter"
resistance_flags = FIRE_PROOF | ACID_PROOF
- armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 20, BLEED = 40)
+ armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 20, BLEED = 40)
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index a5b0dd6acb854..3b94ff02de6e0 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -5,7 +5,7 @@
name = "EVA plasma envirosuit"
desc = "A special plasma containment suit designed to be space-worthy, as well as worn over other clothing. Like its smaller counterpart, it can automatically extinguish the wearer in a crisis, and holds twice as many charges."
allowed = list(/obj/item/gun, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword, /obj/item/restraints/handcuffs, /obj/item/tank)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 0, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
resistance_flags = FIRE_PROOF
icon_state = "plasmaman_suit"
item_state = "plasmaman_suit"
@@ -51,7 +51,7 @@
strip_delay = 80
flash_protect = 2
tint = 2
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 0, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
resistance_flags = FIRE_PROOF
light_system = MOVABLE_LIGHT_DIRECTIONAL
light_range = 4
@@ -244,7 +244,7 @@
name = "security envirosuit helmet"
desc = "A plasmaman containment helmet designed for security officers, protecting them from burning alive, along-side other undesirables."
greyscale_colors = "#9F2A2E#2D2D2D#7D282D"
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 0, FIRE = 100, ACID = 75, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 10, BLEED = 10)
/obj/item/clothing/head/helmet/space/plasmaman/security/warden
name = "warden's envirosuit helmet"
@@ -295,7 +295,7 @@
name = "engineering envirosuit helmet"
desc = "A space-worthy helmet specially designed for engineer plasmamen, the usual purple stripes being replaced by engineering's orange."
greyscale_colors = "#F0DE00#D75600#F0DE00"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 10, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
/obj/item/clothing/head/helmet/space/plasmaman/engineering/atmospherics
@@ -461,7 +461,7 @@
name = "security Mk.II envirosuit helmet"
desc = "A stylish new iteration upon the original plasmaman containment helmet design for security officers, retaining all the old protections for a new era of fragile law enforcement."
greyscale_colors = "#9F2A2E#2D2D2D"
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 0, FIRE = 100, ACID = 75, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 10, BLEED = 10)
/obj/item/clothing/head/helmet/space/plasmaman/mark2/security/warden
name = "warden's Mk.II envirosuit helmet"
@@ -512,7 +512,7 @@
name = "engineering Mk.II envirosuit helmet"
desc = "A new iteration upon the classic space-worthy design, painted in classic engineering pigments."
greyscale_colors = "#E8D700#D75600"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 10, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
/obj/item/clothing/head/helmet/space/plasmaman/mark2/engineering/atmospherics
@@ -713,7 +713,7 @@
name = "engineering protective envirosuit helmet"
desc = "A safer looking re-imagining of the classic space-worthy design, painted in classic engineering pigments."
greyscale_colors = "#E8D700#D75600"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 10, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75, STAMINA = 0, BLEED = 10)
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
/obj/item/clothing/head/helmet/space/plasmaman/protective/engineering/atmospherics
diff --git a/code/modules/clothing/spacesuits/swat.dm b/code/modules/clothing/spacesuits/swat.dm
index 0d9d3929d15eb..b862a7096dd65 100644
--- a/code/modules/clothing/spacesuits/swat.dm
+++ b/code/modules/clothing/spacesuits/swat.dm
@@ -12,7 +12,7 @@
/obj/item/tank/internals,
/obj/item/knife/combat
)
- armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 50, BIO = 90, RAD = 20, FIRE = 100, ACID = 100, STAMINA = 60)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 50, BIO = 90, FIRE = 100, ACID = 100, STAMINA = 60)
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/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm
index 8d6552506a5ca..aaac26f855f6f 100644
--- a/code/modules/clothing/spacesuits/syndi.dm
+++ b/code/modules/clothing/spacesuits/syndi.dm
@@ -4,7 +4,7 @@
icon_state = "syndicate"
item_state = "syndicate"
desc = "Has a tag on it: Totally not property of an enemy corporation, honest!"
- armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 80, ACID = 85, STAMINA = 50, BLEED = 40)
+ armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 40, BOMB = 30, BIO = 30, FIRE = 80, ACID = 85, STAMINA = 50, BLEED = 40)
/obj/item/clothing/suit/space/syndicate
name = "red space suit"
@@ -13,7 +13,7 @@
desc = "Has a tag on it: Totally not property of an enemy corporation, honest!"
w_class = WEIGHT_CLASS_NORMAL
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
- armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 80, ACID = 85, STAMINA = 50, BLEED = 40)
+ armor = list(MELEE = 40, BULLET = 50, LASER = 30, ENERGY = 40, BOMB = 30, BIO = 30, FIRE = 80, ACID = 85, STAMINA = 50, BLEED = 40)
cell = /obj/item/stock_parts/cell/hyper
//Green syndicate space suit
diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm
index a2411a769ca29..c70694d2540c7 100644
--- a/code/modules/clothing/suits/_suits.dm
+++ b/code/modules/clothing/suits/_suits.dm
@@ -10,7 +10,7 @@
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman
)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 5)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 5)
slot_flags = ITEM_SLOT_OCLOTHING
var/blood_overlay_type = "suit"
var/move_sound = null
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index c4738d10b14c4..df6099112840c 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -11,7 +11,7 @@
equip_delay_other = 40
max_integrity = 250
resistance_flags = NONE
- armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 50)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 50)
clothing_flags = THICKMATERIAL
slowdown = 0.08
@@ -46,7 +46,7 @@
icon_state = "blueshift"
item_state = null
custom_premium_price = 600
- armor = list(MELEE = 40, BULLET = 40, LASER = 40, ENERGY = 45, BOMB = 30, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 40)
+ armor = list(MELEE = 40, BULLET = 40, LASER = 40, ENERGY = 45, BOMB = 30, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 40)
slowdown = 0.14
/obj/item/clothing/suit/armor/vest/corporate
@@ -55,7 +55,7 @@
icon_state = "secjacket"
item_state = "secjacket"
body_parts_covered = CHEST|ARMS
- armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 35, BOMB = 20, BIO = 0, RAD = 0, FIRE = 45, ACID = 45, STAMINA = 30, BLEED = 20)
+ armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 35, BOMB = 20, BIO = 0, FIRE = 45, ACID = 45, STAMINA = 30, BLEED = 20)
slowdown = 0.02
/obj/item/clothing/suit/armor/hos
@@ -64,7 +64,7 @@
icon_state = "hos"
item_state = "greatcoat"
body_parts_covered = CHEST|GROIN|ARMS|LEGS
- armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, RAD = 0, FIRE = 70, ACID = 90, STAMINA = 40, BLEED = 40)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, FIRE = 70, ACID = 90, STAMINA = 40, BLEED = 40)
cold_protection = CHEST|GROIN|LEGS|ARMS
heat_protection = CHEST|GROIN|LEGS|ARMS
strip_delay = 80
@@ -115,7 +115,7 @@
icon_state = "capcarapace"
item_state = "armor"
body_parts_covered = CHEST|GROIN
- armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 60, BOMB = 25, BIO = 0, RAD = 0, FIRE = 100, ACID = 90, STAMINA = 40, BLEED = 60)
+ armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 60, BOMB = 25, BIO = 0, FIRE = 100, ACID = 90, STAMINA = 40, BLEED = 60)
dog_fashion = null
resistance_flags = FIRE_PROOF
@@ -137,7 +137,7 @@
icon_state = "capjacket"
item_state = null
body_parts_covered = CHEST|ARMS
- armor = list(MELEE = 40, BULLET = 30, LASER = 40, ENERGY = 50, BOMB = 55, BIO = 0, RAD = 0, FIRE = 90, ACID = 80, STAMINA = 40, BLEED = 30)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 40, ENERGY = 50, BOMB = 55, BIO = 0, FIRE = 90, ACID = 80, STAMINA = 40, BLEED = 30)
/obj/item/clothing/suit/armor/riot
name = "riot suit"
@@ -147,7 +147,7 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 50, BLEED = 70)
+ armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 15, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 50, BLEED = 70)
blocks_shove_knockdown = TRUE
strip_delay = 80
equip_delay_other = 60
@@ -160,7 +160,7 @@
icon_state = "bonearmor"
item_state = "bonearmor"
blood_overlay_type = "armor"
- armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 30, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 50)
+ armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 30, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 50)
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS
slowdown = 0.1
@@ -170,7 +170,7 @@
icon_state = "bulletproof"
item_state = "armor"
blood_overlay_type = "armor"
- armor = list(MELEE = 15, BULLET = 60, LASER = 10, ENERGY = 10, BOMB = 40, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 40, BLEED = 60)
+ armor = list(MELEE = 15, BULLET = 60, LASER = 10, ENERGY = 10, BOMB = 40, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 40, BLEED = 60)
strip_delay = 70
equip_delay_other = 50
@@ -180,7 +180,7 @@
icon_state = "armor_reflec"
item_state = "armor_reflec"
blood_overlay_type = "armor"
- armor = list(MELEE = 10, BULLET = 10, LASER = 60, ENERGY = 80, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 40, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 10, LASER = 60, ENERGY = 80, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 40, BLEED = 10)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
var/hit_reflect_chance = 40
@@ -212,7 +212,7 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 3
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
- armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 90, ACID = 90, STAMINA = 60, BLEED = 70)
+ armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, FIRE = 90, ACID = 90, STAMINA = 60, BLEED = 70)
move_sound = list('sound/effects/suitstep1.ogg', 'sound/effects/suitstep2.ogg')
slowdown = 0.3
@@ -221,7 +221,7 @@
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, FIRE = 90, ACID = 90, STAMINA = 0, BLEED = 0)
move_sound = list('sound/effects/suitstep1.ogg', 'sound/effects/suitstep2.ogg')
/obj/item/clothing/suit/armor/tdome/red
@@ -238,7 +238,7 @@
/obj/item/clothing/suit/armor/tdome/holosuit
name = "thunderdome suit"
- armor = list(MELEE = 10, BULLET = 10, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 10, BULLET = 10, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
cold_protection = null
heat_protection = null
@@ -281,14 +281,14 @@
equip_delay_other = 40
max_integrity = 200
resistance_flags = FLAMMABLE
- armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 40, BOMB = 15, BIO = 0, RAD = 0, FIRE = 40, ACID = 50, STAMINA = 30, BLEED = 60)
+ armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 40, BOMB = 15, BIO = 0, FIRE = 40, ACID = 50, STAMINA = 30, BLEED = 60)
/obj/item/clothing/suit/armor/vest/russian
name = "russian vest"
desc = "A bulletproof vest with forest camo. Good thing there's plenty of forests to hide in around here, right?"
icon_state = "rus_armor"
item_state = "rus_armor"
- armor = list(MELEE = 25, BULLET = 30, LASER = 0, ENERGY = 15, BOMB = 10, BIO = 0, RAD = 20, FIRE = 20, ACID = 50, STAMINA = 25, BLEED = 20)
+ armor = list(MELEE = 25, BULLET = 30, LASER = 0, ENERGY = 15, BOMB = 10, BIO = 0, FIRE = 20, ACID = 50, STAMINA = 25, BLEED = 20)
slowdown = 0.05
/obj/item/clothing/suit/armor/vest/russian_coat
@@ -299,7 +299,7 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
- armor = list(MELEE = 25, BULLET = 20, LASER = 20, ENERGY = 30, BOMB = 20, BIO = 50, RAD = 20, FIRE = -10, ACID = 50, STAMINA = 30, BLEED = 20)
+ armor = list(MELEE = 25, BULLET = 20, LASER = 20, ENERGY = 30, BOMB = 20, BIO = 50, FIRE = -10, ACID = 50, STAMINA = 30, BLEED = 20)
/obj/item/clothing/suit/armor/centcom_formal
name = "\improper CentCom formal coat"
@@ -307,7 +307,7 @@
icon_state = "centcom_formal"
item_state = "centcom"
body_parts_covered = CHEST|GROIN|ARMS
- armor = list(MELEE = 35, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 10, RAD = 10, FIRE = 10, ACID = 60, STAMINA = 40, BLEED = 20)
+ armor = list(MELEE = 35, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 10, FIRE = 10, ACID = 60, STAMINA = 40, BLEED = 20)
/obj/item/clothing/suit/armor/centcom_formal/Initialize(mapload)
. = ..()
diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm
index 3c54e15f9bdeb..683c6968a5c8b 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -8,7 +8,7 @@
item_state = "bio_hood"
permeability_coefficient = 0.01
clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | SNUG_FIT
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 80, FIRE = 30, ACID = 100, STAMINA = 0, BLEED = 5)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 30, ACID = 100, STAMINA = 0, BLEED = 5)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE|HIDESNOUT
resistance_flags = ACID_PROOF
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
@@ -27,7 +27,7 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 1
allowed = list(/obj/item/tank/internals, /obj/item/pen, /obj/item/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 80, FIRE = 30, ACID = 100, STAMINA = 0, BLEED = 5)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 30, ACID = 100, STAMINA = 0, BLEED = 5)
flags_inv = HIDEGLOVES|HIDEJUMPSUIT
strip_delay = 70
equip_delay_other = 70
@@ -53,11 +53,11 @@
//Security biosuit, grey with red stripe across the chest
/obj/item/clothing/head/bio_hood/security
- armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 100, RAD = 80, FIRE = 30, ACID = 100, STAMINA = 20, BLEED = 10)
+ armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 100, FIRE = 30, ACID = 100, STAMINA = 20, BLEED = 10)
icon_state = "bio_security"
/obj/item/clothing/suit/bio_suit/security
- armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 100, RAD = 80, FIRE = 30, ACID = 100, STAMINA = 20, BLEED = 10)
+ armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 100, FIRE = 30, ACID = 100, STAMINA = 20, BLEED = 10)
icon_state = "bio_security"
diff --git a/code/modules/clothing/suits/chaplainsuits.dm b/code/modules/clothing/suits/chaplainsuits.dm
index 5ba05f80d4d4f..f65cf14cc116f 100644
--- a/code/modules/clothing/suits/chaplainsuits.dm
+++ b/code/modules/clothing/suits/chaplainsuits.dm
@@ -9,7 +9,7 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 35)
+ armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 35)
strip_delay = 80
equip_delay_other = 60
@@ -115,7 +115,7 @@
worn_icon = 'icons/mob/clothing/head/chaplain.dmi'
icon_state = "knight_templar"
item_state = null
- armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 40)
+ armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 40)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
strip_delay = 80
@@ -138,7 +138,7 @@
icon_state = "crusader"
w_class = WEIGHT_CLASS_NORMAL
flags_inv = HIDEHAIR|HIDEEARS|HIDEFACE
- armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 40, BOMB = 60, BIO = 0, RAD = 0, FIRE = 60, ACID = 60, STAMINA = 50, BLEED = 60)
+ armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 40, BOMB = 60, BIO = 0, FIRE = 60, ACID = 60, STAMINA = 50, BLEED = 60)
/obj/item/clothing/head/helmet/plate/crusader/blue
icon_state = "crusader-blue"
@@ -156,7 +156,7 @@
worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi'
item_state = null
flags_1 = 0
- armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 50, BOMB = 70, BIO = 50, RAD = 50, FIRE = 60, ACID = 60, STAMINA = 60, BLEED = 60) //religion protects you from disease and radiation, honk.
+ armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 50, BOMB = 70, BIO = 50, FIRE = 60, ACID = 60, STAMINA = 60, BLEED = 60) //religion protects you from disease and radiation, honk.
worn_x_dimension = 64
worn_y_dimension = 64
@@ -220,7 +220,7 @@
w_class = WEIGHT_CLASS_BULKY
slowdown = 2.0 //gotta pretend we're balanced.
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 40, BOMB = 60, BIO = 0, RAD = 0, FIRE = 60, ACID = 60, STAMINA = 50)
+ armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 40, BOMB = 60, BIO = 0, FIRE = 60, ACID = 60, STAMINA = 50)
/obj/item/clothing/suit/chaplainsuit/armor/crusader/red
icon_state = "crusader-red"
@@ -288,7 +288,7 @@
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 20, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 30, ACID = 20, STAMINA = 0)
/obj/item/clothing/under/rank/civilian/graverobber_under
name = "grave robber uniform"
diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm
index 2e2214d96b77f..f04d3073a3693 100644
--- a/code/modules/clothing/suits/cloaks.dm
+++ b/code/modules/clothing/suits/cloaks.dm
@@ -63,7 +63,7 @@
icon_state = "goliath_cloak"
desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits."
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/spear/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/knife/combat/bone, /obj/item/knife/combat/survival)
- armor = list(MELEE = 50, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 60, ACID = 60, STAMINA = 30, BLEED = 20) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot
+ armor = list(MELEE = 50, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 60, ACID = 60, STAMINA = 30, BLEED = 20) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot
hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath
body_parts_covered = CHEST|GROIN|ARMS
resistance_flags = FIRE_PROOF
@@ -72,7 +72,7 @@
name = "goliath cloak hood"
icon_state = "golhood"
desc = "A protective & concealing hood."
- armor = list(MELEE = 50, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 60, ACID = 60, STAMINA = 30, BLEED = 30)
+ armor = list(MELEE = 50, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 60, ACID = 60, STAMINA = 30, BLEED = 30)
flags_inv = HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
transparent_protection = HIDEMASK
resistance_flags = FIRE_PROOF
@@ -82,7 +82,7 @@
icon_state = "dragon"
desc = "A suit of armour fashioned from the remains of an ash drake."
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear)
- armor = list(MELEE = 70, BULLET = 30, LASER = 50, ENERGY = 40, BOMB = 70, BIO = 60, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 30, BLEED = 50)
+ armor = list(MELEE = 70, BULLET = 30, LASER = 50, ENERGY = 40, BOMB = 70, BIO = 60, FIRE = 100, ACID = 100, STAMINA = 30, BLEED = 50)
hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -95,7 +95,7 @@
name = "drake helm"
icon_state = "dragon"
desc = "The skull of a dragon."
- armor = list(MELEE = 70, BULLET = 30, LASER = 50, ENERGY = 40, BOMB = 70, BIO = 60, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 30, BLEED = 50)
+ armor = list(MELEE = 70, BULLET = 30, LASER = 50, ENERGY = 40, BOMB = 70, BIO = 60, FIRE = 100, ACID = 100, STAMINA = 30, BLEED = 50)
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -105,7 +105,7 @@
name = "Heavy bone armor"
icon_state = "hbonearmor"
desc = "A tribal armor plate, crafted from animal bone. A heavier variation of standard bone armor."
- armor = list(MELEE = 40, BULLET = 25, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 70)
+ armor = list(MELEE = 40, BULLET = 25, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 70)
hoodtype = /obj/item/clothing/head/hooded/cloakhood/bone
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS
@@ -117,7 +117,7 @@
name = "bone helmet"
icon_state = "hskull"
desc = "An intimidating tribal helmet, it doesn't look very comfortable."
- armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 50)
+ armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 50)
heat_protection = HEAD
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
resistance_flags = NONE
diff --git a/code/modules/clothing/suits/costume.dm b/code/modules/clothing/suits/costume.dm
index 3df266b753631..56088e71c637e 100644
--- a/code/modules/clothing/suits/costume.dm
+++ b/code/modules/clothing/suits/costume.dm
@@ -216,7 +216,7 @@
desc = "You broke the rules of the duel, and drew your gun before High Noon. This poncho will rest on your shoulders eternally, just like your shame."
icon_state = "ponchoshame_alt"
item_state = "ponchoshame_alt"
- armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 20, BOMB = 30, BIO = 30, RAD = 20, FIRE = 0, ACID = 30, STAMINA = 35)
+ armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 20, BOMB = 30, BIO = 30, FIRE = 0, ACID = 30, STAMINA = 35)
body_parts_covered = CHEST|GROIN
allowed = list(/obj/item/gun/ballistic/shotgun/lever_action, /obj/item/gun/ballistic/rifle/leveraction, /obj/item/gun/ballistic/revolver)
@@ -249,7 +249,7 @@
icon_state = "carp_suit"
item_state = "space_suit_syndicate"
slowdown = 0 //Space carp magic, never stop believing
- armor = list(MELEE = 20, BULLET = 10, LASER = 20, ENERGY = 20, BOMB = 30, BIO = 100, RAD = 75, FIRE = 60, ACID = 75, STAMINA = 40)
+ armor = list(MELEE = 20, BULLET = 10, LASER = 20, ENERGY = 20, BOMB = 30, BIO = 100, FIRE = 60, ACID = 75, STAMINA = 40)
allowed = list(
/obj/item/tank/internals,
/obj/item/pneumatic_cannon/speargun,
@@ -349,7 +349,7 @@
desc = "A big and clanky suit made of bronze that offers no protection and looks very unfashionable. Nice."
icon = 'icons/obj/clothing/clockwork_garb.dmi'
icon_state = "clockwork_cuirass_old"
- armor = list(MELEE = 5, BULLET = 0, LASER = -5, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 20, ACID = 20, STAMINA = 30)
+ armor = list(MELEE = 5, BULLET = 0, LASER = -5, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 20, ACID = 20, STAMINA = 30)
/obj/item/clothing/suit/costume/joker
name = "comedian coat"
diff --git a/code/modules/clothing/suits/donator.dm b/code/modules/clothing/suits/donator.dm
index 1a92a549c9b60..58fe19658f4f3 100644
--- a/code/modules/clothing/suits/donator.dm
+++ b/code/modules/clothing/suits/donator.dm
@@ -37,6 +37,6 @@
icon_state = "softshell"
item_state = "softshell"
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/radio)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 30, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 30, FIRE = 0, ACID = 0, STAMINA = 0)
toggle_noun = "zipper"
body_parts_covered = CHEST|GROIN|ARMS
diff --git a/code/modules/clothing/suits/hoodies.dm b/code/modules/clothing/suits/hoodies.dm
index d321b2295d91d..f7c6661afaa20 100644
--- a/code/modules/clothing/suits/hoodies.dm
+++ b/code/modules/clothing/suits/hoodies.dm
@@ -8,7 +8,7 @@
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
hoodtype = /obj/item/clothing/head/hooded/hoodie
diff --git a/code/modules/clothing/suits/jacket.dm b/code/modules/clothing/suits/jacket.dm
index 63709a5f038af..5013a271e2d32 100644
--- a/code/modules/clothing/suits/jacket.dm
+++ b/code/modules/clothing/suits/jacket.dm
@@ -41,7 +41,7 @@
desc = "A thick jacket with a rubbery, water-resistant shell."
icon_state = "pufferjacket"
item_state = "hostrench"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, FIRE = 0, ACID = 0, STAMINA = 0)
/obj/item/clothing/suit/jacket/puffer/vest
name = "puffer vest"
@@ -50,7 +50,7 @@
item_state = "armor"
body_parts_covered = CHEST|GROIN
cold_protection = CHEST|GROIN
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 30, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 30, FIRE = 0, ACID = 0, STAMINA = 0)
/obj/item/clothing/suit/jacket/miljacket
name = "military jacket"
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 26a9f314d52eb..ebb1eb1687d6a 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -75,7 +75,7 @@
item_state = "det_suit"
blood_overlay_type = "coat"
body_parts_covered = CHEST|GROIN|ARMS
- armor = list(MELEE = 25, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 45, STAMINA = 40, BLEED = 30)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 0, ACID = 45, STAMINA = 40, BLEED = 30)
cold_protection = CHEST|GROIN|ARMS
heat_protection = CHEST|GROIN|ARMS
supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON
@@ -106,7 +106,7 @@
icon_state = "brig_phys_vest"
item_state = "sec_helm"//looks kinda similar, I guess
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/storage/firstaid, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/police/telescopic, /obj/item/soap, /obj/item/sensor_device, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 20)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 50, ACID = 50, STAMINA = 30, BLEED = 20)
//Engineering
/obj/item/clothing/suit/hazardvest
@@ -228,7 +228,7 @@
/obj/item/tank/internals,
/obj/item/melee/curator_whip
)
- armor = list(MELEE = 25, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 45, STAMINA = 30, BLEED = 10)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 0, ACID = 45, STAMINA = 30, BLEED = 10)
cold_protection = CHEST|ARMS
heat_protection = CHEST|ARMS
diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm
index 38daa6ea23bad..f55080bacba36 100644
--- a/code/modules/clothing/suits/labcoat.dm
+++ b/code/modules/clothing/suits/labcoat.dm
@@ -28,7 +28,7 @@
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman
)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 5)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 5)
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/toggle/labcoat/cmo
@@ -47,7 +47,7 @@
name = "security medic's labcoat"
icon_state = "labcoat_sec"
item_state = "labcoat_sec"
- armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0, fire = 50, acid = 50, stamina = 30, BLEED = 10)
+ armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, fire = 50, acid = 50, stamina = 30, BLEED = 10)
/obj/item/clothing/suit/toggle/labcoat/mad
name = "\proper The Mad's labcoat"
diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm
index bfacbf6ee3390..993f0b7e2234a 100644
--- a/code/modules/clothing/suits/reactive_armour.dm
+++ b/code/modules/clothing/suits/reactive_armour.dm
@@ -33,7 +33,7 @@
icon_state = "reactiveoff"
item_state = "reactiveoff"
blood_overlay_type = "armor"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 10)
actions_types = list(/datum/action/item_action/toggle)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
hit_reaction_chance = 50
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index f89989b87caa1..3d4a536936264 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -32,7 +32,7 @@
/obj/item/powertool/jaws_of_life
)
slowdown = 1
- armor = list(MELEE = 15, BULLET = 5, LASER = 20, ENERGY = 10, BOMB = 20, BIO = 10, RAD = 20, FIRE = 100, ACID = 50, STAMINA = 10, BLEED = 25)
+ armor = list(MELEE = 15, BULLET = 5, LASER = 20, ENERGY = 10, BOMB = 20, BIO = 10, FIRE = 100, ACID = 50, STAMINA = 10, BLEED = 25)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -70,7 +70,7 @@
desc = "Use in case of bomb."
icon_state = "bombsuit"
clothing_flags = THICKMATERIAL | SNUG_FIT
- armor = list(MELEE = 20, BULLET = 0, LASER = 20, ENERGY = 10, BOMB = 100, BIO = 0, RAD = 0, FIRE = 80, ACID = 50, STAMINA = 10, BLEED = 25)
+ armor = list(MELEE = 20, BULLET = 0, LASER = 20, ENERGY = 10, BOMB = 100, BIO = 0, FIRE = 80, ACID = 50, STAMINA = 10, BLEED = 25)
flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
dynamic_hair_suffix = ""
dynamic_fhair_suffix = ""
@@ -95,7 +95,7 @@
clothing_flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 2
- armor = list(MELEE = 20, BULLET = 0, LASER = 20, ENERGY = 10, BOMB = 100, BIO = 0, RAD = 0, FIRE = 80, ACID = 50, STAMINA = 10, BLEED = 25)
+ armor = list(MELEE = 20, BULLET = 0, LASER = 20, ENERGY = 10, BOMB = 100, BIO = 0, FIRE = 80, ACID = 50, STAMINA = 10, BLEED = 25)
flags_inv = HIDEJUMPSUIT
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
@@ -133,7 +133,7 @@
desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'"
clothing_flags = THICKMATERIAL | SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 60, RAD = 100, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 15)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 60, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 15)
strip_delay = 60
equip_delay_other = 60
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
@@ -151,7 +151,7 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/geiger_counter)
slowdown = 1.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 60, RAD = 100, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 15)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 60, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 15)
strip_delay = 60
equip_delay_other = 60
flags_inv = HIDEJUMPSUIT
diff --git a/code/modules/clothing/suits/wetfloor.dm b/code/modules/clothing/suits/wetfloor.dm
index 3e06527657ac5..5164f9364fadf 100644
--- a/code/modules/clothing/suits/wetfloor.dm
+++ b/code/modules/clothing/suits/wetfloor.dm
@@ -14,5 +14,5 @@
body_parts_covered = CHEST|GROIN
attack_verb_continuous = list("warns", "cautions", "smashes")
attack_verb_simple = list("warn", "caution", "smash")
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0)
pocket_storage_component_path = null
diff --git a/code/modules/clothing/suits/wintercoats.dm b/code/modules/clothing/suits/wintercoats.dm
index c357091cca300..930806ed1b11d 100644
--- a/code/modules/clothing/suits/wintercoats.dm
+++ b/code/modules/clothing/suits/wintercoats.dm
@@ -10,7 +10,7 @@
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0)
allowed = list(
/obj/item/flashlight,
/obj/item/tank/internals/emergency_oxygen,
@@ -44,7 +44,7 @@
name = "captain's winter coat"
icon_state = "coatcaptain"
item_state = "coatcaptain"
- armor = list(MELEE = 25, BULLET = 30, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 20)
+ armor = list(MELEE = 25, BULLET = 30, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 0, ACID = 50, STAMINA = 20)
hoodtype = /obj/item/clothing/head/hooded/winterhood/captain
/obj/item/clothing/suit/hooded/wintercoat/captain/Initialize(mapload)
@@ -60,7 +60,7 @@
icon_state = "coatsecurity"
item_state = "coatsecurity"
hoodtype = /obj/item/clothing/head/hooded/winterhood/security
- armor = list(MELEE = 15, BULLET = 15, LASER = 40, ENERGY = 50, BOMB = 25, BIO = 0, RAD = 0, FIRE = 60, ACID = 45, STAMINA = 40)
+ armor = list(MELEE = 15, BULLET = 15, LASER = 40, ENERGY = 50, BOMB = 25, BIO = 0, FIRE = 60, ACID = 45, STAMINA = 40)
slowdown = 0.04
/obj/item/clothing/suit/hooded/wintercoat/security/Initialize(mapload)
@@ -68,7 +68,7 @@
allowed = GLOB.security_wintercoat_allowed
/obj/item/clothing/head/hooded/winterhood/security
- armor = list(MELEE = 15, BULLET = 15, LASER = 40, ENERGY = 50, BOMB = 25, BIO = 0, RAD = 0, FIRE = 60, ACID = 45, STAMINA = 40)
+ armor = list(MELEE = 15, BULLET = 15, LASER = 40, ENERGY = 50, BOMB = 25, BIO = 0, FIRE = 60, ACID = 45, STAMINA = 40)
icon_state = "winterhood_security"
/obj/item/clothing/suit/hooded/wintercoat/detective
@@ -91,13 +91,13 @@
/obj/item/storage/fancy/cigarettes,
/obj/item/lighter
)
- armor = list(MELEE = 25, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 45, STAMINA = 40)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 25, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 0, ACID = 45, STAMINA = 40)
heat_protection = CHEST|GROIN|ARMS
hoodtype = /obj/item/clothing/head/hooded/winterhood/detective
/obj/item/clothing/head/hooded/winterhood/detective
icon_state = "winterhood_detective"
- armor = list(MELEE = 25, BULLET = 10, LASER = 25, ENERGY = 20, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 45, STAMINA = 30)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 25, ENERGY = 20, BOMB = 0, BIO = 0, FIRE = 0, ACID = 45, STAMINA = 30)
/obj/item/clothing/suit/hooded/wintercoat/brigphys
name = "brig physician winter coat"
@@ -127,12 +127,12 @@
/obj/item/storage/fancy/cigarettes,
/obj/item/lighter
)
- armor = list(MELEE = 10, BULLET = 0, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 20, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 20)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 20, FIRE = 50, ACID = 50, STAMINA = 20)
hoodtype = /obj/item/clothing/head/hooded/winterhood/brigphys
/obj/item/clothing/head/hooded/winterhood/brigphys
icon_state = "winterhood_brigphys"
- armor = list(MELEE = 10, BULLET = 0, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 20, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 20)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 20, FIRE = 50, ACID = 50, STAMINA = 20)
/obj/item/clothing/suit/hooded/wintercoat/medical
name = "medical winter coat"
@@ -163,7 +163,7 @@
/obj/item/storage/fancy/cigarettes,
/obj/item/lighter
)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, RAD = 0, FIRE = 0, ACID = 45, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, FIRE = 0, ACID = 45, STAMINA = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/medical
/obj/item/clothing/head/hooded/winterhood/medical
@@ -198,12 +198,12 @@
/obj/item/storage/fancy/cigarettes,
/obj/item/lighter
)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 80, RAD = 0, FIRE = 0, ACID = 15, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 80, FIRE = 0, ACID = 15, STAMINA = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/virologist
/obj/item/clothing/head/hooded/winterhood/virologist
icon_state = "winterhood_viro"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, FIRE = 0, ACID = 0, STAMINA = 0)
/obj/item/clothing/suit/hooded/wintercoat/chemist
name = "chemist winter coat"
@@ -235,7 +235,7 @@
/obj/item/storage/fancy/cigarettes,
/obj/item/lighter
)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 15, BIO = 0, RAD = 0, FIRE = 40, ACID = 40, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 15, BIO = 0, FIRE = 40, ACID = 40, STAMINA = 0)
resistance_flags = FIRE_PROOF | ACID_PROOF
hoodtype = /obj/item/clothing/head/hooded/winterhood/chemist
@@ -276,7 +276,7 @@
/obj/item/storage/fancy/cigarettes,
/obj/item/lighter
)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 20, RAD = 30, FIRE = 0, ACID = 45, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 20, FIRE = 0, ACID = 45, STAMINA = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/geneticist
/obj/item/clothing/head/hooded/winterhood/geneticist
@@ -287,7 +287,7 @@
icon_state = "coatscience"
item_state = "coatscience"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/police/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/science
/obj/item/clothing/head/hooded/winterhood/science
@@ -297,7 +297,7 @@
name = "engineering winter coat"
icon_state = "coatengineer"
item_state = "coatengineer"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 20, FIRE = 30, ACID = 45, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 30, ACID = 45, STAMINA = 0)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering
@@ -373,7 +373,7 @@
)
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
heat_protection = CHEST|GROIN|ARMS
- armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 10, RAD = 20, FIRE = 50, ACID = 50, STAMINA = 20)
+ armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 10, FIRE = 50, ACID = 50, STAMINA = 20)
resistance_flags = FIRE_PROOF
high_pressure_multiplier = 0.4
hoodtype = /obj/item/clothing/head/hooded/winterhood/miner
@@ -386,7 +386,7 @@
desc = "A hood attached to a heavy winter jacket. It is quite armoured and well suited to explore harsh environments."
icon_state = "winterhood_miner"
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
- armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 10, RAD = 20, FIRE = 50, ACID = 50, STAMINA = 20)
+ armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 10, FIRE = 50, ACID = 50, STAMINA = 20)
resistance_flags = FIRE_PROOF
high_pressure_multiplier = 0.4
@@ -474,7 +474,7 @@
desc = "A luxurious winter coat woven in the bright green and gold colours of Central Command. It has a small pin in the shape of the Nanotrasen logo for a zipper."
icon_state = "coatcentcom"
item_state = "coatcentcom"
- armor = list(MELEE = 35, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 10, RAD = 10, FIRE = 10, ACID = 60)
+ armor = list(MELEE = 35, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 10, FIRE = 10, ACID = 60)
hoodtype = /obj/item/clothing/head/hooded/winterhood/centcom
/obj/item/clothing/suit/hooded/wintercoat/centcom/Initialize(mapload)
@@ -483,4 +483,4 @@
/obj/item/clothing/head/hooded/winterhood/centcom
icon_state = "hood_centcom"
- armor = list(MELEE = 35, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 10, RAD = 10, FIRE = 10, ACID = 60)
+ armor = list(MELEE = 35, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 10, FIRE = 10, ACID = 60)
diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm
index fb3781dbb0315..a35bab70a0b00 100644
--- a/code/modules/clothing/suits/wiz_robe.dm
+++ b/code/modules/clothing/suits/wiz_robe.dm
@@ -7,7 +7,7 @@
item_state = "wizhat"
gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE
permeability_coefficient = 0.01
- armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, RAD = 20, FIRE = 100, ACID = 100, STAMINA = 50, BLEED = 60)
+ armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, FIRE = 100, ACID = 100, STAMINA = 50, BLEED = 60)
strip_delay = 50
equip_delay_other = 50
clothing_flags = SNUG_FIT | THICKMATERIAL
@@ -38,7 +38,7 @@
icon_state = "wizard-fake"
gas_transfer_coefficient = 1
permeability_coefficient = 1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 0)
resistance_flags = FLAMMABLE
dog_fashion = /datum/dog_fashion/head/blue_wizard
clothing_flags = NONE
@@ -74,7 +74,7 @@
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
body_parts_covered = CHEST|GROIN|ARMS|LEGS
- armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, RAD = 20, FIRE = 100, ACID = 100, STAMINA = 50, BLEED = 60)
+ armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, FIRE = 100, ACID = 100, STAMINA = 50, BLEED = 60)
allowed = list(/obj/item/teleportation_scroll)
flags_inv = HIDEJUMPSUIT
strip_delay = 50
@@ -143,7 +143,7 @@
item_state = "wizrobe"
gas_transfer_coefficient = 1
permeability_coefficient = 1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 0)
resistance_flags = FLAMMABLE
clothing_flags = NONE
@@ -153,7 +153,7 @@
icon_state = "marisa"
gas_transfer_coefficient = 1
permeability_coefficient = 1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 0)
resistance_flags = FLAMMABLE
clothing_flags = NONE
@@ -164,7 +164,7 @@
item_state = "marisarobe"
gas_transfer_coefficient = 1
permeability_coefficient = 1
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0, BLEED = 0)
resistance_flags = FLAMMABLE
clothing_flags = NONE
@@ -213,7 +213,7 @@
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard
- armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, RAD = 20, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 70)
slowdown = 0
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -227,7 +227,7 @@
item_state = "battlemage"
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
- armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, RAD = 20, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 70)
+ armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, FIRE = 100, ACID = 100, STAMINA = 70, BLEED = 70)
actions_types = null //No inbuilt light
resistance_flags = FIRE_PROOF | ACID_PROOF
diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm
index fbbe7af58d8dd..f1703c9fa8cab 100644
--- a/code/modules/clothing/under/_under.dm
+++ b/code/modules/clothing/under/_under.dm
@@ -5,7 +5,7 @@
body_parts_covered = CHEST|GROIN|LEGS|ARMS
permeability_coefficient = 0.9
slot_flags = ITEM_SLOT_ICLOTHING
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
drop_sound = 'sound/items/handling/cloth_drop.ogg'
pickup_sound = 'sound/items/handling/cloth_pickup.ogg'
var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women
diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm
index e980c273da0fa..aad3698fc6393 100755
--- a/code/modules/clothing/under/accessories.dm
+++ b/code/modules/clothing/under/accessories.dm
@@ -228,7 +228,7 @@
desc = "An eccentric medal made of plasma."
icon_state = "plasma"
medaltype = "medal-plasma"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = -10, ACID = 0, STAMINA = 0, BLEED = 0) //It's made of plasma. Of course it's flammable.
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = -10, ACID = 0, STAMINA = 0, BLEED = 0) //It's made of plasma. Of course it's flammable.
custom_materials = list(/datum/material/plasma=1000)
/obj/item/clothing/accessory/medal/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
@@ -361,7 +361,7 @@
name = "bone talisman"
desc = "A hunter's talisman, some say the old gods smile on those who wear it."
icon_state = "talisman"
- armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 20, BIO = 20, RAD = 5, FIRE = 0, ACID = 25, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 20, BIO = 20, FIRE = 0, ACID = 25, STAMINA = 10, BLEED = 10)
attachment_slot = null
/obj/item/clothing/accessory/skullcodpiece
@@ -369,7 +369,7 @@
desc = "A skull shaped ornament, intended to protect the important things in life."
icon_state = "skull"
above_suit = TRUE
- armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 20, BIO = 20, RAD = 5, FIRE = 0, ACID = 25, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 20, BIO = 20, FIRE = 0, ACID = 25, STAMINA = 10, BLEED = 10)
attachment_slot = GROIN
/obj/item/clothing/accessory/holster
diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm
index 0713eb1acd085..6763d1114b416 100644
--- a/code/modules/clothing/under/costume.dm
+++ b/code/modules/clothing/under/costume.dm
@@ -292,7 +292,7 @@
item_state = null
worn_icon = 'icons/mob/clothing/under/security.dmi'
alt_covers_chest = TRUE
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 15)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 15)
strip_delay = 50
alt_covers_chest = TRUE
sensor_mode = SENSOR_COORDS
diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
index b6153579c1075..5fc56ea3c4799 100644
--- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
+++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
@@ -5,7 +5,7 @@
item_state = "plasmaman"
icon = 'icons/obj/clothing/under/plasmaman.dmi'
worn_icon = 'icons/mob/clothing/under/plasmaman.dmi'
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 0, FIRE = 95, ACID = 95, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95, STAMINA = 0)
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
can_adjust = FALSE
strip_delay = 80
diff --git a/code/modules/clothing/under/jobs/Plasmaman/engineering.dm b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm
index e50357a9e4749..b6fd3c1866096 100644
--- a/code/modules/clothing/under/jobs/Plasmaman/engineering.dm
+++ b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm
@@ -3,7 +3,7 @@
desc = "An air-tight suit designed to be used by plasmamen exployed as engineers, the usual purple stripes being replaced by engineer's orange. It protects the user from fire and acid damage."
icon_state = "engineer_envirosuit"
item_state = "engineer_envirosuit"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 10, FIRE = 95, ACID = 95, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95, STAMINA = 0, BLEED = 10)
/obj/item/clothing/under/plasmaman/engineering/atmospherics
name = "atmospherics plasma envirosuit"
diff --git a/code/modules/clothing/under/jobs/Plasmaman/security.dm b/code/modules/clothing/under/jobs/Plasmaman/security.dm
index 26282303438f1..ebb420a4b1cc0 100644
--- a/code/modules/clothing/under/jobs/Plasmaman/security.dm
+++ b/code/modules/clothing/under/jobs/Plasmaman/security.dm
@@ -3,7 +3,7 @@
desc = "A plasmaman containment suit designed for security officers, offering a limited amount of extra protection."
icon_state = "security_envirosuit"
item_state = "security_envirosuit"
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 0, FIRE = 95, ACID = 95, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95, STAMINA = 10, BLEED = 10)
sensor_mode = SENSOR_COORDS
random_sensor = FALSE
@@ -24,4 +24,4 @@
desc = "A plasmaman containment suit designed for brig physicians. It has a red cross emblasoned on the chest."
icon_state = "secmed_envirosuit"
item_state = "secmed_envirosuit"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 0, FIRE = 95, ACID = 95, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95, STAMINA = 10, BLEED = 10)
diff --git a/code/modules/clothing/under/jobs/civilian/civilian.dm b/code/modules/clothing/under/jobs/civilian/civilian.dm
index a3b979a75cef6..76827ef583708 100644
--- a/code/modules/clothing/under/jobs/civilian/civilian.dm
+++ b/code/modules/clothing/under/jobs/civilian/civilian.dm
@@ -126,7 +126,7 @@
desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards."
name = "janitor's jumpsuit"
icon_state = "janitor"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
/obj/item/clothing/under/rank/civilian/janitor/skirt
name = "janitor's jumpskirt"
diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm
index f915d5ea92f8b..b35ab2e9aa230 100644
--- a/code/modules/clothing/under/jobs/command.dm
+++ b/code/modules/clothing/under/jobs/command.dm
@@ -3,7 +3,7 @@
name = "captain's jumpsuit"
icon_state = "captain"
item_state = "b_suit"
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 10)
sensor_mode = SENSOR_COORDS
random_sensor = FALSE
icon = 'icons/obj/clothing/under/captain.dmi'
diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm
index 88d6289238255..663c013b4e14c 100644
--- a/code/modules/clothing/under/jobs/engineering.dm
+++ b/code/modules/clothing/under/jobs/engineering.dm
@@ -3,7 +3,7 @@
/obj/item/clothing/under/rank/engineering
icon = 'icons/obj/clothing/under/engineering.dmi'
worn_icon = 'icons/mob/clothing/under/engineering.dmi'
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 60, ACID = 20, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 60, ACID = 20, STAMINA = 0)
resistance_flags = NONE
/obj/item/clothing/under/rank/engineering/chief_engineer
@@ -12,7 +12,7 @@
icon_state = "chiefengineer"
item_state = "gy_suit" //TODO replace it
worn_icon_state = "chiefengineer"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 80, ACID = 40, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 40, STAMINA = 0, BLEED = 10)
resistance_flags = NONE
/obj/item/clothing/under/rank/engineering/chief_engineer/skirt
@@ -20,7 +20,7 @@
name = "chief engineer's jumpskirt"
icon_state = "chiefengineer_skirt"
item_state = "gy_suit"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 7, FIRE = 80, ACID = 40, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 40, STAMINA = 0, BLEED = 10)
body_parts_covered = CHEST|GROIN|ARMS
can_adjust = FALSE
fitted = FEMALE_UNIFORM_TOP
@@ -50,7 +50,7 @@
name = "engineer's jumpsuit"
icon_state = "engine"
item_state = "engi_suit"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 60, ACID = 20, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 60, ACID = 20, STAMINA = 0, BLEED = 10)
resistance_flags = NONE
/obj/item/clothing/under/rank/engineering/engineer/hazard
diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm
index 996ce9e21a1e1..4d022d6351f7e 100644
--- a/code/modules/clothing/under/jobs/medical.dm
+++ b/code/modules/clothing/under/jobs/medical.dm
@@ -1,7 +1,7 @@
/obj/item/clothing/under/rank/medical
icon = 'icons/obj/clothing/under/medical.dmi'
worn_icon = 'icons/mob/clothing/under/medical.dmi'
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, FIRE = 0, ACID = 0, STAMINA = 0)
/obj/item/clothing/under/rank/medical/chief_medical_officer
desc = "It's a jumpsuit worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection."
@@ -9,7 +9,7 @@
icon_state = "cmo"
item_state = "w_suit"
permeability_coefficient = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
/obj/item/clothing/under/rank/medical/chief_medical_officer/skirt
name = "chief medical officer's jumpskirt"
@@ -28,7 +28,7 @@
icon_state = "genetics"
item_state = "w_suit"
permeability_coefficient = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
/obj/item/clothing/under/rank/medical/geneticist/skirt
name = "geneticist's jumpskirt"
@@ -47,7 +47,7 @@
icon_state = "virology"
item_state = "w_suit"
permeability_coefficient = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
/obj/item/clothing/under/rank/medical/virologist/skirt
name = "virologist's jumpskirt"
@@ -65,7 +65,7 @@
desc = "A standard jumpsuit used by paramedics onboard space stations. It's made of a special fiber that gives special protection against biohazards."
icon_state = "paramedic"
permeability_coefficient = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
can_adjust = FALSE
/obj/item/clothing/under/rank/medical/paramedic/skirt
@@ -85,7 +85,7 @@
icon_state = "nursesuit"
item_state = "w_suit"
permeability_coefficient = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
body_parts_covered = CHEST|GROIN|ARMS
fitted = NO_FEMALE_UNIFORM
can_adjust = FALSE
@@ -96,7 +96,7 @@
icon_state = "medical"
item_state = "w_suit"
permeability_coefficient = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
/obj/item/clothing/under/rank/medical/doctor/skirt
name = "medical doctor's jumpskirt"
@@ -133,7 +133,7 @@
icon_state = "chemistry"
item_state = "w_suit"
permeability_coefficient = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 50, ACID = 65, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 50, ACID = 65, STAMINA = 0, BLEED = 10)
/obj/item/clothing/under/rank/medical/chemist/skirt
name = "chemist's jumpskirt"
diff --git a/code/modules/clothing/under/jobs/rnd.dm b/code/modules/clothing/under/jobs/rnd.dm
index 7f17125c3112c..1ca7614ebc938 100644
--- a/code/modules/clothing/under/jobs/rnd.dm
+++ b/code/modules/clothing/under/jobs/rnd.dm
@@ -7,7 +7,7 @@
desc = "It's a jumpsuit worn by those with the know-how to achieve the position of \"Research Director\". Its fabric provides minor protection from biological contaminants."
icon_state = "director"
item_state = "w_suit"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 10, RAD = 0, FIRE = 0, ACID = 35, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 10, FIRE = 0, ACID = 35, STAMINA = 0, BLEED = 10)
can_adjust = TRUE
alt_covers_chest = TRUE
@@ -27,7 +27,7 @@
name = "research director's tan suit"
icon_state = "rdwhimsy"
item_state = "rdwhimsy"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
can_adjust = TRUE
alt_covers_chest = TRUE
@@ -47,7 +47,7 @@
name = "research director's turtleneck"
icon_state = "rdturtle"
item_state = "p_suit"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 10, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
can_adjust = TRUE
alt_covers_chest = TRUE
@@ -76,7 +76,7 @@
item_state = "w_suit"
worn_icon_state = "toxinswhite"
permeability_coefficient = 0.5
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10)
/obj/item/clothing/under/rank/rnd/scientist/skirt
name = "scientist's jumpskirt"
diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm
index 6dd3db43fc331..a1403c98cc7cb 100644
--- a/code/modules/clothing/under/jobs/security.dm
+++ b/code/modules/clothing/under/jobs/security.dm
@@ -12,7 +12,7 @@
/obj/item/clothing/under/rank/security
icon = 'icons/obj/clothing/under/security.dmi'
worn_icon = 'icons/mob/clothing/under/security.dmi'
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 30, ACID = 30, STAMINA = 10)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 30, ACID = 30, STAMINA = 10)
strip_delay = 50
sensor_mode = SENSOR_COORDS
random_sensor = FALSE
@@ -22,7 +22,7 @@
desc = "A tactical security jumpsuit for officers complete with Nanotrasen belt buckle."
icon_state = "rsecurity"
item_state = "r_suit"
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 10)
alt_covers_chest = TRUE
/obj/item/clothing/under/rank/security/officer/white
@@ -71,7 +71,7 @@
desc = "A formal security suit for officers complete with Nanotrasen belt buckle."
icon_state = "rwarden"
item_state = "r_suit"
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 10)
/obj/item/clothing/under/rank/security/warden/white
name = "white security suit"
@@ -105,7 +105,7 @@
desc = "Someone who wears this means business."
icon_state = "detective"
item_state = "det"
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 30, ACID = 30, STAMINA = 10, BLEED = 10)
strip_delay = 50
alt_covers_chest = TRUE
sensor_mode = SENSOR_COORDS
@@ -148,7 +148,7 @@
desc = "A security jumpsuit decorated for those few with the dedication to achieve the position of Head of Security."
icon_state = "rhos"
item_state = "r_suit"
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 10, BLEED = 10)
strip_delay = 60
alt_covers_chest = TRUE
sensor_mode = SENSOR_COORDS
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index fe03c6e7e234a..236c172332031 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -40,7 +40,7 @@
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 100)
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm
index a599447bca044..f78d47a7541af 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"
has_sensor = NO_SENSORS
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 40, STAMINA = 10, BLEED = 25)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 40, STAMINA = 10, BLEED = 25)
alt_covers_chest = TRUE
icon = 'icons/obj/clothing/under/syndicate.dmi'
worn_icon = 'icons/mob/clothing/under/syndicate.dmi'
@@ -14,7 +14,7 @@
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
icon_state = "tactifool"
item_state = "bl_suit"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 40, STAMINA = 0, BLEED = 10)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 40, STAMINA = 0, BLEED = 10)
/obj/item/clothing/under/syndicate/sniper
name = "Tactical turtleneck suit"
@@ -35,7 +35,7 @@
desc = "Badly translated labels tell you to clean this in Vodka. Great for squatting in."
icon_state = "trackpants"
can_adjust = FALSE
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 10, BLEED = 15)
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 10, BLEED = 15)
resistance_flags = NONE
/obj/item/clothing/under/syndicate/combat
@@ -49,5 +49,5 @@
desc = "Military grade tracksuits for frontline squatting."
icon_state = "rus_under"
can_adjust = FALSE
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 10, BLEED = 15)
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 10, BLEED = 15)
resistance_flags = NONE
diff --git a/code/modules/clothing/under/trek.dm b/code/modules/clothing/under/trek.dm
index 3e89917cdc11f..7715bda961436 100644
--- a/code/modules/clothing/under/trek.dm
+++ b/code/modules/clothing/under/trek.dm
@@ -18,7 +18,7 @@
desc = "The uniform worn by engineering/security officers."
icon_state = "trek_engsec"
item_state = "r_suit"
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10) //more sec than eng, but w/e.
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 10) //more sec than eng, but w/e.
strip_delay = 50
/obj/item/clothing/under/trek/medsci
diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm
index 8a956238270b7..0cc80bed407bd 100644
--- a/code/modules/events/holiday/xmas.dm
+++ b/code/modules/events/holiday/xmas.dm
@@ -38,14 +38,14 @@
icon_state = "xmashat"
desc = "A crappy paper hat that you are REQUIRED to wear."
flags_inv = 0
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
/obj/item/clothing/head/costume/festive/Initialize(mapload)
//Merry christmas
if(CHRISTMAS in SSevents.holidays)
- armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 30, RAD = 30, FIRE = 30, ACID = 30, STAMINA = 30, BLEED = 30)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 30, FIRE = 30, ACID = 30, STAMINA = 30, BLEED = 30)
else if(FESTIVE_SEASON in SSevents.holidays)
- armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, RAD = 20, FIRE = 20, ACID = 20, STAMINA = 20, BLEED = 20)
+ armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 20, FIRE = 20, ACID = 20, STAMINA = 20, BLEED = 20)
return ..()
/obj/effect/spawner/xmastree
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index 5710d58fc701b..5efe277825369 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -24,7 +24,7 @@
opacity = FALSE
resistance_flags = FLAMMABLE
max_integrity = 200
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 0, STAMINA = 0, CONSUME = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 0, STAMINA = 0, CONSUME = 0, BLEED = 0)
var/state = BOOKCASE_UNANCHORED
var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book, /obj/item/codex_cicatrix) //Things allowed in the bookcase
/// When enabled, books_to_load number of random books will be generated for this bookcase when first interacted with.
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index 080ee5fad139e..9caecee370a99 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -12,7 +12,7 @@
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
heat_protection = CHEST|GROIN|LEGS|ARMS
hoodtype = /obj/item/clothing/head/hooded/explorer
- armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 30)
+ armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 100, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 30)
allowed = list(
/obj/item/flashlight,
/obj/item/tank/internals,
@@ -36,7 +36,7 @@
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
- armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 30)
+ armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 100, FIRE = 50, ACID = 50, STAMINA = 20, BLEED = 30)
resistance_flags = FIRE_PROOF
high_pressure_multiplier = 0.4
@@ -58,7 +58,7 @@
visor_flags_inv = HIDEFACIALHAIR
visor_flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
actions_types = list(/datum/action/item_action/adjust)
- armor = list(MELEE = 10, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, BIO = 50, RAD = 0, FIRE = 20, ACID = 40, STAMINA = 10, BLEED = 10)
+ armor = list(MELEE = 10, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, BIO = 50, FIRE = 20, ACID = 40, STAMINA = 10, BLEED = 10)
resistance_flags = FIRE_PROOF
/obj/item/clothing/mask/gas/explorer/attack_self(mob/user)
@@ -83,7 +83,7 @@
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | LAVA_PROOF
slowdown = 0
- armor = list(MELEE = 70, BULLET = 40, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 40, BLEED = 50)
+ armor = list(MELEE = 70, BULLET = 40, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 40, BLEED = 50)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
high_pressure_multiplier = 0.6
@@ -111,7 +111,7 @@
w_class = WEIGHT_CLASS_NORMAL
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
clothing_flags = THICKMATERIAL // no space protection
- armor = list(MELEE = 70, BULLET = 40, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 40, BLEED = 50)
+ armor = list(MELEE = 70, BULLET = 40, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 40, BLEED = 50)
resistance_flags = FIRE_PROOF | LAVA_PROOF
high_pressure_multiplier = 0.6
diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm
index 48285fc0e749e..ce5b42b540499 100644
--- a/code/modules/mining/equipment/marker_beacons.dm
+++ b/code/modules/mining/equipment/marker_beacons.dm
@@ -74,7 +74,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sort_list(list(
icon = 'icons/obj/lighting.dmi'
icon_state = "markerrandom"
layer = BELOW_OPEN_DOOR_LAYER
- armor = list(MELEE = 50, BULLET = 75, LASER = 75, ENERGY = 75, BOMB = 25, BIO = 100, RAD = 100, FIRE = 25, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 75, LASER = 75, ENERGY = 75, BOMB = 25, BIO = 100, FIRE = 25, ACID = 0, STAMINA = 0, BLEED = 0)
max_integrity = 50
anchored = TRUE
light_range = 2
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 7d5dc9a9181af..9a708da4e5ab6 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -680,7 +680,7 @@
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = LAVA_PROOF | FIRE_PROOF //they are from lavaland after all
- armor = list(MELEE = 15, BULLET = 35, LASER = 35, ENERGY = 20, BOMB = 35, BIO = 35, RAD = 35, FIRE = 0, ACID = 0, STAMINA = 20, BLEED = 20) //Equivalent to bone bracers. Not bad.
+ armor = list(MELEE = 15, BULLET = 35, LASER = 35, ENERGY = 20, BOMB = 35, BIO = 35, FIRE = 0, ACID = 0, STAMINA = 20, BLEED = 20) //Equivalent to bone bracers. Not bad.
/obj/item/clothing/gloves/concussive_gauntlets/equipped(mob/user, slot)
. = ..()
diff --git a/code/modules/mob/living/carbon/human/species_types/snail.dm b/code/modules/mob/living/carbon/human/species_types/snail.dm
index 85d8ccb9cd4a3..a79b5d604f1ed 100644
--- a/code/modules/mob/living/carbon/human/species_types/snail.dm
+++ b/code/modules/mob/living/carbon/human/species_types/snail.dm
@@ -60,7 +60,7 @@
item_state = "snailshell"
lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi'
- armor = list(MELEE = 20, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 20, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
max_integrity = 200
resistance_flags = FIRE_PROOF | ACID_PROOF
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm
index 707a0c84e5354..4167d2b1a17a0 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm
@@ -114,7 +114,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
/obj/structure/elite_tumor
name = "pulsing tumor"
desc = "An odd, pulsing tumor sticking out of the ground. You feel compelled to reach out and touch it..."
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
resistance_flags = INDESTRUCTIBLE
icon = 'icons/obj/lavaland/tumor.dmi'
icon_state = "tumor"
diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm
index a4ef011cd21ff..a178a14f5e75e 100644
--- a/code/modules/modular_computers/computers/item/computer.dm
+++ b/code/modules/modular_computers/computers/item/computer.dm
@@ -56,7 +56,7 @@ GLOBAL_LIST_EMPTY(TabletMessengers) // a list of all active messengers, similar
integrity_failure = 0.5
max_integrity = 100
- armor = list(MELEE = 0, BULLET = 20, LASER = 20, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 20, LASER = 20, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 0, ACID = 0, STAMINA = 0, BLEED = 0)
/// List of "connection ports" in this computer and the components with which they are plugged
var/list/all_components = list()
diff --git a/code/modules/ninja/suit/head.dm b/code/modules/ninja/suit/head.dm
index b02d10df78048..13e19c44f4f92 100644
--- a/code/modules/ninja/suit/head.dm
+++ b/code/modules/ninja/suit/head.dm
@@ -3,7 +3,7 @@
name = "ninja hood"
icon_state = "s-ninja"
item_state = "s-ninja_mask"
- armor = list(MELEE = 60, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, RAD = 25, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
+ armor = list(MELEE = 60, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
strip_delay = 12
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
blockTracking = TRUE//Roughly the only unique thing about this helmet.
diff --git a/code/modules/ninja/suit/shoes.dm b/code/modules/ninja/suit/shoes.dm
index 6a0b16e6667c3..8ef0c4ea82411 100644
--- a/code/modules/ninja/suit/shoes.dm
+++ b/code/modules/ninja/suit/shoes.dm
@@ -7,7 +7,7 @@
permeability_coefficient = 0.01
clothing_flags = NOSLIP
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
- armor = list(MELEE = 60, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, RAD = 30, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
+ armor = list(MELEE = 60, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
strip_delay = 120
cold_protection = FEET
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm
index 5734d60ec467c..23e4fff99b74f 100644
--- a/code/modules/ninja/suit/suit.dm
+++ b/code/modules/ninja/suit/suit.dm
@@ -19,7 +19,7 @@ Contents:
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/stock_parts/cell)
slowdown = 1
resistance_flags = LAVA_PROOF | ACID_PROOF
- armor = list(MELEE = 60, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, RAD = 30, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
+ armor = list(MELEE = 60, BULLET = 50, LASER = 30, ENERGY = 15, BOMB = 30, BIO = 30, FIRE = 100, ACID = 100, STAMINA = 60, BLEED = 60)
strip_delay = 12
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
cell = null
diff --git a/code/modules/power/apc/apc_main.dm b/code/modules/power/apc/apc_main.dm
index c37ce0d32285f..a2f86e236c3a1 100644
--- a/code/modules/power/apc/apc_main.dm
+++ b/code/modules/power/apc/apc_main.dm
@@ -133,7 +133,7 @@
if (!req_access)
req_access = list(ACCESS_ENGINE_EQUIP)
if (!armor)
- armor = list(MELEE = 20, BULLET = 20, LASER = 10, ENERGY = 100, BOMB = 30, BIO = 100, RAD = 100, FIRE = 90, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 20, BULLET = 20, LASER = 10, ENERGY = 100, BOMB = 30, BIO = 100, FIRE = 90, ACID = 50, STAMINA = 0, BLEED = 0)
..()
GLOB.apcs_list += src
diff --git a/code/modules/power/lighting/light_construct.dm b/code/modules/power/lighting/light_construct.dm
index 47584ee0d1fe6..81c00037ba1b0 100644
--- a/code/modules/power/lighting/light_construct.dm
+++ b/code/modules/power/lighting/light_construct.dm
@@ -6,7 +6,7 @@
anchored = TRUE
layer = WALL_OBJ_LAYER
max_integrity = 200
- armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 50, STAMINA = 0, BLEED = 0)
var/stage = 1
var/fixture_type = "tube"
diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm
index ec26aa3603883..c4c56e921aa2c 100644
--- a/code/modules/power/singularity/field_generator.dm
+++ b/code/modules/power/singularity/field_generator.dm
@@ -33,7 +33,7 @@ field_generator power level display
use_power = NO_POWER_USE
max_integrity = 500
//100% immune to lasers and energy projectiles since it absorbs their energy.
- armor = list(MELEE = 25, BULLET = 10, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0)
var/power_level = 0
var/active = FG_OFFLINE
var/power = 20 // Current amount of power
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index 24feb2fc3d024..2a96c2c53c783 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -27,7 +27,7 @@
anchored = FALSE
density = TRUE
max_integrity = 500
- armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 90, ACID = 80, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 20, LASER = 20, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 90, ACID = 80, STAMINA = 0, BLEED = 0)
var/obj/machinery/particle_accelerator/control_box/master = null
var/construction_state = PA_CONSTRUCTION_UNSECURED
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 91eae09b1b5e3..8c73dfdf54543 100755
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -245,7 +245,7 @@
flags_inv = HIDEHAIR
slot_flags = ITEM_SLOT_HEAD
resistance_flags = NONE
- armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 75, ACID = 50, STAMINA = 0, BLEED = 0) //Weak melee protection, because you can wear it on your head
+ armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 75, ACID = 50, STAMINA = 0, BLEED = 0) //Weak melee protection, because you can wear it on your head
slot_equipment_priority = list( \
ITEM_SLOT_BACK, ITEM_SLOT_ID,\
ITEM_SLOT_ICLOTHING, ITEM_SLOT_OCLOTHING,\
diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm
index 9096d84b85e79..6fad1eae6381b 100644
--- a/code/modules/recycling/disposal/bin.dm
+++ b/code/modules/recycling/disposal/bin.dm
@@ -5,7 +5,7 @@
/obj/machinery/disposal
icon = 'icons/obj/atmospherics/pipes/disposal.dmi'
density = TRUE
- armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
max_integrity = 200
resistance_flags = FIRE_PROOF
interaction_flags_machine = INTERACT_MACHINE_OPEN | INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON
diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm
index 79c16ade1c3c1..24a9bfe49b3cf 100644
--- a/code/modules/recycling/disposal/pipe.dm
+++ b/code/modules/recycling/disposal/pipe.dm
@@ -9,7 +9,7 @@
obj_flags = CAN_BE_HIT | ON_BLUEPRINTS
dir = NONE // dir will contain dominant direction for junction pipes
max_integrity = 200
- armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
layer = DISPOSAL_PIPE_LAYER // slightly lower than wires and other pipes
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
var/dpdir = NONE // bitmask of pipe directions
diff --git a/code/modules/research/xenobiology/crossbreeding/_misc.dm b/code/modules/research/xenobiology/crossbreeding/_misc.dm
index 8fee94597f33f..897be30b1b858 100644
--- a/code/modules/research/xenobiology/crossbreeding/_misc.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_misc.dm
@@ -147,7 +147,7 @@ Slimecrossing Items
icon_state = "frozen"
density = TRUE
max_integrity = 100
- armor = list(MELEE = 30, BULLET = 50, LASER = -50, ENERGY = -50, BOMB = 0, BIO = 100, RAD = 100, FIRE = -80, ACID = 30, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 50, LASER = -50, ENERGY = -50, BOMB = 0, BIO = 100, FIRE = -80, ACID = 30, STAMINA = 0, BLEED = 0)
/obj/structure/ice_stasis/Initialize(mapload)
. = ..()
diff --git a/code/modules/research/xenobiology/crossbreeding/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm
index b2842e13d2ad3..ebbbfd8855b7e 100644
--- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_weapons.dm
@@ -67,7 +67,7 @@ Slimecrossing Weapons
icon_state = "adamshield"
item_state = "adamshield"
w_class = WEIGHT_CLASS_HUGE
- armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 0, BOMB = 30, BIO = 0, RAD = 0, FIRE = 80, ACID = 70, STAMINA = 70, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 80, ACID = 70, STAMINA = 70, BLEED = 0)
slot_flags = ITEM_SLOT_BACK
attack_weight = 2
block_power = 75
diff --git a/code/modules/research/xenobiology/crossbreeding/warping.dm b/code/modules/research/xenobiology/crossbreeding/warping.dm
index b19063456081d..12a3bc57c45ec 100644
--- a/code/modules/research/xenobiology/crossbreeding/warping.dm
+++ b/code/modules/research/xenobiology/crossbreeding/warping.dm
@@ -379,7 +379,7 @@ GLOBAL_DATUM(blue_storage, /obj/item/storage/backpack/holding/bluespace)
/obj/item/storage/backpack/holding/bluespace
name = "warped rune"
anchored = TRUE
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, STAMINA = 100, BLEED = 0)
invisibility = INVISIBILITY_ABSTRACT
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
diff --git a/code/modules/ruins/lavalandruin_code/puzzle.dm b/code/modules/ruins/lavalandruin_code/puzzle.dm
index 0c2557c16398a..cf23e907553dd 100644
--- a/code/modules/ruins/lavalandruin_code/puzzle.dm
+++ b/code/modules/ruins/lavalandruin_code/puzzle.dm
@@ -296,7 +296,7 @@
//Some armor so it's harder to kill someone by mistake.
/obj/structure/puzzle_element/prison
- armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 50, RAD = 50, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 50, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
/obj/structure/puzzle_element/prison/relaymove(mob/living/user, direction)
return
diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator.dm
index 091801c7079ca..7ebe533307590 100644
--- a/code/modules/shuttle/shuttle_creation/shuttle_creator.dm
+++ b/code/modules/shuttle/shuttle_creation/shuttle_creator.dm
@@ -27,7 +27,7 @@ GLOBAL_LIST_EMPTY(custom_shuttle_machines) //Machines that require updating (He
throw_range = 5
w_class = WEIGHT_CLASS_TINY
req_access_txt = "11"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
var/ready = TRUE
//pre-designation
diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm
index 29dc5b3dfaf7c..2545cd28e5891 100644
--- a/code/modules/vehicles/_vehicle.dm
+++ b/code/modules/vehicles/_vehicle.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/vehicles.dmi'
icon_state = "error"
max_integrity = 300
- armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 0, BOMB = 30, BIO = 0, RAD = 0, FIRE = 60, ACID = 60, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 60, ACID = 60, STAMINA = 0, BLEED = 0)
density = TRUE
anchored = FALSE
COOLDOWN_DECLARE(cooldown_vehicle_move)
diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm
index a81633cf9a561..044c9d2455c01 100644
--- a/code/modules/vehicles/atv.dm
+++ b/code/modules/vehicles/atv.dm
@@ -4,7 +4,7 @@
desc = "An all-terrain vehicle built for traversing rough terrain with ease. One of the few old-Earth technologies that are still relevant on most planet-bound outposts."
icon_state = "atv"
max_integrity = 150
- armor = list(MELEE = 50, BULLET = 25, LASER = 20, ENERGY = 0, BOMB = 50, BIO = 0, RAD = 0, FIRE = 60, ACID = 60, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 25, LASER = 20, ENERGY = 0, BOMB = 50, BIO = 0, FIRE = 60, ACID = 60, STAMINA = 0, BLEED = 0)
key_type = /obj/item/key
integrity_failure = 0.5
var/static/mutable_appearance/atvcover
diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm
index b90c3e781043b..ae60b0542e6b5 100644
--- a/code/modules/vehicles/cars/clowncar.dm
+++ b/code/modules/vehicles/cars/clowncar.dm
@@ -3,7 +3,7 @@
desc = "How someone could even fit in there is beyond me."
icon_state = "clowncar"
max_integrity = 150
- armor = list(MELEE = 70, BULLET = 40, LASER = 40, ENERGY = 0, BOMB = 30, BIO = 0, RAD = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 70, BULLET = 40, LASER = 40, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 80, ACID = 80, STAMINA = 0, BLEED = 0)
enter_delay = 20
max_occupants = 50
movedelay = 0.6
diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm
index c15459b8845fb..1d028df513cf5 100644
--- a/code/modules/vehicles/mecha/_mecha.dm
+++ b/code/modules/vehicles/mecha/_mecha.dm
@@ -23,7 +23,7 @@
icon = 'icons/mecha/mecha.dmi'
resistance_flags = FIRE_PROOF | ACID_PROOF
max_integrity = 300
- armor = list(MELEE = 20, BULLET = 10, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0)
+ armor = list(MELEE = 20, BULLET = 10, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0)
movedelay = 1 SECONDS
force = 5
move_force = MOVE_FORCE_VERY_STRONG
diff --git a/code/modules/vehicles/mecha/combat/combat.dm b/code/modules/vehicles/mecha/combat/combat.dm
index 1d629c7ddcd0d..a1f7cc2dd65df 100644
--- a/code/modules/vehicles/mecha/combat/combat.dm
+++ b/code/modules/vehicles/mecha/combat/combat.dm
@@ -2,7 +2,7 @@
force = 30
internals_req_access = list(ACCESS_MECH_SCIENCE, ACCESS_MECH_SECURITY)
internal_damage_threshold = 50
- armor = list(MELEE = 30, BULLET = 30, LASER = 15, ENERGY = 20, BOMB = 20, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 15, ENERGY = 20, BOMB = 20, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
mouse_pointer = 'icons/mecha/mecha_mouse.dmi'
destruction_knockdown_duration = 8 SECONDS
exit_delay = 40
diff --git a/code/modules/vehicles/mecha/combat/durand.dm b/code/modules/vehicles/mecha/combat/durand.dm
index e436afcaab9ee..c0939ebce321f 100644
--- a/code/modules/vehicles/mecha/combat/durand.dm
+++ b/code/modules/vehicles/mecha/combat/durand.dm
@@ -7,7 +7,7 @@
dir_in = 1 //Facing North.
max_integrity = 400
deflect_chance = 20
- armor = list(MELEE = 40, BULLET = 35, LASER = 15, ENERGY = 10, BOMB = 20, BIO = 0, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 40, BULLET = 35, LASER = 15, ENERGY = 10, BOMB = 20, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_temperature = 30000
force = 40
wreckage = /obj/structure/mecha_wreckage/durand
diff --git a/code/modules/vehicles/mecha/combat/gygax.dm b/code/modules/vehicles/mecha/combat/gygax.dm
index afc9545af683b..26bbf2388d24c 100644
--- a/code/modules/vehicles/mecha/combat/gygax.dm
+++ b/code/modules/vehicles/mecha/combat/gygax.dm
@@ -7,7 +7,7 @@
dir_in = 1 //Facing North.
max_integrity = 250
deflect_chance = 5
- armor = list(MELEE = 25, BULLET = 20, LASER = 30, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 25, BULLET = 20, LASER = 30, ENERGY = 15, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_temperature = 25000
leg_overload_coeff = 80
force = 25
@@ -23,7 +23,7 @@
base_icon_state = "darkgygax"
max_integrity = 300
deflect_chance = 15
- armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 35, BOMB = 20, BIO = 0, RAD = 20, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 35, BOMB = 20, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_temperature = 35000
leg_overload_coeff = 70
operation_req_access = list(ACCESS_SYNDICATE)
diff --git a/code/modules/vehicles/mecha/combat/honker.dm b/code/modules/vehicles/mecha/combat/honker.dm
index d9a8d0fe40fc5..ee1761ed82c0d 100644
--- a/code/modules/vehicles/mecha/combat/honker.dm
+++ b/code/modules/vehicles/mecha/combat/honker.dm
@@ -7,7 +7,7 @@
max_integrity = 140
deflect_chance = 60
internal_damage_threshold = 60
- armor = list(MELEE = -20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = -20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_temperature = 25000
operation_req_access = list(ACCESS_THEATRE)
internals_req_access = list(ACCESS_MECH_SCIENCE, ACCESS_THEATRE)
diff --git a/code/modules/vehicles/mecha/combat/marauder.dm b/code/modules/vehicles/mecha/combat/marauder.dm
index b90dcbdd05034..59475c5bd4e62 100644
--- a/code/modules/vehicles/mecha/combat/marauder.dm
+++ b/code/modules/vehicles/mecha/combat/marauder.dm
@@ -6,7 +6,7 @@
movedelay = 5
max_integrity = 500
deflect_chance = 25
- armor = list(MELEE = 50, BULLET = 55, LASER = 40, ENERGY = 30, BOMB = 30, BIO = 0, RAD = 60, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 50, BULLET = 55, LASER = 40, ENERGY = 30, BOMB = 30, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_temperature = 60000
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
operation_req_access = list(ACCESS_CENT_SPECOPS)
diff --git a/code/modules/vehicles/mecha/combat/phazon.dm b/code/modules/vehicles/mecha/combat/phazon.dm
index af921d340fa0e..dd2543b013bf8 100644
--- a/code/modules/vehicles/mecha/combat/phazon.dm
+++ b/code/modules/vehicles/mecha/combat/phazon.dm
@@ -8,7 +8,7 @@
step_energy_drain = 3
max_integrity = 200
deflect_chance = 30
- armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 0, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_temperature = 25000
wreckage = /obj/structure/mecha_wreckage/phazon
internal_damage_threshold = 25
diff --git a/code/modules/vehicles/mecha/combat/reticence.dm b/code/modules/vehicles/mecha/combat/reticence.dm
index 420133de3861a..ff0df413d9061 100644
--- a/code/modules/vehicles/mecha/combat/reticence.dm
+++ b/code/modules/vehicles/mecha/combat/reticence.dm
@@ -7,7 +7,7 @@
dir_in = 1 //Facing North.
max_integrity = 100
deflect_chance = 3
- armor = list(MELEE = 25, BULLET = 20, LASER = 30, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 25, BULLET = 20, LASER = 30, ENERGY = 15, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_temperature = 15000
wreckage = /obj/structure/mecha_wreckage/reticence
operation_req_access = list(ACCESS_THEATRE)
diff --git a/code/modules/vehicles/mecha/working/clarke.dm b/code/modules/vehicles/mecha/working/clarke.dm
index 905024e9437d6..0fe37e198833d 100644
--- a/code/modules/vehicles/mecha/working/clarke.dm
+++ b/code/modules/vehicles/mecha/working/clarke.dm
@@ -11,7 +11,7 @@
lights_power = 7
deflect_chance = 10
step_energy_drain = 15 //slightly higher energy drain since you movin those wheels FAST
- armor = list(MELEE = 20, BULLET = 10, LASER = 20, ENERGY = 10, BOMB = 60, BIO = 0, RAD = 70, FIRE = 100, ACID = 100) //low armor to compensate for fire protection and speed
+ armor = list(MELEE = 20, BULLET = 10, LASER = 20, ENERGY = 10, BOMB = 60, BIO = 0, FIRE = 100, ACID = 100) //low armor to compensate for fire protection and speed
max_equip = 7
wreckage = /obj/structure/mecha_wreckage/clarke
enter_delay = 40
diff --git a/code/modules/vehicles/mecha/working/ripley.dm b/code/modules/vehicles/mecha/working/ripley.dm
index 23a80f6843023..0ebe61bc5ed06 100644
--- a/code/modules/vehicles/mecha/working/ripley.dm
+++ b/code/modules/vehicles/mecha/working/ripley.dm
@@ -13,7 +13,7 @@
max_integrity = 200
lights_power = 7
deflect_chance = 15
- armor = list(MELEE = 40, BULLET = 20, LASER = 10, ENERGY = 20, BOMB = 40, BIO = 0, RAD = 20, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 40, BULLET = 20, LASER = 10, ENERGY = 20, BOMB = 40, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
max_equip = 6
wreckage = /obj/structure/mecha_wreckage/ripley
internals_req_access = list(ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_MINING)
@@ -66,7 +66,7 @@
fast_pressure_step_in = 1.75 //step_in while in low pressure conditions
slow_pressure_step_in = 3 //step_in while in normal pressure conditions
movedelay = 4
- armor = list(MELEE = 40, BULLET = 20, LASER = 10, ENERGY = 20, BOMB = 40, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 40, BULLET = 20, LASER = 10, ENERGY = 20, BOMB = 40, BIO = 0, FIRE = 100, ACID = 100, STAMINA = 0, BLEED = 0)
wreckage = /obj/structure/mecha_wreckage/ripley/mk2
enclosed = TRUE
enter_delay = 40
diff --git a/code/modules/vehicles/secway.dm b/code/modules/vehicles/secway.dm
index 0dc23070ea4b6..54b3fc8bd3bf8 100644
--- a/code/modules/vehicles/secway.dm
+++ b/code/modules/vehicles/secway.dm
@@ -4,7 +4,7 @@
desc = "A brave security cyborg gave its life to help you look like a complete tool."
icon_state = "secway"
max_integrity = 100
- armor = list(MELEE = 20, BULLET = 15, LASER = 10, ENERGY = 0, BOMB = 30, BIO = 0, RAD = 0, FIRE = 60, ACID = 60, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 20, BULLET = 15, LASER = 10, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 60, ACID = 60, STAMINA = 0, BLEED = 0)
key_type = /obj/item/key/security
integrity_failure = 0.5
diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm
index abd6ec9dc7787..67ec3077e394d 100644
--- a/code/modules/vehicles/wheelchair.dm
+++ b/code/modules/vehicles/wheelchair.dm
@@ -5,7 +5,7 @@
icon_state = "wheelchair"
layer = OBJ_LAYER
max_integrity = 100
- armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 20, ACID = 30, STAMINA = 0, BLEED = 0) //Wheelchairs aren't super tough yo
+ armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 20, ACID = 30, STAMINA = 0, BLEED = 0) //Wheelchairs aren't super tough yo
legs_required = 0 //You'll probably be using this if you don't have legs
canmove = TRUE
density = FALSE //Thought I couldn't fix this one easily, phew
diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm
index ceaae3686798e..d53717678a5f4 100644
--- a/code/modules/vending/_vending.dm
+++ b/code/modules/vending/_vending.dm
@@ -59,7 +59,7 @@
verb_exclaim = "beeps"
max_integrity = 300
integrity_failure = 0.33
- armor = list(MELEE = 20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 70, STAMINA = 0, BLEED = 0)
circuit = /obj/item/circuitboard/machine/vendor
clicksound = 'sound/machines/pda_button1.ogg'
dept_req_for_free = ACCOUNT_SRV_BITFLAG
diff --git a/code/modules/vending/liberation.dm b/code/modules/vending/liberation.dm
index f217a7ead39c1..87facb63030a9 100644
--- a/code/modules/vending/liberation.dm
+++ b/code/modules/vending/liberation.dm
@@ -26,7 +26,7 @@
contraband = list(/obj/item/clothing/under/misc/patriotsuit = 3,
/obj/item/bedsheet/patriot = 5,
/obj/item/food/burger/superbite = 3) //U S A
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
default_price = 300
extra_price = 500
diff --git a/code/modules/vending/liberation_toy.dm b/code/modules/vending/liberation_toy.dm
index 09ffd5acef36b..5c6ca9da1dfef 100644
--- a/code/modules/vending/liberation_toy.dm
+++ b/code/modules/vending/liberation_toy.dm
@@ -22,7 +22,7 @@
/obj/item/toy/katana = 10,
/obj/item/dualsaber/toy = 5,
/obj/item/toy/cards/deck/syndicate = 10) //Gambling and it hurts, making it a +18 item
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/donksoft
default_price = 75
diff --git a/code/modules/vending/magivend.dm b/code/modules/vending/magivend.dm
index a01f7615886a6..0e78eec956819 100644
--- a/code/modules/vending/magivend.dm
+++ b/code/modules/vending/magivend.dm
@@ -14,7 +14,7 @@
/obj/item/clothing/shoes/sandal/magic = 1,
/obj/item/staff = 2)
contraband = list(/obj/item/reagent_containers/glass/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
default_price = 25
extra_price = 50
diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm
index 09a84878e17c5..b6709892974f2 100644
--- a/code/modules/vending/medical.dm
+++ b/code/modules/vending/medical.dm
@@ -31,7 +31,7 @@
/obj/item/pinpointer/crew = 2,
/obj/item/healthanalyzer = 2,
/obj/item/wrench/medical = 1)
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/medical
default_price = 25
diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm
index df7b1935f9110..285c4cbeceb61 100644
--- a/code/modules/vending/medical_wall.dm
+++ b/code/modules/vending/medical_wall.dm
@@ -13,7 +13,7 @@
/obj/item/reagent_containers/medspray/sterilizine = 3)
contraband = list(/obj/item/reagent_containers/glass/bottle/toxin = 1,
/obj/item/reagent_containers/glass/bottle/morphine = 1)
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/wallmed
default_price = 25
diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm
index e43d014bf1ea4..06e6fd3b708ec 100644
--- a/code/modules/vending/toys.dm
+++ b/code/modules/vending/toys.dm
@@ -24,7 +24,7 @@
/obj/item/toy/katana = 10,
/obj/item/dualsaber/toy = 5)
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/donksoft
default_price = 75
diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm
index 93df6958ea3fc..a184932be9a80 100644
--- a/code/modules/vending/youtool.dm
+++ b/code/modules/vending/youtool.dm
@@ -23,7 +23,7 @@
/obj/item/clothing/head/utility/welding = 2,
/obj/item/clothing/gloves/color/yellow = 1)
refill_canister = /obj/item/vending_refill/tool
- armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
+ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 100, ACID = 70, STAMINA = 0, BLEED = 0)
resistance_flags = FIRE_PROOF
default_price = 10
extra_price = 80
From 85ae8853f3f81bb48c09db18f5da9dd4a35a0b51 Mon Sep 17 00:00:00 2001
From: XeonMations
Date: Fri, 6 Sep 2024 06:15:15 +0300
Subject: [PATCH 03/42] rahhhhhgh
---
code/__DEFINES/devices.dm | 1 -
code/datums/mutations/radioactive.dm | 12 +-
code/datums/radiation_wave.dm | 289 ------------------
.../weather/weather_types/radiation_storm.dm | 36 ++-
code/game/atoms.dm | 14 -
code/game/machinery/computer/dna_console.dm | 138 +++++----
code/game/machinery/doors/airlock.dm | 3 -
code/game/machinery/doors/airlock_types.dm | 2 +-
code/game/machinery/suit_storage_unit.dm | 4 +-
code/game/machinery/teleporter.dm | 2 -
.../objects/items/devices/geiger_counter.dm | 195 ++++--------
code/game/objects/items/devices/scanners.dm | 8 +-
.../objects/items/devices/traitordevices.dm | 1 -
code/game/objects/items/dna_injector.dm | 3 -
.../objects/items/grenades/syndieminibomb.dm | 5 +-
code/game/objects/items/religion.dm | 2 +-
code/game/objects/items/storage/bags.dm | 1 -
code/game/objects/items/theft_tools.dm | 8 +-
code/game/objects/items/tools/wirebrush.dm | 46 ---
code/game/objects/objs.dm | 4 +-
code/game/objects/structures/false_walls.dm | 4 +-
code/game/objects/structures/girders.dm | 2 -
code/game/objects/structures/grille.dm | 1 -
code/game/objects/structures/holosign.dm | 4 -
code/game/objects/structures/mineral_doors.dm | 2 -
code/game/objects/structures/shower.dm | 3 +-
code/game/objects/structures/signs/_signs.dm | 1 -
code/game/objects/structures/window.dm | 2 -
code/game/turfs/closed/_closed.dm | 2 -
code/game/turfs/closed/wall/mineral_walls.dm | 2 +-
code/game/turfs/open/_open.dm | 8 -
code/game/turfs/open/floor/mineral_floor.dm | 2 +-
.../atmospherics/gasmixtures/reactions.dm | 6 +-
code/modules/clothing/clothing.dm | 4 +-
.../clothing/glasses/engine_goggles.dm | 30 +-
code/modules/clothing/suits/utility.dm | 2 -
code/modules/mining/satchel_ore_box.dm | 4 -
code/modules/mob/living/carbon/human/human.dm | 1 -
code/modules/mob/living/carbon/human/life.dm | 4 -
code/modules/mob/living/silicon/silicon.dm | 1 -
.../file_system/programs/phys_scanner.dm | 14 -
.../chemistry/reagents/medicine_reagents.dm | 2 +-
code/modules/recycling/disposal/pipe.dm | 1 -
43 files changed, 184 insertions(+), 692 deletions(-)
delete mode 100644 code/datums/radiation_wave.dm
diff --git a/code/__DEFINES/devices.dm b/code/__DEFINES/devices.dm
index 7086e9f649bcf..5aa3279722f11 100644
--- a/code/__DEFINES/devices.dm
+++ b/code/__DEFINES/devices.dm
@@ -1,6 +1,5 @@
// Role disk defines
-#define DISK_POWER (1<<0)
#define DISK_ATMOS (1<<1)
#define DISK_MED (1<<2)
#define DISK_CHEM (1<<3)
diff --git a/code/datums/mutations/radioactive.dm b/code/datums/mutations/radioactive.dm
index 2ede583cb1467..0df32130d25c5 100644
--- a/code/datums/mutations/radioactive.dm
+++ b/code/datums/mutations/radioactive.dm
@@ -6,13 +6,23 @@
difficulty = 8
power_coeff = 1
+ COOLDOWN_DECLARE(last_radioactive_pulse)
+
/datum/mutation/radioactive/New(class_ = MUT_OTHER, timer, datum/mutation/copymut)
..()
if(!(type in visual_indicators))
visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "radiation"))
/datum/mutation/radioactive/on_life()
- radiation_pulse(owner, 20 * GET_MUTATION_POWER(src))
+ if (!COOLDOWN_FINISHED(src, last_radioactive_pulse))
+ return
+
+ COOLDOWN_START(src, last_radioactive_pulse, 5 SECONDS)
+ radiation_pulse(
+ owner,
+ max_range = 1 * (GET_MUTATION_POWER(src) * 2),
+ threshold = RAD_MEDIUM_INSULATION,
+ )
/datum/mutation/radioactive/get_visual_indicator()
return visual_indicators[type][1]
diff --git a/code/datums/radiation_wave.dm b/code/datums/radiation_wave.dm
deleted file mode 100644
index df670cbe73b87..0000000000000
--- a/code/datums/radiation_wave.dm
+++ /dev/null
@@ -1,289 +0,0 @@
-#define PRC_FLAG_HL (1<<0) // Send half of current strength to the upper "left"
-#define PRC_FLAG_L (1<<1) // Send the whole current strength to the upper "left": direct succession
-#define PRC_FLAG_HR (1<<2) // Send half of current strength to the upper "right"
-#define PRC_FLAG_R (1<<3) // Send the whole current strength to the upper "right": direct succession
-
-/**
- * Crash Course: Understanding PRC_BEHAVIOR
- * We move forward, and in square-by-square manner, so we need a list 8 entries larger than the current one, and future squares are determined from the current square.
- * We move clockwise: "left" means intensity_new[i + j], "right" means intensity_new[i + j + 1]. `j` here is offset.
- * Most squares are on branch: It moves "left"(L) or "right"(R).
- * But, sometimes, a branch can't decide which way to go; then it splits(D) and merges(HL, HR).
- * Then there are squares not on branch; those don't go anywhere else(N).
- * But branchless squares still need to act radiation; does branchless square's does one time transient succession from both of immediate predecessors
- * ... in contrast to "on-branch" squares where there are only one meaningful predecessor.
- * Since we are calculating future squares, we need to see if there are any branchless squares needing our attention: (*STAR)
- * And, of course, branchless squares might have to draw from another preceding branchless squares. (NWL, NWR)
- */
-
-#define PRC_BEHAVIOR_N (1<<4) // Not on branch, and both upper squares are on branch
- // So we don't calculate prc_behavior every time (setting to 0 would do that)
-#define PRC_BEHAVIOR_NWL PRC_FLAG_HL // Not on branch, but will send half of its strength to the "left" since it also is not on branch
-#define PRC_BEHAVIOR_NWR PRC_FLAG_HR // Not on branch, but will send half of its strength to the "left" since it also is not on branch
-#define PRC_BEHAVIOR_L PRC_FLAG_L // On branch, going "left"
-#define PRC_BEHAVIOR_LSTAR (PRC_FLAG_L|PRC_FLAG_HR) // On branch, going "left", but there's branchless square on the "right"
-#define PRC_BEHAVIOR_R PRC_FLAG_R // On branch, going "right"
-#define PRC_BEHAVIOR_RSTAR (PRC_FLAG_R|PRC_FLAG_HL) // On branch, going "left", but there's branchless square on the "left"
-#define PRC_BEHAVIOR_D (PRC_FLAG_L|PRC_FLAG_R) // On branch, double successor.
-#define PRC_BEHAVIOR_HL PRC_FLAG_HL // From one of the double successor; single successor on the "left"
-#define PRC_BEHAVIOR_HLSTAR (PRC_FLAG_HL|PRC_FLAG_HR) // From one of the double successor; single successor on the "left", but there's branchless square on the "right"
-#define PRC_BEHAVIOR_HR PRC_FLAG_HR // From one of the double successor; single successor on the "right"
-#define PRC_BEHAVIOR_HRSTAR (PRC_FLAG_HR|PRC_FLAG_HL) // From one of the double successor; single successor on the "right", but there's branchless square on the "left"
-
-/datum/radiation_wave
- var/source
- var/turf/master_turf //The center of the wave
- var/steps = 0 //How far we've moved
- var/intensity[8] //How strong it is, except the distance falloff
- var/range_modifier //Higher than 1 makes it drop off faster, 0.5 makes it drop off half etc
- var/can_contaminate
- var/static/list/prc_behavior_cache
-
-/datum/radiation_wave/New(atom/_source, _intensity=0, _range_modifier=RAD_DISTANCE_COEFFICIENT, _can_contaminate=TRUE)
-
- source = "[_source] \[[REF(_source)]\]"
-
- master_turf = get_turf(_source)
-
- // Yes, it causes (8 / range_modifier ** 2) times the strength you gave to the radiation_pulse().
- for(var/i in 1 to 8)
- intensity[i] = _intensity
- range_modifier = _range_modifier
- can_contaminate = _can_contaminate
-
- START_PROCESSING(SSradiation, src)
-
-/datum/radiation_wave/Destroy()
- . = QDEL_HINT_IWILLGC
- intensity = null
- STOP_PROCESSING(SSradiation, src)
- ..()
-
-/datum/radiation_wave/process(delta_time)
- // If master_turf is no more, then we can't know where to irradiate. This is a very bad situation.
- if(!master_turf)
- qdel(src)
- return
- // If none of the turfs could be irradiated, then the wave should no longer exist
- var/futile = TRUE
- // Cache of unlucky atoms
- var/list/atoms = list()
- // The actual distance
- var/distance = steps + 1
- // Represents decreasing radiation power over distance
- var/falloff = 1 / (distance * range_modifier) ** 2
- // Caching
- var/turf/cmaster_turf = master_turf
- // Original intensity it is using
- var/list/cintensity = intensity
- // New intensity that'll be written; always larger than the previous one
- var/list/intensity_new[(distance + 1) * 8]
- // "Class" it belongs to
- var/branchclass = 2 ** round(log(2, distance))
- // The secondary i, or the offset for i
- var/j
-
- for(var/i in 1 to distance * 8)
- //Culls invalid intensities
- if(cintensity[i] * falloff < RAD_WAVE_MINIMUM)
- continue
- var/xpos
- var/ypos
- switch(i / distance)
- if(0 to 2)
- //Yes it starts one step off of what you'd expect. Blame BYOND.
- xpos = cmaster_turf.x + distance
- ypos = cmaster_turf.y + distance - i
- if(2 to 4)
- xpos = cmaster_turf.x + distance * 3 - i
- ypos = cmaster_turf.y - distance
- if(4 to 6)
- xpos = cmaster_turf.x - distance
- ypos = cmaster_turf.y - distance * 5 + i
- if(6 to 8)
- xpos = cmaster_turf.x - distance * 7 + i
- ypos = cmaster_turf.y + distance
- //Culls invalid coords
- if(xpos < 1 || xpos > world.maxx || ypos < 1 || ypos > world.maxy)
- continue
-
- //The radiation is considered alive
- futile = FALSE
- var/turf/place = locate(xpos, ypos, cmaster_turf.z)
- atoms = get_rad_contents(place)
-
- //Actual radiation spending
- cintensity[i] *= radiate(atoms, cintensity[i] * falloff)
-
- //Obstruction handling
- check_obstructions(atoms, i)
-
- /*
- * This is what I call pseudo-raycasting (PRC). Real raycasting would be ridiculously expensive,
- * So this is the solution I came up with. Don't try to understand it by seeing the code.
- * You have been warned. If you find yourself really having to touch this cursed code,
- * consider axing this away before contacting me via git-fu email digging.
- *
- * Therefore, I urge you not to hastily assume this code a culprit of your problem.
- * This code is responsible just for *keeping the rads going forward* more reasonably
- * in regard to obstruction and contamination cost. But, of course, if you are rewriting
- * (notwithstanding how questionable rewriting something major of a mature codebase like
- * every normal SS13 codebase is) the entire radiation code, then this code should be
- * considered for deletion.
- *
- * On a side note, this implementation isn't very ideal. So please remove this instead of
- * trying to improve it when its time has come. (i.e. another total overhaul)
- *
- * ~Xenomedes, Christmas 2020
- */
-
- // Handling eight fundamental (read: perfectly straight) branches
- if((j = i / distance) == (j = round(j)))
- distance + 1 == branchclass * 2 \
- ? (i == distance * 8 \
- ? (intensity_new[j - 1] += (intensity_new[1] += ((intensity_new[(j += i)] = cintensity[i]) / 2)) && cintensity[i] / 2) \
- : (intensity_new[j - 1] += intensity_new[j + 1] = ((intensity_new[(j += i)] = cintensity[i]) / 2))) \
- : (intensity_new[i + j] = cintensity[i])
- continue
-
- var/list/cachecache
-
- if(!prc_behavior_cache)
- prc_behavior_cache = list()
- if(length(prc_behavior_cache) < distance)
- prc_behavior_cache.len++
- // We don't reserve spaces for fundamental branches
- var/L[distance - 1]
- // distance == 1 is where every ray is fundamental branch
- cachecache = prc_behavior_cache[distance - 1] = L
- else
- cachecache = prc_behavior_cache[distance - 1]
-
- // i % distance == 0 cases were already handled above
- var/prc_behavior = cachecache[i % distance]
-
- if(!prc_behavior)
- // Necessary local variables
- var/idx // index
- var/lp // loop position
- var/vl // velocity of loop
- var/bt // branch threshold
-
- // The actual behavior calculation
- cachecache[i % distance] = prc_behavior = distance & 1 \
- ? ((lp = ((idx = i % distance) * (vl = distance - branchclass + 1)) % (distance + 1)) < (bt = branchclass - (idx - round(idx * vl / (distance + 1)))) \
- ? (lp \
- ? (lp + vl >= bt ? PRC_BEHAVIOR_LSTAR : PRC_BEHAVIOR_L) \
- : (vl >= bt ? PRC_BEHAVIOR_HLSTAR : PRC_BEHAVIOR_HL)) \
- : (lp > branchclass \
- ? (lp - vl <= bt ? PRC_BEHAVIOR_NWL : (lp - bt > branchclass ? PRC_BEHAVIOR_NWR : PRC_BEHAVIOR_N)) \
- : (lp == branchclass \
- ? (lp - vl <= bt ? PRC_BEHAVIOR_HRSTAR : PRC_BEHAVIOR_HR) \
- : (lp - vl <= bt ? PRC_BEHAVIOR_RSTAR : PRC_BEHAVIOR_R)))) \
- : ((lp = ((idx = i % distance) * (vl = distance - branchclass + 1)) % (distance + 1)) == (bt = branchclass - (idx - round(idx * vl / (distance + 1)))) \
- ? PRC_BEHAVIOR_D \
- : (lp > branchclass \
- ? (lp - vl <= bt ? PRC_BEHAVIOR_NWL : (lp - bt > branchclass ? PRC_BEHAVIOR_NWR : PRC_BEHAVIOR_N)) \
- : (lp < bt \
- ? (lp + vl >= bt ? PRC_BEHAVIOR_LSTAR : PRC_BEHAVIOR_L) \
- : (lp - vl <= bt ? PRC_BEHAVIOR_RSTAR : PRC_BEHAVIOR_R))))
-
- prc_behavior & PRC_FLAG_HL \
- ? (intensity_new[i + j] += cintensity[i] / 2) \
- : (prc_behavior & PRC_FLAG_L \
- ? (intensity_new[i + j] = cintensity[i]) \
- : null)
-
- prc_behavior & PRC_FLAG_HR \
- ? (intensity_new[i + j + 1] += cintensity[i] / 2) \
- : (prc_behavior & PRC_FLAG_R \
- ? (intensity_new[i + j + 1] = cintensity[i]) \
- : null)
-
- if(futile)
- qdel(src)
- return
-
- // Now is time to move forward
- intensity = intensity_new
- steps += delta_time
-
-/datum/radiation_wave/proc/check_obstructions(list/atoms, index)
- for(var/k in 1 to atoms.len)
- var/atom/thing = atoms[k]
- if(!thing)
- continue
- if (SEND_SIGNAL(thing, COMSIG_ATOM_RAD_WAVE_PASSING, src, index) & COMPONENT_RAD_WAVE_HANDLED)
- continue
- if (thing.rad_insulation != RAD_NO_INSULATION)
- intensity[index] *= thing.rad_insulation
-
-// Returns post-radiation strength power scale of a ray
-// If this proc returns a number lower than 1, it means that the some radiation was spent on contaminating something.
-/datum/radiation_wave/proc/radiate(list/atoms, strength)
- // returning 1 means no radiation was spent on contamination
- . = 1
- var/list/moblist = list()
- var/list/atomlist = list()
- var/contam_strength = strength * (RAD_CONTAMINATION_STR_COEFFICIENT * RAD_CONTAMINATION_BUDGET_SIZE) // The budget for each list
- var/is_contaminating = contam_strength > RAD_COMPONENT_MINIMUM && can_contaminate
- for(var/k in 1 to atoms.len)
- var/atom/thing = atoms[k]
- if(!thing)
- continue
- thing.rad_act(strength)
-
- // This list should only be for types which don't get contaminated but you want to look in their contents
- // If you don't want to look in their contents and you don't want to rad_act them:
- // modify the ignored_things list in __HELPERS/radiation.dm instead
- var/static/list/blacklisted = typecacheof(list(
- /turf,
- /obj/structure/cable,
- /obj/machinery/atmospherics,
- /obj/item/ammo_casing,
- /obj/item/implant,
- /obj/anomaly,
- /obj/eldritch/narsie
- ))
- // Insulating objects won't get contaminated
- if(!is_contaminating || blacklisted[thing.type] || SEND_SIGNAL(thing, COMSIG_ATOM_RAD_CONTAMINATING, strength) & COMPONENT_BLOCK_CONTAMINATION)
- continue
- if(ismob(thing))
- moblist += thing
- else
- atomlist += thing
-
- // We don't randomly choose one from the list since that can result in zero meaningful contamination
-
- if(atomlist.len)
- . -= RAD_CONTAMINATION_BUDGET_SIZE
- var/affordance = min(round(contam_strength / RAD_COMPONENT_MINIMUM), atomlist.len)
- var/contam_strength_divided = contam_strength / affordance
- for(var/k in 1 to affordance)
- var/atom/poor_thing = atomlist[k]
- poor_thing.AddComponent(/datum/component/radioactive, contam_strength_divided, source)
-
- if(moblist.len)
- . -= RAD_CONTAMINATION_BUDGET_SIZE
- var/affordance = min(round(contam_strength / RAD_COMPONENT_MINIMUM), moblist.len)
- var/contam_strength_divided = contam_strength / affordance
- for(var/k in 1 to affordance)
- var/mob/poor_mob = moblist[k]
- poor_mob.AddComponent(/datum/component/radioactive, contam_strength_divided, source)
-
-#undef PRC_FLAG_HL
-#undef PRC_FLAG_L
-#undef PRC_FLAG_HR
-#undef PRC_FLAG_R
-#undef PRC_BEHAVIOR_N
-#undef PRC_BEHAVIOR_NWL
-#undef PRC_BEHAVIOR_NWR
-#undef PRC_BEHAVIOR_L
-#undef PRC_BEHAVIOR_LSTAR
-#undef PRC_BEHAVIOR_R
-#undef PRC_BEHAVIOR_RSTAR
-#undef PRC_BEHAVIOR_D
-#undef PRC_BEHAVIOR_HL
-#undef PRC_BEHAVIOR_HLSTAR
-#undef PRC_BEHAVIOR_HR
-#undef PRC_BEHAVIOR_HRSTAR
diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm
index 8c714e6eda9f0..f4870c0c5126d 100644
--- a/code/datums/weather/weather_types/radiation_storm.dm
+++ b/code/datums/weather/weather_types/radiation_storm.dm
@@ -30,20 +30,28 @@
/datum/weather/rad_storm/weather_act(mob/living/L)
- var/resist = L.getarmor(null, RAD)
- if(prob(40))
- if(ishuman(L))
- var/mob/living/carbon/human/H = L
- if(H.dna && !HAS_TRAIT(H, TRAIT_RADIMMUNE))
- if(prob(max(0,100-resist)))
- H.randmuti()
- if(prob(50))
- if(prob(90))
- H.easy_randmut(NEGATIVE+MINOR_NEGATIVE)
- else
- H.easy_randmut(POSITIVE)
- H.domutcheck()
- L.rad_act(20)
+ if(!prob(40))
+ return
+
+ if(!ishuman(L))
+ return
+
+ var/mob/living/carbon/human/H = L
+ if(!H.dna || HAS_TRAIT(H, TRAIT_GENELESS))
+ return
+
+ if (SSradiation.wearing_rad_protected_clothing(H))
+ return
+
+ H.random_mutate_unique_identity()
+ H.random_mutate_unique_features()
+
+ if(prob(50))
+ if(prob(90))
+ H.easy_random_mutate(NEGATIVE+MINOR_NEGATIVE)
+ else
+ H.easy_random_mutate(POSITIVE)
+ H.domutcheck()
/datum/weather/rad_storm/end()
if(..())
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 0deec87f6c61d..dd0550ee7aaf6 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -944,14 +944,6 @@
if(!SEND_SIGNAL(src, COMSIG_ATOM_SHOULD_EMAG, user))
SEND_SIGNAL(src, COMSIG_ATOM_ON_EMAG, user, hacker)
-/**
- * Respond to a radioactive wave hitting this atom
- *
- * Default behaviour is to send COMSIG_ATOM_RAD_ACT and return
- */
-/atom/proc/rad_act(strength)
- SEND_SIGNAL(src, COMSIG_ATOM_RAD_ACT, strength)
-
/**
* Respond to narsie eating our atom
*
@@ -1247,7 +1239,6 @@
VV_DROPDOWN_OPTION(VV_HK_ADD_REAGENT, "Add Reagent")
VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EMP, "EMP Pulse")
VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EXPLOSION, "Explosion")
- VV_DROPDOWN_OPTION(VV_HK_RADIATE, "Radiate")
VV_DROPDOWN_OPTION(VV_HK_EDIT_FILTERS, "Edit Filters")
VV_DROPDOWN_OPTION(VV_HK_EDIT_COLOR_MATRIX, "Edit Color as Matrix")
VV_DROPDOWN_OPTION(VV_HK_ADD_AI, "Add AI controller")
@@ -1300,11 +1291,6 @@
if(href_list[VV_HK_TRIGGER_EMP] && check_rights(R_FUN))
usr.client.cmd_admin_emp(src)
- if(href_list[VV_HK_RADIATE] && check_rights(R_FUN))
- var/strength = input(usr, "Choose the radiation strength.", "Choose the strength.") as num|null
- if(!isnull(strength))
- AddComponent(/datum/component/radioactive, strength, src)
-
if(href_list[VV_HK_MODIFY_TRANSFORM] && check_rights(R_VAREDIT))
var/result = input(usr, "Choose the transformation to apply","Transform Mod") as null|anything in list("Scale","Translate","Rotate")
var/matrix/M = transform
diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm
index 17334db4e8ded..d1d396154571e 100644
--- a/code/game/machinery/computer/dna_console.dm
+++ b/code/game/machinery/computer/dna_console.dm
@@ -4,16 +4,21 @@
#define JOKER_TIMEOUT 12000 //20 minutes
#define JOKER_UPGRADE 1800
-#define RADIATION_STRENGTH_MAX 15
-#define RADIATION_STRENGTH_MULTIPLIER 1 //larger has more range
+/// Maximum value for genetic damage strength when pulsing enzymes
+#define GENETIC_DAMAGE_STRENGTH_MAX 15
+/// Larger multipliers will affect the range of values when pulsing enzymes
+#define GENETIC_DAMAGE_STRENGTH_MULTIPLIER 1
-#define RADIATION_DURATION_MAX 30
-#define RADIATION_ACCURACY_MULTIPLIER 3 //larger is less accurate
+/// Maximum value for the genetic damage pulse duration when pulsing enzymes
+#define GENETIC_DAMAGE_DURATION_MAX 30
+/// Large values reduce pulse accuracy and may pulse other enzymes than selected
+#define GENETIC_DAMAGE_ACCURACY_MULTIPLIER 3
/// Special status indicating a scanner occupant is transforming eg. from monkey to human
#define STATUS_TRANSFORMING 4
-#define RADIATION_IRRADIATION_MULTIPLIER 1 //multiplier for how much radiation a test subject receives
+/// Multiplier for how much genetic damage received from DNA Console functionality
+#define GENETIC_DAMAGE_IRGENETIC_DAMAGE_MULTIPLIER 1
#define SEARCH_OCCUPANT 1
/// Flag for the mutation ref search system. Search will include console storage
@@ -63,8 +68,10 @@
var/datum/techweb/stored_research
var/max_storage = 6
var/combine
- var/radduration = 2
- var/radstrength = 1
+ /// Duration for enzyme genetic damage pulses
+ var/pulse_duration = 2
+ /// Strength for enzyme genetic damage pulses
+ var/pulse_strength = 1
var/max_chromosomes = 5
///Amount of mutations we can store
var/list/genetic_makeup_buffer[NUMBER_OF_BUFFERS]
@@ -111,9 +118,9 @@
var/list/delayed_action = null
/// Index of the enzyme being modified during delayed enzyme pulse operations
- var/rad_pulse_index = 0
+ var/genetic_damage_pulse_index = 0
/// World time when the enzyme pulse should complete
- COOLDOWN_DECLARE(rad_pulse_timer)
+ COOLDOWN_DECLARE(genetic_damage_pulse_timer)
/// Used for setting tgui data - Whether the connected DNA Scanner is usable
var/can_use_scanner = FALSE
@@ -126,7 +133,7 @@
/// Used for setting tgui data - Whether injectors are ready to be printed
var/is_injector_ready = FALSE
/// Used for setting tgui data - Wheher an enzyme pulse operation is ongoing
- var/is_pulsing_rads = FALSE
+ var/is_pulsing = FALSE
/// Used for setting tgui data - Time until scramble is ready
var/time_to_scramble = 0
/// Used for setting tgui data - Time until joker is ready
@@ -162,10 +169,10 @@
/obj/machinery/computer/scan_consolenew/process()
. = ..()
- // This is for pulsing the UI element with radiation as part of genetic makeup
- // If rad_pulse_index > 0 then it means we're attempting a rad pulse
- if((rad_pulse_index > 0) && !COOLDOWN_FINISHED(src, rad_pulse_timer))
- rad_pulse()
+ // This is for pulsing the UI element with genetic damage as part of genetic makeup
+ // If genetic_damage_pulse_index > 0 then it means we're attempting a pulse
+ if((genetic_damage_pulse_index > 0) && (genetic_damage_pulse_timer <= world.time) && (genetic_damage_pulse_type == GENETIC_DAMAGE_PULSE_UNIQUE_IDENTITY || genetic_damage_pulse_type == GENETIC_DAMAGE_PULSE_UNIQUE_FEATURES))
+ genetic_damage_pulse()
return
/obj/machinery/computer/scan_consolenew/attackby(obj/item/I, mob/user, params)
@@ -305,8 +312,8 @@
is_joker_ready = COOLDOWN_FINISHED(src, joker_cooldown)
time_to_joker = round(COOLDOWN_TIMELEFT(src, joker_cooldown) / 10)
- is_pulsing_rads = ((rad_pulse_index > 0) && !COOLDOWN_FINISHED(src, rad_pulse_timer))
- time_to_pulse = round(COOLDOWN_TIMELEFT(src, rad_pulse_timer) / 10)
+ is_pulsing = ((genetic_damage_pulse_index > 0) && (genetic_damage_pulse_timer > world.time))
+ time_to_pulse = round((genetic_damage_pulse_timer - world.time)/10)
// Attempt to update tgui ui, open and update if needed.
ui = SStgui.try_update_ui(user, src, ui)
@@ -340,10 +347,10 @@
data["scannerOpen"] = connected_scanner.state_open
data["scannerLocked"] = connected_scanner.locked
data["scannerBoltWireCut"] = connected_scanner.wires.is_cut(WIRE_BOLTS)
- data["radStrength"] = radstrength
- data["radDuration"] = radduration
- data["stdDevStr"] = radstrength * RADIATION_STRENGTH_MULTIPLIER
- switch(RADIATION_ACCURACY_MULTIPLIER / (radduration + (connected_scanner.precision_coeff ** 2))) //hardcoded values from a z-table for a normal distribution
+ data["pulseStrength"] = pulse_strength
+ data["pulseDuration"] = pulse_duration
+ data["stdDevStr"] = pulse_strength * GENETIC_DAMAGE_STRENGTH_MULTIPLIER
+ switch(GENETIC_DAMAGE_ACCURACY_MULTIPLIER / (pulse_duration + (connected_scanner.precision_coeff ** 2))) //hardcoded values from a z-table for a normal distribution
if(0 to 0.25)
data["stdDevAcc"] = ">95 %"
if(0.25 to 0.5)
@@ -361,19 +368,18 @@
else
data["subjectStatus"] = scanner_occupant.stat
data["subjectHealth"] = scanner_occupant.health
- data["subjectRads"] = scanner_occupant.radiation/(RAD_MOB_SAFE/100)
data["subjectEnzymes"] = scanner_occupant.dna.unique_enzymes
data["isMonkey"] = ismonkey(scanner_occupant)
data["subjectUNI"] = scanner_occupant.dna.uni_identity
data["storage"]["occupant"] = tgui_occupant_mutations
- //data["subjectMutations"] = tgui_occupant_mutations
+ var/datum/component/genetic_damage/genetic_damage = scanner_occupant.GetComponent(/datum/component/genetic_damage)
+ data["subjectDamage"] = genetic_damage ? round((genetic_damage.total_damage / genetic_damage.minimum_before_damage) * 100, 0.1) : 0
else
data["subjectName"] = null
data["subjectStatus"] = null
data["subjectHealth"] = null
- data["subjectRads"] = null
+ data["subjectDamage"] = null
data["subjectEnzymes"] = null
- //data["subjectMutations"] = null
data["storage"]["occupant"] = null
data["hasDelayedAction"] = (delayed_action != null)
@@ -383,8 +389,8 @@
data["scrambleSeconds"] = time_to_scramble
data["jokerSeconds"] = time_to_joker
data["injectorSeconds"] = time_to_injector
- data["isPulsingRads"] = is_pulsing_rads
- data["radPulseSeconds"] = time_to_pulse
+ data["isPulsing"] = is_pulsing
+ data["timeToPulse"] = time_to_pulse
if(diskette != null)
data["hasDisk"] = TRUE
@@ -466,7 +472,7 @@
scanner_occupant.dna.generate_dna_blocks()
COOLDOWN_START(src, scramble_cooldown, SCRAMBLE_TIMEOUT)
to_chat(usr, "DNA scrambled.")
- scanner_occupant.radiation += RADIATION_STRENGTH_MULTIPLIER * 50 / (connected_scanner.damage_coeff ** 2)
+ scanner_occupant.AddComponent(/datum/component/genetic_damage, GENETIC_DAMAGE_STRENGTH_MULTIPLIER*50/(connected_scanner.damage_coeff ** 2))
return
// Check whether a specific mutation is eligible for discovery within the
@@ -574,10 +580,10 @@
scanner_occupant.dna.default_mutation_genes[path] = defaultseq
// Copy genome to scanner occupant and do some basic mutation checks as
- // we've increased the occupant rads
+ // we've increased the occupant genetic damage
sequence = copytext_char(sequence, 1, genepos) + newgene + copytext_char(sequence, genepos + 1)
scanner_occupant.dna.mutation_index[path] = sequence
- scanner_occupant.radiation += RADIATION_STRENGTH_MULTIPLIER / connected_scanner.damage_coeff
+ scanner_occupant.AddComponent(/datum/component/genetic_damage, GENETIC_DAMAGE_STRENGTH_MULTIPLIER/connected_scanner.damage_coeff)
scanner_occupant.domutcheck()
// GUARD CHECK - Modifying genetics can lead to edge cases where the
@@ -707,7 +713,7 @@
I.name = "DNA activator"
I.research = TRUE
// If there's an operational connected scanner, we can use its upgrades
- // to improve our injector's radiation generation
+ // to improve our injector's genetic damage generation
if(scanner_operational())
I.damage_coeff = connected_scanner.damage_coeff * 4
COOLDOWN_START(src, injector_cooldown, activator_timeout)
@@ -718,7 +724,7 @@
I.desc = "Adds the current mutation on injection, at the cost of genetic stability."
I.doitanyway = TRUE
// If there's an operational connected scanner, we can use its upgrades
- // to improve our injector's radiation generation
+ // to improve our injector's genetic damage generation
if(scanner_operational())
I.damage_coeff = connected_scanner.damage_coeff
COOLDOWN_START(src, injector_cooldown, mutator_timeout)
@@ -1064,7 +1070,7 @@
// later on in code
if("set_pulse_strength")
var/value = round(text2num(params["val"]))
- radstrength = WRAP(value, 1, RADIATION_STRENGTH_MAX+1)
+ pulse_strength = WRAP(value, 1, GENETIC_DAMAGE_STRENGTH_MAX+1)
return
// Sets the Genetic Makeup pulse duration
@@ -1073,7 +1079,7 @@
// later on in code
if("set_pulse_duration")
var/value = round(text2num(params["val"]))
- radduration = WRAP(value, 1, RADIATION_DURATION_MAX+1)
+ pulse_duration = WRAP(value, 1, GENETIC_DAMAGE_DURATION_MAX+1)
return
// Saves Genetic Makeup information to disk
@@ -1235,7 +1241,7 @@
I.fields = list("UI" = buffer_slot["UI"])
// If there is a connected scanner, we can use its upgrades to reduce
- // the radiation generated by this injector
+ // the genetic damage generated by this injector
if(scanner_operational())
I.damage_coeff = connected_scanner.damage_coeff
if("ue")
@@ -1254,7 +1260,7 @@
)
// If there is a connected scanner, we can use its upgrades to reduce
- // the radiation generated by this injector
+ // the genetic damage generated by this injector
if(scanner_operational())
I.damage_coeff = connected_scanner.damage_coeff
if("mixed")
@@ -1274,7 +1280,7 @@
)
// If there is a connected scanner, we can use its upgrades to reduce
- // the radiation generated by this injector
+ // the genetic damage generated by this injector
if(scanner_operational())
I.damage_coeff = connected_scanner.damage_coeff
@@ -1365,12 +1371,12 @@
// Set the appropriate timer and index to pulse. This is then managed
// later on in process()
var/len = length_char(scanner_occupant.dna.uni_identity)
- COOLDOWN_START(src, rad_pulse_timer, radduration * 10)
- rad_pulse_index = WRAP(text2num(params["index"]), 1, len + 1)
+ COOLDOWN_START(src, genetic_damage_pulse_timer, radduration * 10)
+ genetic_damage_pulse_index = WRAP(text2num(params["index"]), 1, len + 1)
START_PROCESSING(SSobj, src)
return
- // Cancels the delayed action - In this context it is not the radiation
+ // Cancels the delayed action - In this context it is not the genetic damage
// pulse from "makeup_pulse", which can not be cancelled. It is instead
// the delayed genetic transfer from "makeup_delay"
if("cancel_delay")
@@ -1451,7 +1457,7 @@
I.name = "Advanced [inj_name] injector"
// If there's an operational connected scanner, we can use its upgrades
- // to improve our injector's radiation generation
+ // to improve our injector's genetic damage generation
if(scanner_operational())
I.damage_coeff = connected_scanner.damage_coeff
COOLDOWN_START(src, injector_cooldown, advanced_timeout)
@@ -1577,9 +1583,9 @@
// necessary occupant guard checks. If you call this code yourself, please
// apply can_modify_occupant() or equivalent checks first.
- // Pre-calc the rad increase since we'll be using it in all the possible
+ // Pre-calc the damage increase since we'll be using it in all the possible
// operations
- var/rad_increase = rand(100 / (connected_scanner.damage_coeff ** 2), 250 / (connected_scanner.damage_coeff ** 2))
+ var/damage_increase = rand(100/(connected_scanner.damage_coeff ** 2),250/(connected_scanner.damage_coeff ** 2))
switch(type)
if("ui")
@@ -1591,7 +1597,7 @@
return FALSE
scanner_occupant.dna.uni_identity = buffer_slot["UI"]
scanner_occupant.updateappearance(mutations_overlay_update = 1)
- scanner_occupant.radiation += rad_increase
+ scanner_occupant.AddComponent(/datum/component/genetic_damage, damage_increase)
scanner_occupant.domutcheck()
return TRUE
if("ue")
@@ -1605,7 +1611,7 @@
scanner_occupant.name = buffer_slot["name"]
scanner_occupant.dna.unique_enzymes = buffer_slot["UE"]
scanner_occupant.dna.blood_type = buffer_slot["blood_type"]
- scanner_occupant.radiation += rad_increase
+ scanner_occupant.AddComponent(/datum/component/genetic_damage, damage_increase)
scanner_occupant.domutcheck()
return TRUE
if("mixed")
@@ -1621,7 +1627,7 @@
scanner_occupant.name = buffer_slot["name"]
scanner_occupant.dna.unique_enzymes = buffer_slot["UE"]
scanner_occupant.dna.blood_type = buffer_slot["blood_type"]
- scanner_occupant.radiation += rad_increase
+ scanner_occupant.AddComponent(/datum/component/genetic_damage, damage_increase)
scanner_occupant.domutcheck()
return TRUE
@@ -1656,7 +1662,7 @@
// DNA Modification:
// requires DNA
// this DNA can not be bad
- // is done via radiation bursts, so radiation immune carbons are not viable
+ // is done via genetic damage bursts, so genetic damage immune carbons are not viable
// And the DNA Scanner itself must have a valid scan level
if(scanner_occupant.has_dna() && !HAS_TRAIT(scanner_occupant, TRAIT_RADIMMUNE) && !HAS_TRAIT(scanner_occupant, TRAIT_BADDNA) || (connected_scanner.scan_level >= 3))
return TRUE
@@ -1697,10 +1703,10 @@
*/
/obj/machinery/computer/scan_consolenew/proc/on_scanner_open()
SIGNAL_HANDLER
- // If we had a radiation pulse action ongoing, we want to stop this.
+ // If we had a genetic damage pulse action ongoing, we want to stop this.
// Imagine it being like a microwave stopping when you open the door.
- rad_pulse_index = 0
- COOLDOWN_RESET(src, rad_pulse_timer)
+ genetic_damage_pulse_index = 0
+ COOLDOWN_RESET(src, genetic_damage_pulse_timer)
STOP_PROCESSING(SSobj, src)
scanner_occupant = null
@@ -2041,11 +2047,11 @@
*
* Arguments:
* * position - Index of the intended enzyme element to pulse
- * * radduration - Duration of intended radiation pulse
+ * * pulse_duration - Duration of intended genetic damage pulse
* * number_of_blocks - Number of individual data blocks in the pulsed enzyme
*/
-/obj/machinery/computer/scan_consolenew/proc/randomize_radiation_accuracy(position, radduration, number_of_blocks)
- var/val = round(gaussian(0, RADIATION_ACCURACY_MULTIPLIER/radduration) + position, 1)
+/obj/machinery/computer/scan_consolenew/proc/randomize_GENETIC_DAMAGE_accuracy(position, pulse_duration, number_of_blocks)
+ var/val = round(gaussian(0, GENETIC_DAMAGE_ACCURACY_MULTIPLIER/pulse_duration) + position, 1)
return WRAP(val, 1, number_of_blocks + 1)
/**
@@ -2055,11 +2061,11 @@
*
* Arguments:
* * input - Enzyme identity element to scramble, expected hex value
- * * rs - Strength of radiation pulse, increases the range of possible outcomes
+ * * rs - Strength of genetic damage pulse, increases the range of possible outcomes
*/
/obj/machinery/computer/scan_consolenew/proc/scramble(input,rs)
var/length = length(input)
- var/ran = gaussian(0, rs * RADIATION_STRENGTH_MULTIPLIER)
+ var/ran = gaussian(0, rs*GENETIC_DAMAGE_STRENGTH_MULTIPLIER)
switch(ran)
if(0)
ran = pick(-1, 1) //hacky, statistically should almost never happen. 0-chance makes people mad though
@@ -2070,29 +2076,29 @@
return num2hex(WRAP(hex2num(input) + ran, 0, 16 ** length), length)
/**
- * Performs the enzyme radiation pulse.
+ * Performs the enzyme genetic damage pulse.
*
* Donor code from previous DNA Console iteration. Called from process() when
- * there is a radiation pulse in progress. Ends processing.
+ * there is a genetic damage pulse in progress. Ends processing.
*/
-/obj/machinery/computer/scan_consolenew/proc/rad_pulse()
+/obj/machinery/computer/scan_consolenew/proc/genetic_damage_pulse()
// GUARD CHECK - Can we genetically modify the occupant? Includes scanner
// operational guard checks.
// If we can't, abort the procedure.
if(!can_modify_occupant())
- rad_pulse_index = 0
+ genetic_damage_pulse_index = 0
STOP_PROCESSING(SSobj, src)
return
var/len = length_char(scanner_occupant.dna.uni_identity)
- var/num = randomize_radiation_accuracy(rad_pulse_index, radduration + (connected_scanner.precision_coeff ** 2), len) //Each manipulator level above 1 makes randomization as accurate as selected time + manipulator lvl^2 //Value is this high for the same reason as with laser - not worth the hassle of upgrading if the bonus is low
+ var/num = randomize_GENETIC_DAMAGE_accuracy(genetic_damage_pulse_index, pulse_duration + (connected_scanner.precision_coeff ** 2), len) //Each manipulator level above 1 makes randomization as accurate as selected time + manipulator lvl^2 //Value is this high for the same reason as with laser - not worth the hassle of upgrading if the bonus is low
var/hex = copytext_char(scanner_occupant.dna.uni_identity, num, num + 1)
- hex = scramble(hex, radstrength, radduration)
+ hex = scramble(hex, pulse_strength, pulse_duration)
scanner_occupant.dna.uni_identity = copytext_char(scanner_occupant.dna.uni_identity, 1, num) + hex + copytext_char(scanner_occupant.dna.uni_identity, num + 1)
scanner_occupant.updateappearance(mutations_overlay_update = 1)
- rad_pulse_index = 0
+ genetic_damage_pulse_index = 0
STOP_PROCESSING(SSobj, src)
return
@@ -2161,13 +2167,13 @@
#undef JOKER_TIMEOUT
#undef JOKER_UPGRADE
-#undef RADIATION_STRENGTH_MAX
-#undef RADIATION_STRENGTH_MULTIPLIER
+#undef GENETIC_DAMAGE_STRENGTH_MAX
+#undef GENETIC_DAMAGE_STRENGTH_MULTIPLIER
-#undef RADIATION_DURATION_MAX
-#undef RADIATION_ACCURACY_MULTIPLIER
+#undef GENETIC_DAMAGE_DURATION_MAX
+#undef GENETIC_DAMAGE_ACCURACY_MULTIPLIER
-#undef RADIATION_IRRADIATION_MULTIPLIER
+#undef GENETIC_DAMAGE_IRGENETIC_DAMAGE_MULTIPLIER
#undef STATUS_TRANSFORMING
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index c946c241ddef8..991af6fb71d6c 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -101,9 +101,6 @@
var/prying_so_hard = FALSE
var/protected_door = FALSE // Protects the door against any form of power outage, AI control, screwdrivers and welders.
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
- rad_insulation = RAD_MEDIUM_INSULATION
-
var/electrification_timing // Set to true while electrified_loop is running, to prevent multiple being started
network_id = NETWORK_DOOR_AIRLOCKS
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index c205806191deb..fcbea0496338d 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -206,7 +206,7 @@
..()
/obj/machinery/door/airlock/uranium/proc/radiate()
- radiation_pulse(get_turf(src), 150)
+ radiation_pulse(src, max_range = 2, threshold = RAD_LIGHT_INSULATION, chance = URANIUM_IRRADIATION_CHANCE, minimum_exposure_time = URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME)
return
/obj/machinery/door/airlock/uranium/glass
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index cb3b618366e5e..356ba3c32c981 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -421,7 +421,7 @@
toasted = TRUE
if(mob_occupant)
visible_message("[src]'s door creaks open with a loud whining noise. A foul stench and a cloud of smoke exit the chamber.")
- mob_occupant.radiation = 0 //The guy inside is toasted to a crisp, no need to leave him with the rads
+ qdel(mob_occupant.GetComponent(/datum/component/irradiated)) //The guy inside is toasted to a crisp, no need to leave him with the rads
else
visible_message("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber.")
playsound(src, 'sound/machines/airlock_alien_prying.ogg', 50, TRUE)
@@ -438,7 +438,7 @@
if(!toasted) //Special toast check to prevent a double finishing message.
if(mob_occupant)
visible_message("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.")
- mob_occupant.radiation = 0
+ qdel(mob_occupant.GetComponent(/datum/component/irradiated))
else
visible_message("[src]'s door slides open. The glowing yellow lights dim to a gentle green.")
toasted = FALSE
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index f703c91d3107c..7701a86ebdf25 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -86,8 +86,6 @@
log_game("[M] ([key_name(M)]) was turned into a fly person")
to_chat(M, "You hear a buzzing in your ears.")
human.set_species(/datum/species/fly)
-
- human.apply_effect((rand(160 - accuracy * 40, 240 - accuracy * 60)), EFFECT_IRRADIATE, 0)
calibrated = 0
return
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index c433e287215ad..31a3580e0d093 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -1,9 +1,3 @@
-#define RAD_LEVEL_NORMAL 9
-#define RAD_LEVEL_MODERATE 100
-#define RAD_LEVEL_HIGH 400
-#define RAD_LEVEL_VERY_HIGH 800
-#define RAD_LEVEL_CRITICAL 1500
-
/obj/item/geiger_counter //DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis
name = "\improper Geiger counter"
desc = "A handheld device used for detecting and measuring radiation pulses."
@@ -17,187 +11,102 @@
slot_flags = ITEM_SLOT_BELT
custom_materials = list(/datum/material/iron = 150, /datum/material/glass = 150)
- var/grace = RAD_GEIGER_GRACE_PERIOD
- var/datum/looping_sound/geiger/soundloop
+ var/last_perceived_radiation_danger = null
var/scanning = FALSE
- var/radiation_count = 0
- var/current_tick_amount = 0
- var/last_tick_amount = 0
- var/fail_to_receive = 0
- var/current_warning = 1
/obj/item/geiger_counter/Initialize(mapload)
. = ..()
- START_PROCESSING(SSobj, src)
-
- soundloop = new(src, FALSE)
-
-/obj/item/geiger_counter/Destroy()
- QDEL_NULL(soundloop)
- STOP_PROCESSING(SSobj, src)
- return ..()
-
-/obj/item/geiger_counter/process(delta_time)
- if(scanning)
- radiation_count = LPFILTER(radiation_count, current_tick_amount, delta_time, RAD_GEIGER_RC)
-
- if(current_tick_amount)
- grace = RAD_GEIGER_GRACE_PERIOD
- last_tick_amount = current_tick_amount
-
- else if(!(obj_flags & EMAGGED))
- grace -= delta_time
- if(grace <= 0)
- radiation_count = 0
-
- current_tick_amount = 0
-
- update_icon()
- update_sound()
+ RegisterSignal(src, COMSIG_IN_RANGE_OF_IRRADIATION, .proc/on_pre_potential_irradiation)
/obj/item/geiger_counter/examine(mob/user)
. = ..()
if(!scanning)
return
. += "Alt-click it to clear stored radiation levels."
- if(obj_flags & EMAGGED)
- . += "The display seems to be incomprehensible."
- return
- switch(radiation_count)
- if(-INFINITY to RAD_LEVEL_NORMAL)
+ switch(last_perceived_radiation_danger)
+ if(null)
. += "Ambient radiation level count reports that all is well."
- if(RAD_LEVEL_NORMAL + 1 to RAD_LEVEL_MODERATE)
+ if(PERCEIVED_RADIATION_DANGER_LOW)
. += "Ambient radiation levels slightly above average."
- if(RAD_LEVEL_MODERATE + 1 to RAD_LEVEL_HIGH)
+ if(PERCEIVED_RADIATION_DANGER_MEDIUM)
. += "Ambient radiation levels above average."
- if(RAD_LEVEL_HIGH + 1 to RAD_LEVEL_VERY_HIGH)
+ if(PERCEIVED_RADIATION_DANGER_HIGH)
. += "Ambient radiation levels highly above average."
- if(RAD_LEVEL_VERY_HIGH + 1 to RAD_LEVEL_CRITICAL)
- . += "Ambient radiation levels nearing critical level."
- if(RAD_LEVEL_CRITICAL + 1 to INFINITY)
+ if(PERCEIVED_RADIATION_DANGER_EXTREME)
. += "Ambient radiation levels above critical level!"
- . += "The last radiation amount detected was [last_tick_amount]"
-
/obj/item/geiger_counter/update_icon_state()
if(!scanning)
icon_state = "geiger_off"
return ..()
- else if(obj_flags & EMAGGED)
- icon_state = "geiger_on_emag"
- return ..()
- switch(radiation_count)
- if(-INFINITY to RAD_LEVEL_NORMAL)
+ switch(last_perceived_radiation_danger)
+ if(null)
icon_state = "geiger_on_1"
- if(RAD_LEVEL_NORMAL + 1 to RAD_LEVEL_MODERATE)
+ if(PERCEIVED_RADIATION_DANGER_LOW)
icon_state = "geiger_on_2"
- if(RAD_LEVEL_MODERATE + 1 to RAD_LEVEL_HIGH)
+ if(PERCEIVED_RADIATION_DANGER_MEDIUM)
icon_state = "geiger_on_3"
- if(RAD_LEVEL_HIGH + 1 to RAD_LEVEL_VERY_HIGH)
- icon_state = "geiger_on_4"
- if(RAD_LEVEL_VERY_HIGH + 1 to RAD_LEVEL_CRITICAL)
+ if(PERCEIVED_RADIATION_DANGER_HIGH)
icon_state = "geiger_on_4"
- if(RAD_LEVEL_CRITICAL + 1 to INFINITY)
+ if(PERCEIVED_RADIATION_DANGER_EXTREME)
icon_state = "geiger_on_5"
return ..()
-/obj/item/geiger_counter/proc/update_sound()
- var/datum/looping_sound/geiger/loop = soundloop
- if(!scanning)
- loop.stop()
- return
- if(!radiation_count)
- loop.stop()
- return
- loop.last_radiation = radiation_count
- loop.start()
-
-/obj/item/geiger_counter/rad_act(amount)
- . = ..()
- if(amount <= RAD_BACKGROUND_RADIATION || !scanning)
- return
- current_tick_amount += amount
- update_icon()
-
/obj/item/geiger_counter/attack_self(mob/user)
scanning = !scanning
+ if (scanning)
+ AddComponent(/datum/component/geiger_sound)
+ else
+ qdel(GetComponent(/datum/component/geiger_sound))
update_icon()
to_chat(user, "[icon2html(src, user)] You switch [scanning ? "on" : "off"] [src].")
-/obj/item/geiger_counter/afterattack(atom/target, mob/user)
+/obj/item/geiger_counter/afterattack(atom/target, mob/living/user, params)
. = ..()
- if(user.a_intent == INTENT_HELP)
- if(!(obj_flags & EMAGGED))
- user.visible_message("[user] scans [target] with [src].", "You scan [target]'s radiation levels with [src]...")
- addtimer(CALLBACK(src, PROC_REF(scan), target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents
- else
- user.visible_message("[user] scans [target] with [src].", "You project [src]'s stored radiation into [target]!")
- target.rad_act(radiation_count)
- radiation_count = 0
- return TRUE
-
-/obj/item/geiger_counter/proc/scan(atom/A, mob/user)
- var/rad_strength = 0
- for(var/i in get_rad_contents(A)) // Yes it's intentional that you can't detect radioactive things under rad protection. Gives traitors a way to hide their glowing green rocks.
- var/atom/thing = i
- if(!thing)
- continue
- var/datum/component/radioactive/radiation = thing.GetComponent(/datum/component/radioactive)
- if(radiation)
- rad_strength += radiation.strength
-
- if(isliving(A))
- var/mob/living/M = A
- if(!M.radiation)
- to_chat(user, "[icon2html(src, user)] Radiation levels within normal boundaries.")
- else
- to_chat(user, "[icon2html(src, user)] Subject is irradiated. Radiation levels: [M.radiation].")
-
- if(rad_strength)
- to_chat(user, "[icon2html(src, user)] Target contains radioactive contamination. Radioactive strength: [rad_strength]")
- else
- to_chat(user, "[icon2html(src, user)] Target is free of radioactive contamination.")
-
-/obj/item/geiger_counter/attackby(obj/item/I, mob/user, params)
- if(I.tool_behaviour == TOOL_SCREWDRIVER && (obj_flags & EMAGGED))
- if(scanning)
- to_chat(user, "Turn off [src] before you perform this action!")
- return 0
- user.visible_message("[user] unscrews [src]'s maintenance panel and begins fiddling with its innards...", "You begin resetting [src]...")
- if(!I.use_tool(src, user, 40, volume=50))
- return 0
- user.visible_message("[user] refastens [src]'s maintenance panel!", "You reset [src] to its factory settings!")
- obj_flags &= ~EMAGGED
- radiation_count = 0
+ if (!CAN_IRRADIATE(target))
+ return
+ user.visible_message("[user] scans [target] with [src].", "You scan [target]'s radiation levels with [src]...")
+ addtimer(CALLBACK(src, PROC_REF(scan), target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents
+ return TRUE
+
+/obj/item/geiger_counter/equipped(mob/user, slot, initial)
+ . = ..()
+ RegisterSignal(user, COMSIG_IN_RANGE_OF_IRRADIATION, PROC_REF(on_pre_potential_irradiation))
+
+/obj/item/geiger_counter/dropped(mob/user, silent = FALSE)
+ . = ..()
+ UnregisterSignal(user, COMSIG_IN_RANGE_OF_IRRADIATION)
+
+/obj/item/geiger_counter/proc/on_pre_potential_irradiation(datum/source, datum/radiation_pulse_information/pulse_information, insulation_to_target)
+ SIGNAL_HANDLER
+ last_perceived_radiation_danger = get_perceived_radiation_danger(pulse_information, insulation_to_target)
+ addtimer(CALLBACK(src, PROC_REF(reset_perceived_danger)), TIME_WITHOUT_RADIATION_BEFORE_RESET, TIMER_UNIQUE | TIMER_OVERRIDE)
+ if(scanning)
update_icon()
- return 1
- else
- return ..()
+
+/obj/item/geiger_counter/proc/reset_perceived_danger()
+ last_perceived_radiation_danger = null
+ if (scanning)
+ update_icon()
+
+/obj/item/geiger_counter/proc/scan(atom/target, mob/user)
+ if (SEND_SIGNAL(target, COMSIG_GEIGER_COUNTER_SCAN, user, src) & COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL)
+ return
+ to_chat(user, "[icon2html(src, user)] [isliving(target) ? "Subject" : "Target"] is free of radioactive contamination.")
/obj/item/geiger_counter/AltClick(mob/living/user)
- if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
- return ..()
+ . = ..()
+ (mob/living/user)
if(!scanning)
to_chat(usr, "[src] must be on to reset its radiation level!")
- return 0
- radiation_count = 0
+ return FALSE
to_chat(usr, "You flush [src]'s radiation counts, resetting it to normal.")
+ last_perceived_radiation_danger = null
update_icon()
-
-/obj/item/geiger_counter/should_emag(mob/user)
- if(!..())
- return FALSE
- if(scanning)
- to_chat(user, "Turn off \the [src] before you perform this action!")
- return FALSE
return TRUE
-/obj/item/geiger_counter/on_emag(mob/user)
- ..()
- to_chat(user, "You override [src]'s radiation storing protocols. It will now generate small doses of radiation, and stored rads are now projected into creatures you scan.")
-
/obj/item/geiger_counter/cyborg
var/mob/listeningTo
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index d702c879b1213..6f972025c2d51 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -216,6 +216,8 @@ GENE SCANNER
message += "Analyzing results for [M]:\n\tOverall status: [mob_status]"
+ SEND_SIGNAL(M, COMSIG_LIVING_HEALTHSCAN, message, advanced, user, mode)
+
// Damage descriptions
if(brute_loss > 10)
message += "\t[brute_loss > 50 ? "Severe" : "Minor"] tissue damage detected."
@@ -256,10 +258,8 @@ GENE SCANNER
if(advanced)
message += "\tBrain Activity Level: [(200 - M.getOrganLoss(ORGAN_SLOT_BRAIN))/2]%."
- if(M.radiation)
- message += "\tSubject is irradiated."
- if(advanced)
- message += "\tRadiation Level: [M.radiation]%."
+ if(HAS_TRAIT(M, TRAIT_IRRADIATED))
+ render_list += "Subject is irradiated. Supply toxin healing.\n"
if(advanced && M.hallucinating())
message += "\tSubject is hallucinating."
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index 9b98b13ad763e..651f0acd9e694 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -95,7 +95,6 @@ effective or pretty fucking useless.
if(M)
if(intensity >= 5)
M.apply_effect(round(intensity/0.075), EFFECT_UNCONSCIOUS)
- M.rad_act(intensity*10)
else
to_chat(user, "The radioactive microlaser is still recharging.")
diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm
index df204a488435e..b8affd406bb89 100644
--- a/code/game/objects/items/dna_injector.dm
+++ b/code/game/objects/items/dna_injector.dm
@@ -22,7 +22,6 @@
/obj/item/dnainjector/proc/inject(mob/living/carbon/M, mob/user)
if(M.has_dna() && !HAS_TRAIT(M, TRAIT_RADIMMUNE) && !HAS_TRAIT(M, TRAIT_BADDNA))
- M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2))
var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]"
for(var/HM in remove_mutations)
M.dna.remove_mutation(HM)
@@ -500,7 +499,6 @@
return FALSE
if(M.has_dna() && !(HAS_TRAIT(M, TRAIT_BADDNA)))
- M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2))
var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]"
var/endtime = world.time+duration
for(var/mutation in remove_mutations)
@@ -562,7 +560,6 @@
/obj/item/dnainjector/activator/inject(mob/living/carbon/M, mob/user)
if(M.has_dna() && !HAS_TRAIT(M, TRAIT_RADIMMUNE) && !HAS_TRAIT(M, TRAIT_BADDNA))
- M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2))
var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]"
for(var/mutation in add_mutations)
var/datum/mutation/HM = mutation
diff --git a/code/game/objects/items/grenades/syndieminibomb.dm b/code/game/objects/items/grenades/syndieminibomb.dm
index 4fb86a51ea9b5..531fa9bef638b 100644
--- a/code/game/objects/items/grenades/syndieminibomb.dm
+++ b/code/game/objects/items/grenades/syndieminibomb.dm
@@ -53,8 +53,9 @@
icon = 'icons/obj/grenade.dmi'
icon_state = "bluefrag"
item_state = "flashbang"
+ var/rad_range = 4
+ var/rad_threshold = RAD_EXTREME_INSULATION
var/freeze_range = 4
- var/rad_damage = 350
var/stamina_damage = 30
/obj/item/grenade/gluon/prime(mob/living/lanced_by)
@@ -63,7 +64,7 @@
return
update_mob()
playsound(loc, 'sound/effects/empulse.ogg', 50, 1)
- radiation_pulse(src, rad_damage)
+ radiation_pulse(src, max_range = rad_range, threshold = rad_threshold, chance = 100)
for(var/turf/open/floor/F in view(freeze_range,loc))
F.MakeSlippery(TURF_WET_PERMAFROST, 6 MINUTES)
for(var/mob/living/carbon/L in F)
diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm
index 46838cd44f9aa..62b626933a41c 100644
--- a/code/game/objects/items/religion.dm
+++ b/code/game/objects/items/religion.dm
@@ -184,7 +184,7 @@
inspiration_available = FALSE
/obj/item/banner/engineering/special_inspiration(mob/living/carbon/human/H)
- H.radiation = 0
+ qdel(H.GetComponent(/datum/component/irradiated))
/datum/crafting_recipe/engineering_banner
name = "Engitopia Banner"
diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm
index fed6580a6761b..bd761697e62ac 100644
--- a/code/game/objects/items/storage/bags.dm
+++ b/code/game/objects/items/storage/bags.dm
@@ -137,7 +137,6 @@
/obj/item/storage/bag/ore/ComponentInitialize()
. = ..()
- AddComponent(/datum/component/rad_insulation, 0.05) //please datum mats no more cancer
var/datum/component/storage/concrete/stack/STR = GetComponent(/datum/component/storage/concrete/stack)
STR.allow_quick_empty = TRUE
STR.can_hold = typecacheof(list(/obj/item/stack/ore))
diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm
index 4e579bfddd7b9..f8368c4104cfd 100644
--- a/code/game/objects/items/theft_tools.dm
+++ b/code/game/objects/items/theft_tools.dm
@@ -34,7 +34,7 @@
if(cooldown < world.time - 60)
cooldown = world.time
flick(pulseicon, src)
- radiation_pulse(src, 400, 2)
+ radiation_pulse(src, max_range = 2, threshold = RAD_EXTREME_INSULATION)
/obj/item/nuke_core/suicide_act(mob/living/user)
user.visible_message("[user] is rubbing [src] against [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -147,7 +147,7 @@
return
else
to_chat(user, "As it touches \the [src], both \the [src] and \the [W] burst into dust!")
- radiation_pulse(user, 100)
+ radiation_pulse(user, max_range = 2, threshold = RAD_EXTREME_INSULATION, chance = 40)
playsound(src, 'sound/effects/supermatter.ogg', 50, 1)
qdel(W)
qdel(src)
@@ -160,7 +160,7 @@
user.visible_message("[victim] reaches out and tries to pick up [src]. [victim.p_their()] body starts to glow and bursts into flames before flashing into dust!",\
"You reach for [src] with your hands. That was dumb.",\
"Everything suddenly goes silent.")
- radiation_pulse(user, 500, 2)
+ radiation_pulse(user, max_range = 2, threshold = RAD_EXTREME_INSULATION, chance = 40)
playsound(get_turf(user), 'sound/effects/supermatter.ogg', 50, 1)
victim.investigate_log("has been dusted by [src].", INVESTIGATE_DEATHS)
victim.dust()
@@ -264,7 +264,7 @@
"Everything suddenly goes silent.")
user.investigate_log("has been dusted by [src].", INVESTIGATE_DEATHS)
user.dust()
- radiation_pulse(src, 500, 2)
+ radiation_pulse(src, max_range = 2, threshold = RAD_EXTREME_INSULATION, chance = 40)
playsound(src, 'sound/effects/supermatter.ogg', 50, 1)
QDEL_NULL(sliver)
update_icon()
diff --git a/code/game/objects/items/tools/wirebrush.dm b/code/game/objects/items/tools/wirebrush.dm
index 9b05d50cbb5bd..a2a59e4648a17 100644
--- a/code/game/objects/items/tools/wirebrush.dm
+++ b/code/game/objects/items/tools/wirebrush.dm
@@ -10,49 +10,3 @@
tool_behaviour = TOOL_RUSTSCRAPER
toolspeed = 1
-/**
- * An advanced form of the wirebrush that trades the safety of the user for instant rust removal.
- * If the person using this is unlucky they are going to die painfully.
- */
-/obj/item/wirebrush/advanced
- name = "advanced wirebrush"
- desc = "An advanced wirebrush; uses radiation to almost instantly liquify rust."
- icon_state = "wirebrush_adv"
- toolspeed = 0.1
-
- /// The amount of radiation to give to the user of this tool; regardless of what they did with it.
- var/radiation_on_use = 20
-
- /// How likely is a critical fail?
- var/crit_fail_prob = 1
-
- /// The amount of radiation to give to the user if they roll the worst effects. Negative numbers will heal radiation instead!
- var/crit_fail_rads = 50
-
- /// The amount of damage to take in BOTH Tox and Oxy on critical fail
- var/crit_fail_damage = 15
-
- /// We only apply damage and force vomit if the user has OVER this many rads
- var/crit_fail_rads_threshold = 300
-
-/obj/item/wirebrush/advanced/examine(mob/user)
- . = ..()
- . += "There is a warning label that indicates extended use of [src] may result in loss of hair, yellowing skin, and death."
-
-/obj/item/wirebrush/advanced/proc/irradiate(mob/living/user)
- if(!istype(user))
- return
-
- if(prob(crit_fail_prob))
- to_chat(user, "You feel a sharp pain as your entire body grows oddly warm.")
- user.radiation += crit_fail_rads
- if(user.radiation > crit_fail_rads_threshold) // If you ignore the warning signs you get punished
- user.emote("vomit")
- user.adjustToxLoss(crit_fail_damage, forced=TRUE)
- user.adjustOxyLoss(crit_fail_damage, forced=TRUE)
- return
-
- user.radiation += radiation_on_use
-
- if(prob(25))
- user.emote("cough")
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index b2613c87ab729..b4551394ec20a 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -310,8 +310,8 @@
rad = text2num(result["values"][RAD]),\
fire = text2num(result["values"][FIRE]),\
acid = text2num(result["values"][ACID]))
- log_admin("[key_name(usr)] modified the armor on [src] ([type]) to melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser], energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], rad: [armor.rad], fire: [armor.fire], acid: [armor.acid]")
- message_admins("[key_name_admin(usr)] modified the armor on [src] ([type]) to melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser], energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], rad: [armor.rad], fire: [armor.fire], acid: [armor.acid]")
+ log_admin("[key_name(usr)] modified the armor on [src] ([type]) to melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser], energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], fire: [armor.fire], acid: [armor.acid]")
+ message_admins("[key_name_admin(usr)] modified the armor on [src] ([type]) to melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser], energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], fire: [armor.fire], acid: [armor.acid]")
if(href_list[VV_HK_MASS_DEL_TYPE])
if(check_rights(R_DEBUG|R_SERVER))
var/action_type = alert("Strict type ([type]) or type and all subtypes?",,"Strict type","Type and subtypes","Cancel")
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index deaa9387817f0..cd1f5e8e39810 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -17,8 +17,6 @@
max_integrity = 100
can_be_unanchored = FALSE
CanAtmosPass = ATMOS_PASS_DENSITY
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
- rad_insulation = RAD_MEDIUM_INSULATION
var/mineral = /obj/item/stack/sheet/iron
var/mineral_amount = 2
var/walltype = /turf/closed/wall
@@ -189,7 +187,7 @@
if(!active)
if(world.time > last_event+15)
active = 1
- radiation_pulse(src, 150)
+ radiation_pulse(src, max_range = 2, threshold = RAD_LIGHT_INSULATION, chance = URANIUM_IRRADIATION_CHANCE, minimum_exposure_time = URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME)
for(var/turf/closed/wall/mineral/uranium/T in (RANGE_TURFS(1,src)-src))
T.radiate()
last_event = world.time
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index c1f0df23f3199..6f33b8ff20e1f 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -10,8 +10,6 @@
var/girderpasschance = 20 // percentage chance that a projectile passes through the girder.
var/can_displace = TRUE //If the girder can be moved around by wrenching it
max_integrity = 200
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
- rad_insulation = RAD_VERY_LIGHT_INSULATION
/obj/structure/girder/examine(mob/user)
. = ..()
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 32c34df0d9fea..cb3b0bb996e1d 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -19,7 +19,6 @@
var/rods_type = /obj/item/stack/rods
var/rods_amount = 2
var/rods_broken = TRUE
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
FASTDMM_PROP(\
pipe_astar_cost = 1\
)
diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm
index afa56ecde9fbf..de43b1a8ca7dd 100644
--- a/code/game/objects/structures/holosign.dm
+++ b/code/game/objects/structures/holosign.dm
@@ -82,8 +82,6 @@
/obj/structure/holosign/barrier/engineering
icon_state = "holosign_engi"
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
- rad_insulation = RAD_LIGHT_INSULATION
/obj/structure/holosign/barrier/atmos
name = "holofirelock"
@@ -93,8 +91,6 @@
anchored = TRUE
CanAtmosPass = ATMOS_PASS_NO
alpha = 150
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
- rad_insulation = RAD_LIGHT_INSULATION
/obj/structure/holosign/barrier/atmos/robust
name = "holo blast door"
diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm
index c7f1eacf3dc4d..9f7e762b252e5 100644
--- a/code/game/objects/structures/mineral_doors.dm
+++ b/code/game/objects/structures/mineral_doors.dm
@@ -13,8 +13,6 @@
max_integrity = 200
armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 10, BIO = 100, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
CanAtmosPass = ATMOS_PASS_DENSITY
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
- rad_insulation = RAD_MEDIUM_INSULATION
var/door_opened = FALSE //if it's open or not.
var/isSwitchingStates = FALSE //don't try to change stats if we're already opening
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index 63fb24346264a..9d512e12e576c 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -133,8 +133,7 @@
INVOKE_ASYNC(src, PROC_REF(wash_atom), AM)
/obj/machinery/shower/proc/wash_atom(atom/A)
- A.wash(CLEAN_RAD | CLEAN_TYPE_WEAK) // Clean radiation non-instantly
- A.wash(CLEAN_WASH)
+ A.wash(CLEAN_RAD | CLEAN_WASH)
SEND_SIGNAL(A, COMSIG_ADD_MOOD_EVENT, "shower", /datum/mood_event/nice_shower)
reagents.reaction(A, TOUCH, reaction_volume)
diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm
index 43d3d6adec9d7..c26461d991570 100644
--- a/code/game/objects/structures/signs/_signs.dm
+++ b/code/game/objects/structures/signs/_signs.dm
@@ -7,7 +7,6 @@
max_integrity = 100
armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50, STAMINA = 0, BLEED = 0)
var/buildable_sign = 1 //unwrenchable and modifiable
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/structure/sign/basic
name = "blank sign"
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index badcea1ce0b35..164cc76c37723 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -12,8 +12,6 @@
resistance_flags = ACID_PROOF
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100, STAMINA = 0, BLEED = 0)
CanAtmosPass = ATMOS_PASS_PROC
- rad_insulation = RAD_VERY_LIGHT_INSULATION
- rad_flags = RAD_PROTECT_CONTENTS
pass_flags_self = PASSTRANSPARENT
z_flags = Z_BLOCK_IN_DOWN | Z_BLOCK_IN_UP
var/ini_dir = null
diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm
index 739d65c64f941..1851f7e011fa5 100644
--- a/code/game/turfs/closed/_closed.dm
+++ b/code/game/turfs/closed/_closed.dm
@@ -3,8 +3,6 @@
opacity = TRUE
density = TRUE
init_air = FALSE
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
- rad_insulation = RAD_MEDIUM_INSULATION
pass_flags_self = PASSCLOSEDTURF
/turf/closed/Initialize(mapload)
diff --git a/code/game/turfs/closed/wall/mineral_walls.dm b/code/game/turfs/closed/wall/mineral_walls.dm
index 6dcd409cc3e94..c032ac07b5926 100644
--- a/code/game/turfs/closed/wall/mineral_walls.dm
+++ b/code/game/turfs/closed/wall/mineral_walls.dm
@@ -110,7 +110,7 @@
if(!active)
if(world.time > last_event+15)
active = 1
- radiation_pulse(src, 40)
+ radiation_pulse(src, max_range = 3, threshold = RAD_LIGHT_INSULATION, chance = URANIUM_IRRADIATION_CHANCE, minimum_exposure_time = URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME)
for(var/turf/closed/wall/mineral/uranium/T in (RANGE_TURFS(1,src)-src))
T.radiate()
last_event = world.time
diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm
index 9f33454d776b7..6978a63ddabc5 100644
--- a/code/game/turfs/open/_open.dm
+++ b/code/game/turfs/open/_open.dm
@@ -278,14 +278,6 @@
/turf/open/proc/ClearWet()//Nuclear option of immediately removing slipperyness from the tile instead of the natural drying over time
qdel(GetComponent(/datum/component/wet_floor))
-/turf/open/rad_act(pulse_strength)
- . = ..()
- if (air.get_moles(GAS_CO2) && air.get_moles(GAS_O2))
- pulse_strength = min(pulse_strength,air.get_moles(GAS_CO2)*1000,air.get_moles(GAS_O2)*2000) //Ensures matter is conserved properly
- air.set_moles(GAS_CO2, max(air.get_moles(GAS_CO2)-(pulse_strength/1000),0))
- air.set_moles(GAS_O2, max(air.get_moles(GAS_O2)-(pulse_strength/2000),0))
- air.adjust_moles(GAS_PLUOXIUM, pulse_strength/4000)
-
/turf/open/proc/break_tile(force, allow_base)
LAZYINITLIST(damage_overlays)
var/list/options = list()
diff --git a/code/game/turfs/open/floor/mineral_floor.dm b/code/game/turfs/open/floor/mineral_floor.dm
index 99d133c7ed1f8..d5fdd018e40d0 100644
--- a/code/game/turfs/open/floor/mineral_floor.dm
+++ b/code/game/turfs/open/floor/mineral_floor.dm
@@ -278,7 +278,7 @@
if(!active)
if(world.time > last_event+15)
active = 1
- radiation_pulse(src, 10)
+ radiation_pulse(src, max_range = 1, threshold = RAD_VERY_LIGHT_INSULATION, chance = (URANIUM_IRRADIATION_CHANCE / 3), minimum_exposure_time = URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME)
for(var/turf/open/floor/mineral/uranium/T in (RANGE_TURFS(1,src)-src))
T.radiate()
last_event = world.time
diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm
index 23e7c52f50a80..16ef2b0df09f8 100644
--- a/code/modules/atmospherics/gasmixtures/reactions.dm
+++ b/code/modules/atmospherics/gasmixtures/reactions.dm
@@ -143,7 +143,7 @@
/proc/radiation_burn(turf/open/location, energy_released)
if(istype(location) && prob(10))
- radiation_pulse(location, energy_released/TRITIUM_BURN_RADIOACTIVITY_FACTOR)
+ radiation_pulse(location, max_range = energy_released/TRITIUM_BURN_RADIOACTIVITY_FACTOR, threshold = RAD_MEDIUM_INSULATION, chance = (DEFAULT_RADIATION_CHANCE / 3))
/datum/gas_reaction/tritfire/react(datum/gas_mixture/air, datum/holder)
var/energy_released = 0
@@ -167,7 +167,7 @@
if(burned_fuel)
energy_released += (FIRE_HYDROGEN_ENERGY_RELEASED * burned_fuel)
if(location && prob(10) && burned_fuel > TRITIUM_MINIMUM_RADIATION_ENERGY) //woah there let's not crash the server
- radiation_pulse(location, energy_released/TRITIUM_BURN_RADIOACTIVITY_FACTOR)
+ radiation_burn(location, energy_released/TRITIUM_BURN_RADIOACTIVITY_FACTOR)
//oxygen+more-or-less hydrogen=H2O
air.adjust_moles(GAS_H2O, burned_fuel )// Yogs -- Conservation of Mass
@@ -426,7 +426,7 @@
var/standard_energy = 400 * air.get_moles(GAS_PLASMA) * air.return_temperature() //Prevents putting meaningless waste gases to achieve high rads.
if(prob(PERCENT(((PARTICLE_CHANCE_CONSTANT)/(reaction_energy-PARTICLE_CHANCE_CONSTANT)) + 1))) //Asymptopically approaches 100% as the energy of the reaction goes up.
location.fire_nuclear_particle(customize = TRUE, custompower = standard_energy)
- radiation_pulse(location, max(2000 * 3 ** (log(10,standard_energy) - FUSION_RAD_MIDPOINT), 0))
+ radiation_burn(location, max(2000 * 3 ** (log(10,standard_energy) - FUSION_RAD_MIDPOINT), 0))
var/new_heat_capacity = air.heat_capacity()
if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
air.set_temperature(clamp(thermal_energy/new_heat_capacity, TCMB, INFINITY))
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 723509ef40772..9df32f00946a3 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -333,7 +333,7 @@
compare_to = thing
break
var/list/readout = list("PROTECTION CLASSES")
- if(armor.bio || armor.bomb || armor.bullet || armor.energy || armor.laser || armor.melee || armor.rad || armor.stamina || armor.bleed)
+ if(armor.bio || armor.bomb || armor.bullet || armor.energy || armor.laser || armor.melee || armor.stamina || armor.bleed)
readout += " ARMOR (I-X)"
if(armor.bio || compare_to?.armor?.bio)
readout += " TOXIN [armor_to_protection_class(armor.bio, compare_to?.armor?.bio)]"
@@ -347,8 +347,6 @@
readout += " LASER [armor_to_protection_class(armor.laser, compare_to?.armor?.laser)]"
if(armor.melee || compare_to?.armor?.melee)
readout += " MELEE [armor_to_protection_class(armor.melee, compare_to?.armor?.melee)]"
- if(armor.rad || compare_to?.armor?.rad)
- readout += " RADIATION [armor_to_protection_class(armor.rad, compare_to?.armor?.rad)]"
if(armor.stamina || compare_to?.armor?.stamina)
readout += " STAMINA [armor_to_protection_class(armor.stamina, compare_to?.armor?.stamina)]"
if(armor.bleed || compare_to?.armor?.bleed)
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index 35f4c2a09b928..f9e8a078c43c2 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -3,7 +3,6 @@
#define MODE_NONE ""
#define MODE_MESON "meson"
#define MODE_TRAY "t-ray"
-#define MODE_RAD "radiation"
#define MODE_SHUTTLE "shuttle"
/obj/item/clothing/glasses/meson/engine
@@ -18,7 +17,7 @@
lighting_alpha = null
invis_view = SEE_INVISIBLE_LIVING
- var/list/modes = list(MODE_NONE = MODE_MESON, MODE_MESON = MODE_TRAY, MODE_TRAY = MODE_RAD, MODE_RAD = MODE_NONE)
+ var/list/modes = list(MODE_NONE = MODE_MESON, MODE_MESON = MODE_TRAY, MODE_TRAY = MODE_NONE)
var/mode = MODE_NONE
var/range = 1
@@ -66,35 +65,9 @@
switch(mode)
if(MODE_TRAY)
t_ray_scan(user, 16, range)
- if(MODE_RAD)
- show_rads()
if(MODE_SHUTTLE)
show_shuttle()
-/obj/item/clothing/glasses/meson/engine/proc/show_rads()
- var/mob/living/carbon/human/user = loc
- var/list/rad_places = list()
- for(var/datum/component/radioactive/thing in SSradiation.processing)
- var/atom/owner = thing.parent
- var/turf/place = get_turf(owner)
- if(rad_places[place])
- rad_places[place] += thing.strength
- else
- rad_places[place] = thing.strength
-
- for(var/i in rad_places)
- var/turf/place = i
- if(get_dist(user, place) >= range*5) //Rads are easier to see than wires under the floor
- continue
- var/strength = round(rad_places[i] / 1000, 0.1)
- var/image/pic = image(loc = place)
- var/mutable_appearance/MA = new()
- MA.maptext = MAPTEXT("[strength]k")
- MA.color = "#04e66d"
- MA.plane = TEXT_EFFECT_PLANE
- pic.appearance = MA
- flick_overlay(pic, list(user.client), 10)
-
/obj/item/clothing/glasses/meson/engine/proc/show_shuttle()
var/mob/living/carbon/human/user = loc
var/obj/docking_port/mobile/port = SSshuttle.get_containing_shuttle(user)
@@ -145,5 +118,4 @@
#undef MODE_NONE
#undef MODE_MESON
#undef MODE_TRAY
-#undef MODE_RAD
#undef MODE_SHUTTLE
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index 3d4a536936264..55864ad770af7 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -137,7 +137,6 @@
strip_delay = 60
equip_delay_other = 60
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
- rad_flags = RAD_PROTECT_CONTENTS
/obj/item/clothing/suit/utility/radiation
name = "radiation suit"
@@ -155,7 +154,6 @@
strip_delay = 60
equip_delay_other = 60
flags_inv = HIDEJUMPSUIT
- rad_flags = RAD_PROTECT_CONTENTS
/obj/item/clothing/suit/utility/radiation/ComponentInitialize()
. = ..()
diff --git a/code/modules/mining/satchel_ore_box.dm b/code/modules/mining/satchel_ore_box.dm
index 1a74da52873b1..9d3636c7ce74d 100644
--- a/code/modules/mining/satchel_ore_box.dm
+++ b/code/modules/mining/satchel_ore_box.dm
@@ -26,10 +26,6 @@
else
return ..()
-/obj/structure/ore_box/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/rad_insulation, 0.01) //please datum mats no more cancer
-
/obj/structure/ore_box/crowbar_act(mob/living/user, obj/item/I)
if(I.use_tool(src, user, 50, volume=50))
user.visible_message("[user] pries \the [src] apart.",
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 090928d713575..ae1b2bbb5a53d 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -549,7 +549,6 @@
if(prob(current_size * 5) && hand.w_class >= ((11-current_size)/2) && dropItemToGround(hand))
step_towards(hand, src)
to_chat(src, "\The [S] pulls \the [hand] from your grip!")
- rad_act(current_size * 3)
/mob/living/carbon/human/proc/do_cpr(mob/living/carbon/C)
CHECK_DNA_AND_SPECIES(C)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 71bb4a23a6177..faec4f53c0de8 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -72,10 +72,6 @@
SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "brain_damage")
return ..()
-/mob/living/carbon/human/handle_mutations_and_radiation()
- if(!dna || !dna.species.handle_mutations_and_radiation(src))
- ..()
-
/mob/living/carbon/human/breathe()
if(!dna.species.breathe(src))
..()
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index c87e661c05e05..e9eb55093bc08 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -12,7 +12,6 @@
possible_a_intents = list(INTENT_HELP, INTENT_HARM)
mob_biotypes = list(MOB_ROBOTIC)
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
deathsound = 'sound/voice/borg_deathsound.ogg'
speech_span = SPAN_ROBOT
var/datum/ai_laws/laws = null//Now... THEY ALL CAN ALL HAVE LAWS
diff --git a/code/modules/modular_computers/file_system/programs/phys_scanner.dm b/code/modules/modular_computers/file_system/programs/phys_scanner.dm
index d98c8d71917f8..4305332478cc5 100644
--- a/code/modules/modular_computers/file_system/programs/phys_scanner.dm
+++ b/code/modules/modular_computers/file_system/programs/phys_scanner.dm
@@ -24,8 +24,6 @@
reads += "Reagent"
if(mode_holder & DISK_MED)
reads += "Health"
- if(mode_holder & DISK_POWER)
- reads += "Radiation"
if(mode_holder & DISK_ATMOS)
reads += "Gas"
if(!length(reads))
@@ -64,16 +62,6 @@
user.visible_message("[user] analyzes [carbon]'s vitals.", "You analyze [carbon]'s vitals.")
last_record = healthscan(user, carbon, 1, to_chat = FALSE)
return FALSE
- if(DISK_POWER)
- var/mob/living/carbon/carbon = target
- if(istype(carbon))
- user.visible_message("[user] analyzes [carbon]'s radiation levels.", "You analyze [carbon]'s radiation levels.")
- last_record = "Analyzing Results for [carbon]:\n"
- if(carbon.radiation)
- last_record += "Radiation Level: [carbon.radiation]%"
- else
- last_record += "No radiation detected."
- return FALSE
return ..()
/datum/computer_file/program/phys_scanner/attack_obj(obj/target, mob/living/user)
@@ -98,8 +86,6 @@
current_mode = DISK_CHEM
if("Health")
current_mode = DISK_MED
- if("Radiation")
- current_mode = DISK_POWER
if("Gas")
current_mode = DISK_ATMOS
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index c38ccc49a781d..2662845dc91bc 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -56,7 +56,7 @@
M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1)
M.setCloneLoss(0, 0)
M.setOxyLoss(0, 0)
- M.radiation = 0
+ qdel(M.GetComponent(/datum/component/irradiated))
M.heal_bodypart_damage(5,5)
M.adjustToxLoss(-5, 0, TRUE)
M.hallucination = 0
diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm
index 24a9bfe49b3cf..581bf912c5915 100644
--- a/code/modules/recycling/disposal/pipe.dm
+++ b/code/modules/recycling/disposal/pipe.dm
@@ -11,7 +11,6 @@
max_integrity = 200
armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 90, ACID = 30, STAMINA = 0, BLEED = 0)
layer = DISPOSAL_PIPE_LAYER // slightly lower than wires and other pipes
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
var/dpdir = NONE // bitmask of pipe directions
var/initialize_dirs = NONE // bitflags of pipe directions added on init, see \code\_DEFINES\pipe_construction.dm
var/flip_type // If set, the pipe is flippable and becomes this type when flipped
From 4a79a65c43741fb4c9c698603056318a3adc798e Mon Sep 17 00:00:00 2001
From: XeonMations
Date: Fri, 6 Sep 2024 06:55:59 +0300
Subject: [PATCH 04/42] hhhhh
---
.../objects/items/devices/geiger_counter.dm | 28 -------
code/modules/antagonists/revenant/revenant.dm | 3 -
.../mob/living/carbon/human/species.dm | 25 ++++---
.../carbon/human/species_types/golems.dm | 2 +-
code/modules/mob/living/carbon/life.dm | 71 +++++++++---------
code/modules/mob/living/carbon/monkey/life.dm | 31 --------
code/modules/mob/living/damage_procs.dm | 6 +-
code/modules/mob/living/life.dm | 5 +-
code/modules/mob/living/living.dm | 16 ----
code/modules/mob/living/living_defense.dm | 2 -
code/modules/mob/living/living_defines.dm | 1 -
.../mob/living/silicon/robot/robot_modules.dm | 1 -
code/modules/power/gravitygenerator.dm | 75 +++++++++++--------
code/modules/power/rtg.dm | 5 --
code/modules/projectiles/projectile.dm | 2 +-
15 files changed, 96 insertions(+), 177 deletions(-)
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index 31a3580e0d093..3751e54295a09 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -107,34 +107,6 @@
update_icon()
return TRUE
-/obj/item/geiger_counter/cyborg
- var/mob/listeningTo
-
-/obj/item/geiger_counter/cyborg/cyborg_unequip(mob/user)
- if(!scanning)
- return
- scanning = FALSE
- update_icon()
-
-/obj/item/geiger_counter/cyborg/equipped(mob/user)
- . = ..()
- if(listeningTo == user)
- return
- if(listeningTo)
- UnregisterSignal(listeningTo, COMSIG_ATOM_RAD_ACT)
- RegisterSignal(user, COMSIG_ATOM_RAD_ACT, PROC_REF(redirect_rad_act))
- listeningTo = user
-
-/obj/item/geiger_counter/cyborg/proc/redirect_rad_act(datum/source, amount)
- SIGNAL_HANDLER
-
- rad_act(amount)
-
-/obj/item/geiger_counter/cyborg/dropped()
- ..()
- if(listeningTo)
- UnregisterSignal(listeningTo, COMSIG_ATOM_RAD_ACT)
-
#undef RAD_LEVEL_NORMAL
#undef RAD_LEVEL_MODERATE
#undef RAD_LEVEL_HIGH
diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm
index b6e68b0a9167e..3939d23832130 100644
--- a/code/modules/antagonists/revenant/revenant.dm
+++ b/code/modules/antagonists/revenant/revenant.dm
@@ -227,9 +227,6 @@
return BULLET_ACT_FORCE_PIERCE
return ..()
-/mob/living/simple_animal/revenant/rad_act(amount)
- return
-
//damage, gibbing, and dying
/mob/living/simple_animal/revenant/attackby(obj/item/W, mob/living/user, params)
. = ..()
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 923ccb3a61634..bc3b30905b78c 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1490,31 +1490,32 @@ GLOBAL_LIST_EMPTY(features_by_species)
/datum/species/proc/update_health_hud(mob/living/carbon/human/H)
return 0
-/datum/species/proc/handle_mutations_and_radiation(mob/living/carbon/human/H)
- . = FALSE
- var/radiation = H.radiation
-
- if(HAS_TRAIT(H, TRAIT_RADIMMUNE))
- radiation = 0
- return TRUE
-
- if(radiation > RAD_MOB_KNOCKDOWN && prob(RAD_MOB_KNOCKDOWN_PROB))
+/**
+ * Species based handling for irradiation
+ *
+ * Arguments:
+ * - [source][/mob/living/carbon/human]: The mob requesting handling
+ * - time_since_irradiated: The amount of time since the mob was first irradiated
+ * - delta_time: The amount of time that has passed since the last tick
+ */
+/datum/species/proc/handle_radiation(mob/living/carbon/human/source, time_since_irradiated, delta_time)
+ if(time_since_irradiated > RAD_MOB_KNOCKDOWN && DT_PROB(RAD_MOB_KNOCKDOWN_PROB, delta_time))
if(!H.IsParalyzed())
H.emote("collapse")
H.Paralyze(RAD_MOB_KNOCKDOWN_AMOUNT)
to_chat(H, "You feel weak.")
- if(radiation > RAD_MOB_VOMIT && prob(RAD_MOB_VOMIT_PROB))
+ if(time_since_irradiated > RAD_MOB_VOMIT && prob(RAD_MOB_VOMIT_PROB))
H.vomit(10, TRUE)
- if(radiation > RAD_MOB_MUTATE)
+ if(time_since_irradiated > RAD_MOB_MUTATE)
if(prob(1))
to_chat(H, "You mutate!")
H.easy_randmut(NEGATIVE+MINOR_NEGATIVE)
H.emote("gasp")
H.domutcheck()
- if(radiation > RAD_MOB_HAIRLOSS)
+ if(time_since_irradiated > RAD_MOB_HAIRLOSS)
if(prob(15) && !(H.hair_style == "Bald") && (HAIR in species_traits) && !HAS_TRAIT(H, TRAIT_NOHAIRLOSS))
to_chat(H, "Your hair starts to fall out in clumps.")
addtimer(CALLBACK(src, PROC_REF(go_bald), H), 50)
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 21bcb156c3068..da26f5a5a6b18 100644
--- a/code/modules/mob/living/carbon/human/species_types/golems.dm
+++ b/code/modules/mob/living/carbon/human/species_types/golems.dm
@@ -373,7 +373,7 @@
if(!active)
if(world.time > last_event+30)
active = 1
- radiation_pulse(H, 50)
+ radiation_pulse(H, max_range = 1, threshold = RAD_VERY_LIGHT_INSULATION, chance = 3)
last_event = world.time
active = null
..()
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index 7ad738ff2a83a..2d0eb59211d37 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -257,11 +257,6 @@
else if(bz_partialpressure > 0.01)
hallucination += 5
- //TRITIUM
- if(breath.get_moles(GAS_TRITIUM))
- var/tritium_partialpressure = (breath.get_moles(GAS_TRITIUM)/breath.total_moles())*breath_pressure
- radiation += tritium_partialpressure/10
-
//NITRYL
if(breath.get_moles(GAS_NITRYL))
var/nitryl_partialpressure = (breath.get_moles(GAS_NITRYL)/breath.total_moles())*breath_pressure
@@ -333,38 +328,42 @@
if(stat != DEAD || D.process_dead)
D.stage_act()
-/mob/living/carbon/handle_mutations_and_radiation()
- if(dna && dna.temporary_mutations.len)
- for(var/mut in dna.temporary_mutations)
- if(dna.temporary_mutations[mut] < world.time)
- if(mut == UI_CHANGED)
- if(dna.previous["UI"])
- dna.uni_identity = merge_text(dna.uni_identity,dna.previous["UI"])
- updateappearance(mutations_overlay_update=1)
- dna.previous.Remove("UI")
- dna.temporary_mutations.Remove(mut)
- continue
- if(mut == UE_CHANGED)
- if(dna.previous["name"])
- real_name = dna.previous["name"]
- name = real_name
- dna.previous.Remove("name")
- if(dna.previous["UE"])
- dna.unique_enzymes = dna.previous["UE"]
- dna.previous.Remove("UE")
- if(dna.previous["blood_type"])
- dna.blood_type = dna.previous["blood_type"]
- dna.previous.Remove("blood_type")
- dna.temporary_mutations.Remove(mut)
- continue
- for(var/datum/mutation/HM as() in dna.mutations)
- if(HM?.timed)
- dna.remove_mutation(HM.type)
-
- radiation -= min(radiation, RAD_LOSS_PER_TICK)
- if(radiation > RAD_MOB_SAFE)
- adjustToxLoss(log(radiation-RAD_MOB_SAFE)*RAD_TOX_COEFFICIENT)
+/mob/living/carbon/handle_mutations(time_since_irradiated, delta_time, times_fired)
+ if(!dna?.temporary_mutations.len)
+ return
+ for(var/mut in dna.temporary_mutations)
+ if(dna.temporary_mutations[mut] < world.time)
+ if(mut == UI_CHANGED)
+ if(dna.previous["UI"])
+ dna.unique_identity = merge_text(dna.unique_identity,dna.previous["UI"])
+ updateappearance(mutations_overlay_update=1)
+ dna.previous.Remove("UI")
+ dna.temporary_mutations.Remove(mut)
+ continue
+ if(mut == UF_CHANGED)
+ if(dna.previous["UF"])
+ dna.unique_features = merge_text(dna.unique_features,dna.previous["UF"])
+ updateappearance(mutcolor_update=1, mutations_overlay_update=1)
+ dna.previous.Remove("UF")
+ dna.temporary_mutations.Remove(mut)
+ continue
+ if(mut == UE_CHANGED)
+ if(dna.previous["name"])
+ real_name = dna.previous["name"]
+ name = real_name
+ dna.previous.Remove("name")
+ if(dna.previous["UE"])
+ dna.unique_enzymes = dna.previous["UE"]
+ dna.previous.Remove("UE")
+ if(dna.previous["blood_type"])
+ dna.blood_type = dna.previous["blood_type"]
+ dna.previous.Remove("blood_type")
+ dna.temporary_mutations.Remove(mut)
+ continue
+ for(var/datum/mutation/human/HM in dna.mutations)
+ if(HM?.timed)
+ dna.remove_mutation(HM.type)
/*
Alcohol Poisoning Chart
diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm
index 752f12d8cfb1c..999662a592c71 100644
--- a/code/modules/mob/living/carbon/monkey/life.dm
+++ b/code/modules/mob/living/carbon/monkey/life.dm
@@ -1,36 +1,5 @@
/mob/living/carbon/monkey
-/mob/living/carbon/monkey/handle_mutations_and_radiation()
- if(radiation)
- if(radiation > RAD_MOB_KNOCKDOWN && prob(RAD_MOB_KNOCKDOWN_PROB))
- if(!IsParalyzed())
- emote("collapse")
- Paralyze(RAD_MOB_KNOCKDOWN_AMOUNT)
- to_chat(src, "You feel weak.")
- if(radiation > RAD_MOB_MUTATE)
- if(prob(2))
- to_chat(src, "You mutate!")
- easy_randmut(NEGATIVE+MINOR_NEGATIVE)
- emote("gasp")
- domutcheck()
-
- if(radiation > RAD_MOB_MUTATE * 1.5)
- switch(rand(1, 3))
- if(1)
- gorillize()
- if(2)
- humanize(TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG | TR_KEEPDAMAGE | TR_KEEPORGANS)
- if(3)
- var/obj/item/bodypart/BP = pick(bodyparts)
- if(BP.body_part != HEAD && BP.body_part != CHEST)
- if(BP.dismemberable)
- BP.dismember()
- take_bodypart_damage(100, 0, 0)
- return
- if(radiation > RAD_MOB_VOMIT && prob(RAD_MOB_VOMIT_PROB))
- vomit(10, TRUE)
- return ..()
-
/mob/living/carbon/monkey/handle_breath_temperature(datum/gas_mixture/breath)
if(abs(get_body_temp_normal() - breath.return_temperature()) > 50)
switch(breath.return_temperature())
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index 33b6207fb00a7..9f412fe11f272 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -96,8 +96,6 @@
Immobilize(effect * hit_percent)
if(EFFECT_UNCONSCIOUS)
Unconscious(effect * hit_percent)
- if(EFFECT_IRRADIATE)
- radiation += max(effect * hit_percent, 0)
if(EFFECT_SLUR)
slurring = max(slurring,(effect * hit_percent))
if(EFFECT_STUTTER)
@@ -113,7 +111,7 @@
return 1
-/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, paralyze = 0, immobilize = 0)
+/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, paralyze = 0, immobilize = 0)
if(blocked >= 100)
return BULLET_ACT_BLOCK
if(stun)
@@ -126,8 +124,6 @@
apply_effect(paralyze, EFFECT_PARALYZE, blocked)
if(immobilize)
apply_effect(immobilize, EFFECT_IMMOBILIZE, blocked)
- if(irradiate)
- apply_effect(irradiate, EFFECT_IRRADIATE, blocked)
if(slur)
apply_effect(slur, EFFECT_SLUR, blocked)
if(stutter)
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index b98d460e29a1f..aef47ba35afac 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -16,7 +16,7 @@
if(stat != DEAD)
//Mutations and radiation
- handle_mutations_and_radiation()
+ handle_mutations(delta_time, times_fired)
if(stat != DEAD)
//Breathing, if applicable
@@ -62,8 +62,7 @@
SEND_SIGNAL(src, COMSIG_LIVING_HANDLE_BREATHING, SSMOBS_DT, times_fired) //Bee edit: Holy shit I do not want to port delta time Life() refactor just for my mothroach behavior to be better
return
-/mob/living/proc/handle_mutations_and_radiation()
- radiation = 0 //so radiation don't accumulate in simple animals
+/mob/living/proc/handle_mutations(delta_time, times_fired)
return
/mob/living/proc/handle_diseases()
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index cf15ae9ef633e..fc110f00be59e 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -706,7 +706,6 @@
SetImmobilized(0, FALSE)
SetParalyzed(0, FALSE)
SetSleeping(0, FALSE)
- radiation = 0
set_nutrition(NUTRITION_LEVEL_FED + 50)
bodytemperature = get_body_temp_normal(apply_change=FALSE)
set_blindness(0)
@@ -1150,21 +1149,6 @@
for(var/holopara in holoparasites())
to_chat(holopara, "Your summoner has changed form!")
-/mob/living/rad_act(amount)
- . = ..()
-
- if(!amount || (amount < RAD_MOB_SKIN_PROTECTION) || HAS_TRAIT(src, TRAIT_RADIMMUNE))
- return
-
- amount -= RAD_BACKGROUND_RADIATION // This will always be at least 1 because of how skin protection is calculated
-
- var/blocked = getarmor(null, RAD)
-
- if(amount > RAD_BURN_THRESHOLD)
- apply_damage((amount-RAD_BURN_THRESHOLD)/RAD_BURN_THRESHOLD, BURN, null, blocked)
-
- apply_effect((amount*RAD_MOB_COEFFICIENT)/max(1, (radiation**2)*RAD_OVERDOSE_REDUCTION), EFFECT_IRRADIATE, blocked)
-
/mob/living/anti_magic_check(magic = TRUE, holy = FALSE, major = TRUE, self = FALSE)
. = ..()
if(.)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 3e02d5a4e4875..995738327d0e3 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -349,8 +349,6 @@
return
..()
-//Looking for irradiate()? It's been moved to radiation.dm under the rad_act() for mobs.
-
/mob/living/acid_act(acidpwr, acid_volume)
take_bodypart_damage(acidpwr * min(1, acid_volume * 0.1))
return 1
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index b8c67e9328cfe..aed77dca1ced9 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -134,7 +134,6 @@
var/can_be_held = FALSE //whether this can be picked up and held.
var/worn_slot_flags = NONE //if it can be held, can it be equipped to any slots? (think pAI's on head)
- var/radiation = 0 //If the mob is irradiated.
var/ventcrawl_layer = PIPING_LAYER_DEFAULT
var/losebreath = 0
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 7030ffef05079..c3c9c014f0bf6 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -316,7 +316,6 @@
/obj/item/multitool/cyborg,
/obj/item/t_scanner,
/obj/item/analyzer,
- /obj/item/geiger_counter/cyborg,
/obj/item/assembly/signaler/cyborg,
/obj/item/areaeditor/blueprints/cyborg,
/obj/item/electroadaptive_pseudocircuit,
diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm
index 3efa5dc72c48b..d24467970232d 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -26,6 +26,9 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
move_resist = INFINITY
use_power = NO_POWER_USE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
+
+ var/datum/proximity_monitor/advanced/gravity/gravity_field
+
var/sprite_number = 0
var/ztrait //Set to a valid ZTRAIT define to have the gravgen provide gravity to all of the zlevels with said trait. Ex: ZTRAIT_STATION
@@ -139,6 +142,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
O.main_part = null
if(!QDESTROYING(O))
qdel(O)
+ QDEL_NULL(gravity_field)
return ..()
/obj/machinery/gravity_generator/main/proc/setup_parts()
@@ -173,7 +177,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
charge_count = 0
breaker = 0
set_power()
- set_state(0)
+ disable()
investigate_log("has broken down.", INVESTIGATE_GRAVITY)
/obj/machinery/gravity_generator/main/set_fix()
@@ -290,30 +294,44 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
investigate_log("is now [charging_state == POWER_UP ? "charging" : "discharging"].", INVESTIGATE_GRAVITY)
update_appearance()
-// Set the state of the gravity.
-/obj/machinery/gravity_generator/main/proc/set_state(new_state)
+/obj/machinery/gravity_generator/main/proc/enable()
charging_state = POWER_IDLE
- on = new_state
- use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE
- // Sound the alert if gravity was just enabled or disabled.
- var/alert = FALSE
- if(SSticker.IsRoundInProgress())
- if(on) // 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.", INVESTIGATE_GRAVITY)
- message_admins("The gravity generator was brought online [ADMIN_VERBOSEJMP(src)]")
- else
- if(gravity_in_level() == 1)
- alert = 1
- investigate_log("was brought offline and there is now no gravity for this level.", INVESTIGATE_GRAVITY)
- message_admins("The gravity generator was brought offline with no backup generator. [ADMIN_VERBOSEJMP(src)]")
+ on = TRUE
+ update_use_power(ACTIVE_POWER_USE)
+
+ if (!SSticker.IsRoundInProgress())
+ return
+
+ soundloop.start()
+ if (!gravity_in_level())
+ investigate_log("was brought online and is now producing gravity for this level.", INVESTIGATE_GRAVITY)
+ message_admins("The gravity generator was brought online [ADMIN_VERBOSEJMP(src)]")
+ shake_everyone()
+ gravity_field = make_field(/datum/proximity_monitor/advanced/gravity, list("current_range" = 2, "host" = src, "gravity_value" = 6))
+
+ complete_state_update()
+
+/obj/machinery/gravity_generator/main/proc/disable()
+ charging_state = POWER_IDLE
+ on = FALSE
+ update_use_power(IDLE_POWER_USE)
+
+ if (!SSticker.IsRoundInProgress())
+ return
+
+ soundloop.stop()
+ if (gravity_in_level())
+ investigate_log("was brought offline and there is now no gravity for this level.", INVESTIGATE_GRAVITY)
+ message_admins("The gravity generator was brought offline with no backup generator. [ADMIN_VERBOSEJMP(src)]")
+ shake_everyone()
+ QDEL_NULL(gravity_field)
+ complete_state_update()
+
+/obj/machinery/gravity_generator/main/proc/complete_state_update()
update_appearance()
update_list()
- ui_update()
- if(alert)
- shake_everyone()
+ updateUsrDialog()
// Charge/Discharge and turn on/off gravity when you reach 0/100 percent.
// Also emit radiation and handle the overlays.
@@ -322,9 +340,9 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
return
if(charging_state != POWER_IDLE)
if(charging_state == POWER_UP && charge_count >= 100)
- set_state(1)
+ enable()
else if(charging_state == POWER_DOWN && charge_count <= 0)
- set_state(0)
+ disable()
else
if(charging_state == POWER_UP)
charge_count += 2
@@ -334,9 +352,6 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
if(charge_count % 4 == 0 && prob(75)) // Let them know it is charging/discharging.
playsound(src.loc, 'sound/effects/empulse.ogg', 100, 1)
- if(prob(25)) // To help stop "Your clothes feel warm." spam.
- pulse_radiation()
-
var/overlay_state = null
switch(charge_count)
if(0 to 20)
@@ -357,10 +372,6 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
middle.add_overlay(overlay_state)
current_overlay = overlay_state
-
-/obj/machinery/gravity_generator/main/proc/pulse_radiation()
- radiation_pulse(src, 200)
-
// Shake everyone on the z level to let them know that gravity was enagaged/disenagaged.
/obj/machinery/gravity_generator/main/proc/shake_everyone()
var/turf/T = get_turf(src)
@@ -411,8 +422,8 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
name = "paper- 'Generate your own gravity!'"
default_raw_text = {"
Gravity Generator Instructions For Dummies
Surprisingly, gravity isn't that hard to make! All you have to do is inject deadly radioactive minerals into a ball of
- energy and you have yourself gravity! You can turn the machine on or off when required but you must remember that the generator
- will EMIT RADIATION when charging or discharging, you can tell it is charging or discharging by the noise it makes, so please WEAR PROTECTIVE CLOTHING.
+ energy and you have yourself gravity! You can turn the machine on or off when required.
+ The generator produces a very harmful amount of gravity when enabled, so don't stay close for too long.
It blew up!
Don't panic! The gravity generator was designed to be easily repaired. If, somehow, the sturdy framework did not survive then
diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm
index efae8a5f0f977..4f27887fd4bdb 100644
--- a/code/modules/power/rtg.dm
+++ b/code/modules/power/rtg.dm
@@ -17,8 +17,6 @@
var/power_gen = 1000 // Enough to power a single APC. 4000 output with T4 capacitor.
- var/irradiate = TRUE // RTGs irradiate surroundings, but only when panel is open.
-
/obj/machinery/power/rtg/Initialize(mapload)
. = ..()
connect_to_network()
@@ -26,8 +24,6 @@
/obj/machinery/power/rtg/process()
..()
add_avail(power_gen)
- if(panel_open && irradiate)
- radiation_pulse(src, 60)
/obj/machinery/power/rtg/RefreshParts()
var/part_level = 0
@@ -63,7 +59,6 @@
desc = "An alien power source that produces energy seemingly out of nowhere."
circuit = /obj/item/circuitboard/machine/abductor/core
power_gen = 20000 // 280 000 at T1, 400 000 at T4. Starts at T4.
- irradiate = FALSE // Green energy!
can_buckle = FALSE
pixel_y = 7
var/going_kaboom = FALSE // Is it about to explode?
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 42b7bc6dfc2b9..f1ee75c92e7c0 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -288,7 +288,7 @@
else
L.log_message("has been shot by [firer] with [src]", LOG_ATTACK, color="orange")
- return L.apply_effects(stun, knockdown, unconscious, irradiate, slur, stutter, eyeblur, drowsy, blocked, stamina, jitter, paralyze, immobilize)
+ return L.apply_effects(stun, knockdown, unconscious, slur, stutter, eyeblur, drowsy, blocked, stamina, jitter, paralyze, immobilize)
/obj/projectile/proc/vol_by_damage()
if(src.damage)
From 56820fbd3b6d9d16126851e7a58c38ba8615a1f1 Mon Sep 17 00:00:00 2001
From: XeonMations
Date: Fri, 6 Sep 2024 07:17:07 +0300
Subject: [PATCH 05/42] engineering is going to fucking kill me for this
---
beestation.dme | 3 +-
.../carbon/human/species_types/podpeople.dm | 2 +-
code/modules/power/singularity/collector.dm | 251 ------------------
code/modules/power/supermatter/supermatter.dm | 20 +-
.../supermatter/supermatter_delamination.dm | 4 +-
.../supermatter/supermatter_radiation.dm | 57 ++++
.../projectiles/guns/energy/energy_gun.dm | 4 +-
code/modules/projectiles/projectile.dm | 1 -
code/modules/projectiles/projectile/beams.dm | 1 -
.../projectiles/projectile/energy/misc.dm | 12 +-
.../projectile/energy/nuclear_particle.dm | 7 +-
.../chemistry/reagents/alcohol_reagents.dm | 13 +-
.../chemistry/reagents/medicine_reagents.dm | 26 +-
code/modules/recycling/disposal/bin.dm | 1 -
code/modules/recycling/disposal/holder.dm | 1 -
code/modules/recycling/disposal/outlet.dm | 1 -
16 files changed, 119 insertions(+), 285 deletions(-)
delete mode 100644 code/modules/power/singularity/collector.dm
create mode 100644 code/modules/power/supermatter/supermatter_radiation.dm
diff --git a/beestation.dme b/beestation.dme
index 37800fc8047a9..7829a9ad6717d 100644
--- a/beestation.dme
+++ b/beestation.dme
@@ -547,7 +547,6 @@
#include "code\datums\position_point_vector.dm"
#include "code\datums\profiling.dm"
#include "code\datums\progressbar.dm"
-#include "code\datums\radiation_wave.dm"
#include "code\datums\recipe.dm"
#include "code\datums\ref.dm"
#include "code\datums\ruins.dm"
@@ -3518,7 +3517,6 @@
#include "code\modules\power\lighting\light_wallframes.dm"
#include "code\modules\power\singularity\anomaly.dm"
#include "code\modules\power\singularity\boh_tear.dm"
-#include "code\modules\power\singularity\collector.dm"
#include "code\modules\power\singularity\containment_field.dm"
#include "code\modules\power\singularity\emitter.dm"
#include "code\modules\power\singularity\field_generator.dm"
@@ -3529,6 +3527,7 @@
#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm"
#include "code\modules\power\supermatter\supermatter.dm"
#include "code\modules\power\supermatter\supermatter_delamination.dm"
+#include "code\modules\power\supermatter\supermatter_radiation.dm"
#include "code\modules\power\tesla\coil.dm"
#include "code\modules\power\tesla\energy_ball.dm"
#include "code\modules\power\tesla\generator.dm"
diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm
index c0d55d51c3204..8e43ad7054c3b 100644
--- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm
@@ -54,7 +54,7 @@
switch(P.type)
if(/obj/projectile/energy/floramut)
if(prob(15))
- H.rad_act(rand(30,80))
+ H.adjustToxLoss(rand(3, 6))
H.Paralyze(100)
H.visible_message("[H] writhes in pain as [H.p_their()] vacuoles boil.", "You writhe in pain as your vacuoles boil!", "You hear the crunching of leaves.")
if(prob(80))
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
deleted file mode 100644
index 572611781c3dd..0000000000000
--- a/code/modules/power/singularity/collector.dm
+++ /dev/null
@@ -1,251 +0,0 @@
-// stored_energy += (pulse_strength-RAD_COLLECTOR_EFFICIENCY)*RAD_COLLECTOR_COEFFICIENT
-#define RAD_COLLECTOR_EFFICIENCY 80 // radiation needs to be over this amount to get power
-#define RAD_COLLECTOR_COEFFICIENT 100
-#define RAD_COLLECTOR_STORED_OUT 0.04 // (this*100)% of stored power outputted per tick. Doesn't actualy change output total, lower numbers just means collectors output for longer in absence of a source
-#define RAD_COLLECTOR_MINING_CONVERSION_RATE 0.0001 //This is gonna need a lot of tweaking to get right. This is the number used to calculate the conversion of watts to research points per process()
-#define RAD_COLLECTOR_OUTPUT min(stored_energy, (stored_energy*RAD_COLLECTOR_STORED_OUT)+1000) //Produces at least 1000 watts if it has more than that stored
-
-
-/obj/machinery/power/rad_collector
- name = "Radiation Collector Array"
- desc = "A device which uses Hawking Radiation and plasma to produce power."
- icon = 'icons/obj/singularity.dmi'
- icon_state = "ca"
- anchored = FALSE
- density = TRUE
- req_access = list(ACCESS_ENGINE_EQUIP)
-// use_power = NO_POWER_USE
- max_integrity = 350
- integrity_failure = 0.2
- circuit = /obj/item/circuitboard/machine/rad_collector
- rad_insulation = RAD_EXTREME_INSULATION
- var/obj/item/tank/internals/plasma/loaded_tank = null
- var/stored_energy = 0
- var/active = 0
- var/locked = FALSE
- var/drainratio = 0.5
- var/powerproduction_drain = 0.01
- var/bitcoinproduction_drain = 0.15
- var/bitcoinmining = FALSE
- var/obj/item/radio/radio
-
-/obj/machinery/power/rad_collector/Initialize(mapload)
- . = ..()
-
- radio = new(src)
- radio.keyslot = new /obj/item/encryptionkey/headset_eng
- radio.subspace_transmission = TRUE
- radio.canhear_range = 0
- radio.recalculateChannels()
-
-/obj/machinery/power/rad_collector/anchored/Initialize()
- . = ..()
- set_anchored(TRUE)
-
-/obj/machinery/power/rad_collector/Destroy()
- QDEL_NULL(radio)
- return ..()
-
-/obj/machinery/power/rad_collector/process(delta_time)
- if(!loaded_tank)
- return
- if(!bitcoinmining)
- if(loaded_tank.air_contents.get_moles(GAS_PLASMA) < 0.0001)
- investigate_log("out of fuel.", INVESTIGATE_ENGINES)
- playsound(src, 'sound/machines/ding.ogg', 50, 1)
- var/msg = "Plasma depleted, recommend replacing tank."
- radio.talk_into(src, msg, RADIO_CHANNEL_ENGINEERING)
- eject()
- else
- var/gasdrained = min(powerproduction_drain*drainratio*delta_time,loaded_tank.air_contents.get_moles(GAS_PLASMA))
- loaded_tank.air_contents.adjust_moles(GAS_PLASMA, -gasdrained)
- loaded_tank.air_contents.adjust_moles(GAS_TRITIUM, gasdrained)
- var/power_produced = RAD_COLLECTOR_OUTPUT
- add_avail(power_produced)
- stored_energy-=power_produced
- else if(is_station_level(z) && SSresearch.science_tech)
- if(!loaded_tank.air_contents.get_moles(GAS_TRITIUM) || !loaded_tank.air_contents.get_moles(GAS_O2))
- playsound(src, 'sound/machines/ding.ogg', 50, 1)
- eject()
- else
- var/gasdrained = bitcoinproduction_drain*drainratio*delta_time
- loaded_tank.air_contents.adjust_moles(GAS_TRITIUM, -gasdrained)
- loaded_tank.air_contents.adjust_moles(GAS_O2, -gasdrained)
- loaded_tank.air_contents.adjust_moles(GAS_CO2, gasdrained*2)
- var/bitcoins_mined = RAD_COLLECTOR_OUTPUT
- var/datum/bank_account/D = SSeconomy.get_budget_account(ACCOUNT_ENG_ID)
- if(D)
- D.adjust_money(bitcoins_mined*RAD_COLLECTOR_MINING_CONVERSION_RATE)//about 1500 credits per minute with 2 emitters and 6 collectors with stock parts
- SSresearch.science_tech.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, bitcoins_mined*RAD_COLLECTOR_MINING_CONVERSION_RATE)//about 1300 points per minute with the above set up
- SSresearch.science_tech.add_point_type(TECHWEB_POINT_TYPE_DISCOVERY, bitcoins_mined*RAD_COLLECTOR_MINING_CONVERSION_RATE)//same here
- stored_energy-=bitcoins_mined
-
-/obj/machinery/power/rad_collector/interact(mob/user)
- if(anchored)
- if(!src.locked)
- toggle_power()
- user.visible_message("[user.name] turns the [src.name] [active? "on":"off"].", \
- "You turn the [src.name] [active? "on":"off"].")
- var/fuel = loaded_tank?.air_contents.get_moles(GAS_PLASMA)
- investigate_log("turned [active?"on":"off"] by [key_name(user)]. [loaded_tank?"Fuel: [round(fuel/0.29)]%":"It is empty"].", INVESTIGATE_ENGINES)
- return
- else
- to_chat(user, "The controls are locked!")
- return
-
-/obj/machinery/power/rad_collector/can_be_unfasten_wrench(mob/user, silent)
- if(loaded_tank)
- if(!silent)
- to_chat(user, "Remove the plasma tank first!")
- return FAILED_UNFASTEN
- return ..()
-
-/obj/machinery/power/rad_collector/set_anchored(anchorvalue)
- . = ..()
- if(isnull(.))
- return //no need to process if we didn't change anything.
- if(anchorvalue)
- connect_to_network()
- else
- disconnect_from_network()
-
-/obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user, params)
- if(istype(W, /obj/item/tank/internals/plasma))
- if(!anchored)
- to_chat(user, "[src] needs to be secured to the floor first!")
- return TRUE
- if(loaded_tank)
- to_chat(user, "There's already a plasma tank loaded!")
- return TRUE
- if(panel_open)
- to_chat(user, "Close the maintenance panel first!")
- return TRUE
- if(!user.transferItemToLoc(W, src))
- return
- loaded_tank = W
- update_icon()
- else if(W.GetID())
- if(allowed(user))
- if(active)
- locked = !locked
- to_chat(user, "You [locked ? "lock" : "unlock"] the controls.")
- else
- to_chat(user, "The controls can only be locked when \the [src] is active!")
- else
- to_chat(user, "Access denied.")
- return TRUE
- else
- return ..()
-
-/obj/machinery/power/rad_collector/wrench_act(mob/living/user, obj/item/I)
- default_unfasten_wrench(user, I)
- return TRUE
-
-/obj/machinery/power/rad_collector/screwdriver_act(mob/living/user, obj/item/I)
- if(..())
- return TRUE
- if(loaded_tank)
- to_chat(user, "Remove the plasma tank first!")
- else
- default_deconstruction_screwdriver(user, icon_state, icon_state, I)
- return TRUE
-
-/obj/machinery/power/rad_collector/crowbar_act(mob/living/user, obj/item/I)
- if(loaded_tank)
- if(locked)
- to_chat(user, "The controls are locked!")
- return TRUE
- eject()
- return TRUE
- if(default_deconstruction_crowbar(I))
- return TRUE
- to_chat(user, "There isn't a tank loaded!")
- return TRUE
-
-/obj/machinery/power/rad_collector/multitool_act(mob/living/user, obj/item/I)
- if(!is_station_level(z) && !SSresearch.science_tech)
- to_chat(user, "[src] isn't linked to a research system!")
- return TRUE
- if(locked)
- to_chat(user, "[src] is locked!")
- return TRUE
- if(active)
- to_chat(user, "[src] is currently active, producing [bitcoinmining ? "research points":"power"].")
- return TRUE
- bitcoinmining = !bitcoinmining
- to_chat(user, "You [bitcoinmining ? "enable":"disable"] the research point production feature of [src].")
- return TRUE
-
-/obj/machinery/power/rad_collector/return_analyzable_air()
- if(loaded_tank)
- return loaded_tank.return_analyzable_air()
- else
- return null
-
-/obj/machinery/power/rad_collector/examine(mob/user)
- . = ..()
- if(active)
- if(!bitcoinmining)
- // stored_energy is converted directly to watts every SSmachines.wait * 0.1 seconds.
- // Therefore, its units are joules per SSmachines.wait * 0.1 seconds.
- // So joules = stored_energy * SSmachines.wait * 0.1
- var/joules = stored_energy * SSmachines.wait * 0.1
- . += "[src]'s display states that it has stored [display_joules(joules)], and is processing [display_power(RAD_COLLECTOR_OUTPUT)]."
- else
- . += "[src]'s display states that it has stored a total of [stored_energy*RAD_COLLECTOR_MINING_CONVERSION_RATE], and is producing [RAD_COLLECTOR_OUTPUT*RAD_COLLECTOR_MINING_CONVERSION_RATE] research points per minute."
- else
- if(!bitcoinmining)
- . += "[src]'s display displays the words: \"Power production mode. Please insert Plasma. Use a multitool to change production modes.\""
- else
- . += "[src]'s display displays the words: \"Research point production mode. Please insert Tritium and Oxygen. Use a multitool to change production modes.\""
-
-/obj/machinery/power/rad_collector/obj_break(damage_flag)
- . = ..()
- if(.)
- eject()
-
-/obj/machinery/power/rad_collector/proc/eject()
- locked = FALSE
- var/obj/item/tank/internals/plasma/Z = src.loaded_tank
- if (!Z)
- return
- Z.forceMove(drop_location())
- Z.layer = initial(Z.layer)
- Z.plane = initial(Z.plane)
- src.loaded_tank = null
- if(active)
- toggle_power()
- else
- update_icon()
-
-/obj/machinery/power/rad_collector/rad_act(pulse_strength)
- . = ..()
- if(loaded_tank && active && pulse_strength > RAD_COLLECTOR_EFFICIENCY)
- stored_energy += (pulse_strength-RAD_COLLECTOR_EFFICIENCY)*RAD_COLLECTOR_COEFFICIENT
-
-/obj/machinery/power/rad_collector/update_icon()
- cut_overlays()
- if(loaded_tank)
- add_overlay("ptank")
- if(machine_stat & (NOPOWER|BROKEN))
- return
- if(active)
- add_overlay("on")
-
-
-/obj/machinery/power/rad_collector/proc/toggle_power()
- active = !active
- if(active)
- icon_state = "ca_on"
- flick("ca_active", src)
- else
- icon_state = "ca"
- flick("ca_deactive", src)
- update_icon()
- return
-
-#undef RAD_COLLECTOR_EFFICIENCY
-#undef RAD_COLLECTOR_COEFFICIENT
-#undef RAD_COLLECTOR_STORED_OUT
-#undef RAD_COLLECTOR_MINING_CONVERSION_RATE
-#undef RAD_COLLECTOR_OUTPUT
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index ef3a9592a5ee5..09dfebf60f7a5 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -500,9 +500,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
power = clamp((removed.return_temperature() * temp_factor / T0C) * gasmix_power_ratio + power, 0, SUPERMATTER_MAXIMUM_ENERGY) //Total laser power plus an overload
- if(prob(50))
- last_rads = power * max(0, power_transmission_bonus * (1 + (tritiumcomp * TRITIUM_RADIOACTIVITY_MODIFIER) + (pluoxiumcomp * PLUOXIUM_RADIOACTIVITY_MODIFIER) + (bzcomp * BZ_RADIOACTIVITY_MODIFIER))) // Rad Modifiers BZ(500%), Tritium(300%), and Pluoxium(-200%)
- radiation_pulse(src, last_rads)
+ emit_radiation()
if(bzcomp >= 0.4 && prob(30 * bzcomp))
src.fire_nuclear_particle() // Start to emit radballs at a maximum of 30% chance per tick
@@ -734,14 +732,14 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
user.visible_message("A hideous sound echoes as [W] is ashed out on contact with \the [src]. That didn't seem like a good idea...")
playsound(src, 'sound/effects/supermatter.ogg', 150, 1)
Consume(W)
- radiation_pulse(src, 150, 4)
+ radiation_pulse(src, max_range = 3, threshold = 0.1, chance = 50)
return ..()
else
cig.light()
user.visible_message("As [user] lights \their [W] on \the [src], silence fills the room...",\
"Time seems to slow to a crawl as you touch \the [src] with \the [W].\n\The [W] flashes alight with an eerie energy as you nonchalantly lift your hand away from \the [src]. Damn.")
playsound(src, 'sound/effects/supermatter.ogg', 50, 1)
- radiation_pulse(src, 50, 3)
+ radiation_pulse(src, max_range = 1, threshold = 0, chance = 100)
return
if(istype(W, /obj/item/scalpel/supermatter))
var/obj/item/scalpel/supermatter/scalpel = W
@@ -764,7 +762,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
Consume(W)
playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1)
- radiation_pulse(src, 150, 4)
+ radiation_pulse(src, max_range = 3, threshold = 0.1, chance = 50)
/obj/machinery/power/supermatter_crystal/wrench_act(mob/user, obj/item/tool)
if (moveable)
@@ -825,14 +823,18 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
matter_power += 200
//Some poor sod got eaten, go ahead and irradiate people nearby.
- radiation_pulse(src, 3000, 2, TRUE)
+ radiation_pulse(src, max_range = 6, threshold = 0.3, chance = 30)
for(var/mob/living/L in range(10))
investigate_log("has irradiated [key_name(L)] after consuming [AM].", INVESTIGATE_ENGINES)
+ if (HAS_TRAIT(near_mob, TRAIT_RADIMMUNE) || issilicon(near_mob))
+ continue
+ if(ishuman(near_mob) && SSradiation.wearing_rad_protected_clothing(near_mob))
+ continue
if(L in viewers(get_turf(src)))
L.show_message("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.", 1,\
- "The unearthly ringing subsides and you notice you have new radiation burns.", MSG_AUDIBLE)
+ "The unearthly ringing subsides and you find your skin covered in new radiation burns.", MSG_AUDIBLE)
else
- L.show_message("You hear an unearthly ringing and notice your skin is covered in fresh radiation burns.", MSG_AUDIBLE)
+ L.show_message("An unearthly ringing and fills your ears, and you find your skin covered in new radiation burns.", MSG_AUDIBLE)
/obj/machinery/power/supermatter_crystal/proc/disengage_field()
if(QDELETED(src))
diff --git a/code/modules/power/supermatter/supermatter_delamination.dm b/code/modules/power/supermatter/supermatter_delamination.dm
index e426173eda3a1..dc60dff74c3c9 100644
--- a/code/modules/power/supermatter/supermatter_delamination.dm
+++ b/code/modules/power/supermatter/supermatter_delamination.dm
@@ -47,8 +47,8 @@
//Hilariously enough, running into a closet should make you get hit the hardest.
var/mob/living/carbon/human/H = mob
H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) )
- var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(L, src) + 1) )
- L.rad_act(rads)
+ if (get_dist(victim, src) <= DETONATION_RADIATION_RANGE)
+ SSradiation.irradiate(victim)
for(var/mob/M in GLOB.player_list)
if(M.get_virtual_z_level() == supermatter_z)
diff --git a/code/modules/power/supermatter/supermatter_radiation.dm b/code/modules/power/supermatter/supermatter_radiation.dm
new file mode 100644
index 0000000000000..546ec13f8f919
--- /dev/null
+++ b/code/modules/power/supermatter/supermatter_radiation.dm
@@ -0,0 +1,57 @@
+// Any power past this number will be clamped down
+#define MAX_ACCEPTED_POWER_OUTPUT 5000
+
+// At the highest power output, assuming no integrity changes, the threshold will be 0.
+#define THRESHOLD_EQUATION_SLOPE (-1 / MAX_ACCEPTED_POWER_OUTPUT)
+
+// The higher this number, the faster low integrity will drop threshold
+// I would've named this "power", but y'know. :P
+#define INTEGRITY_EXPONENTIAL_DEGREE 2
+
+// At INTEGRITY_MIN_NUDGABLE_AMOUNT, the power will be treated as, at most, INTEGRITY_MAX_POWER_NUDGE.
+// Any lower integrity will result in INTEGRITY_MAX_POWER_NUDGE.
+#define INTEGRITY_MAX_POWER_NUDGE 1500
+#define INTEGRITY_MIN_NUDGABLE_AMOUNT 0.7
+
+#define RADIATION_CHANCE_AT_FULL_INTEGRITY 0.03
+#define RADIATION_CHANCE_AT_ZERO_INTEGRITY 0.4
+#define CHANCE_EQUATION_SLOPE (RADIATION_CHANCE_AT_ZERO_INTEGRITY - RADIATION_CHANCE_AT_FULL_INTEGRITY)
+
+/obj/machinery/power/supermatter_crystal/proc/emit_radiation()
+ // As power goes up, rads go up.
+ // A standard N2 SM seems to produce a value of around 1,500.
+ var/power_factor = min(power, MAX_ACCEPTED_POWER_OUTPUT)
+
+ var/integrity = 1 - CLAMP01(damage / explosion_point)
+
+ // When integrity goes down, the threshold (from an observable point of view, rads) go up.
+ // However, the power factor must go up as well, otherwise turning off the emitters
+ // on a delaminating SM would stop radiation from escaping.
+ // To fix this, lower integrities raise the power factor to a minimum.
+ var/integrity_power_nudge = LERP(INTEGRITY_MAX_POWER_NUDGE, 0, CLAMP01((integrity - INTEGRITY_MIN_NUDGABLE_AMOUNT) / (1 - INTEGRITY_MIN_NUDGABLE_AMOUNT)))
+
+ power_factor = max(power_factor, integrity_power_nudge)
+
+ // At the "normal" N2 power output (with max integrity), this is 0.7, which is enough to be stopped
+ // by the walls or the radation shutters.
+ // As integrity does down, rads go up.
+ var/threshold = (THRESHOLD_EQUATION_SLOPE * power_factor + 1) ** ((1 / integrity) ** INTEGRITY_EXPONENTIAL_DEGREE)
+
+ // Calculating chance is done entirely on integrity, so that actively delaminating SMs feel more dangerous
+ var/chance = (CHANCE_EQUATION_SLOPE * (1 - integrity)) + RADIATION_CHANCE_AT_FULL_INTEGRITY
+
+ radiation_pulse(
+ src,
+ max_range = 8,
+ threshold = threshold,
+ chance = chance * 100,
+ )
+
+#undef CHANCE_EQUATION_SLOPE
+#undef INTEGRITY_EXPONENTIAL_DEGREE
+#undef INTEGRITY_MAX_POWER_NUDGE
+#undef INTEGRITY_MIN_NUDGABLE_AMOUNT
+#undef MAX_ACCEPTED_POWER_OUTPUT
+#undef RADIATION_CHANCE_AT_FULL_INTEGRITY
+#undef RADIATION_CHANCE_AT_ZERO_INTEGRITY
+#undef THRESHOLD_EQUATION_SLOPE
diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm
index 2e82919cbcfbe..5c92637800082 100644
--- a/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -150,11 +150,11 @@
switch(fail_tick)
if(0 to 200)
fail_tick += (2*(fail_chance))
- M.rad_act(40)
+ M.adjustFireLoss(3)
to_chat(M, "Your [name] feels warmer.")
if(201 to INFINITY)
SSobj.processing.Remove(src)
- M.rad_act(80)
+ M.adjustFireLoss(10)
reactor_overloaded = TRUE
to_chat(M, "Your [name]'s reactor overloads!")
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index f1ee75c92e7c0..af3e0aee3ae2f 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -137,7 +137,6 @@
var/paralyze = 0
var/immobilize = 0
var/unconscious = 0
- var/irradiate = 0
var/stutter = 0
var/slur = 0
var/eyeblur = 0
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index 54781b9044663..525656c994730 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -66,7 +66,6 @@
name = "\improper X-ray beam"
icon_state = "xray"
damage = 15
- irradiate = 300
range = 15
armour_penetration = 60
pass_flags = PASSTABLE | PASSTRANSPARENT | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS
diff --git a/code/modules/projectiles/projectile/energy/misc.dm b/code/modules/projectiles/projectile/energy/misc.dm
index 79ee634a3e66a..cb5009c7981cf 100644
--- a/code/modules/projectiles/projectile/energy/misc.dm
+++ b/code/modules/projectiles/projectile/energy/misc.dm
@@ -3,12 +3,20 @@
icon_state = "declone"
damage = 20
damage_type = CLONE
- irradiate = 100
impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser
+ /// The chance to be irradiated on hit
+ var/radiation_chance = 30
+
+/obj/projectile/energy/declone/on_hit(atom/target, blocked, pierce_hit)
+ if (ishuman(target) && prob(radiation_chance))
+ radiation_pulse(target, max_range = 0, threshold = RAD_FULL_INSULATION)
+
+ ..()
+
/obj/projectile/energy/declone/weak
damage = 9
- irradiate = 30
+ radiation_chance = 10
/obj/projectile/energy/dart //ninja throwing dart
name = "dart"
diff --git a/code/modules/projectiles/projectile/energy/nuclear_particle.dm b/code/modules/projectiles/projectile/energy/nuclear_particle.dm
index 98eb16acb14b7..5ccb53ede786e 100644
--- a/code/modules/projectiles/projectile/energy/nuclear_particle.dm
+++ b/code/modules/projectiles/projectile/energy/nuclear_particle.dm
@@ -5,7 +5,6 @@
pass_flags = PASSTABLE | PASSTRANSPARENT | PASSGRILLE
damage = 10
damage_type = TOX
- irradiate = 2500 //enough to knockdown and induce vomiting
speed = 0.4
hitsound = 'sound/weapons/emitter2.ogg'
impact_type = /obj/effect/projectile/impact/xray
@@ -52,6 +51,12 @@
name = "impossibly strong nuclear particle"
damage = 30
+/obj/projectile/energy/nuclear_particle/on_hit(atom/target, blocked, pierce_hit)
+ if (ishuman(target))
+ radiation_pulse(target, max_range = 0, threshold = RAD_FULL_INSULATION)
+
+ ..()
+
/atom/proc/fire_nuclear_particle(angle = rand(0,360), customize = FALSE, custompower = 1e12) //used by fusion to fire random nuclear particles. Fires one particle in a random direction.
var/obj/projectile/energy/nuclear_particle/P = new /obj/projectile/energy/nuclear_particle(src)
if(customize)
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index 6b483e41f06d7..45679c14d1506 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -256,10 +256,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "The glass contain wodka. Xynta."
shot_glass_icon_state = "shotglassclear"
-/datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/carbon/M)
- M.radiation = max(M.radiation-2,0)
- return ..()
-
/datum/reagent/consumable/ethanol/bilk
name = "Bilk"
description = "This appears to be beer mixed with milk. Disgusting."
@@ -564,7 +560,14 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/carbon/M)
if(M.mind && (M.mind.assigned_role in list(JOB_NAME_STATIONENGINEER, JOB_NAME_ATMOSPHERICTECHNICIAN, JOB_NAME_CHIEFENGINEER))) //Engineers lose radiation poisoning at a massive rate.
- M.radiation = max(M.radiation - 25, 0)
+ ADD_TRAIT(M, TRAIT_HALT_RADIATION_EFFECTS, "[type]")
+ if (HAS_TRAIT(M, TRAIT_IRRADIATED))
+ M.adjustToxLoss(-2 * REM * delta_time)
+
+ return ..()
+
+/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_end_metabolize(mob/living/L)
+ REMOVE_TRAIT(L, TRAIT_HALT_RADIATION_EFFECTS, "[type]")
return ..()
/datum/reagent/consumable/ethanol/booger
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 2662845dc91bc..c03c7ee618284 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -565,27 +565,43 @@
/datum/reagent/medicine/potass_iodide
name = "Potassium Iodide"
- description = "Efficiently restores low radiation damage."
+ description = "Heals low toxin damage while the patient is irradiated, and will halt the damaging effects of radiation."
reagent_state = LIQUID
color = "#BAA15D"
chem_flags = CHEMICAL_RNG_GENERAL | CHEMICAL_RNG_FUN | CHEMICAL_RNG_BOTANY | CHEMICAL_GOAL_BOTANIST_HARVEST
metabolization_rate = 2 * REAGENTS_METABOLISM
+/datum/reagent/medicine/potass_iodide/on_mob_metabolize(mob/living/L)
+ . = ..()
+ ADD_TRAIT(L, TRAIT_HALT_RADIATION_EFFECTS, "[type]")
+
+/datum/reagent/medicine/potass_iodide/on_mob_end_metabolize(mob/living/L)
+ REMOVE_TRAIT(L, TRAIT_HALT_RADIATION_EFFECTS, "[type]")
+ return ..()
+
/datum/reagent/medicine/potass_iodide/on_mob_life(mob/living/carbon/M)
- if(M.radiation > 0)
- M.radiation -= min(M.radiation, 8)
+ if (HAS_TRAIT(M, TRAIT_IRRADIATED))
+ M.adjustToxLoss(-1 * REM * delta_time)
+
..()
/datum/reagent/medicine/pen_acid
name = "Pentetic Acid"
- description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body."
+ description = "Reduces massive amounts of toxin damage while purging other chemicals from the body."
reagent_state = LIQUID
color = "#E6FFF0"
chem_flags = CHEMICAL_RNG_GENERAL | CHEMICAL_RNG_FUN | CHEMICAL_RNG_BOTANY | CHEMICAL_GOAL_CHEMIST_USEFUL_MEDICINE
metabolization_rate = 0.5 * REAGENTS_METABOLISM
+/datum/reagent/medicine/pen_acid/on_mob_metabolize(mob/living/L)
+ . = ..()
+ ADD_TRAIT(L, TRAIT_HALT_RADIATION_EFFECTS, "[type]")
+
+/datum/reagent/medicine/pen_acid/on_mob_end_metabolize(mob/living/L)
+ REMOVE_TRAIT(L, TRAIT_HALT_RADIATION_EFFECTS, "[type]")
+ return ..()
+
/datum/reagent/medicine/pen_acid/on_mob_life(mob/living/carbon/M)
- M.radiation -= max(M.radiation-RAD_MOB_SAFE, 0)/50
M.adjustToxLoss(-2*REM, 0)
for(var/datum/reagent/R in M.reagents.reagent_list)
if(R != src)
diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm
index 6fad1eae6381b..5ea0c4c58356b 100644
--- a/code/modules/recycling/disposal/bin.dm
+++ b/code/modules/recycling/disposal/bin.dm
@@ -10,7 +10,6 @@
resistance_flags = FIRE_PROOF
interaction_flags_machine = INTERACT_MACHINE_OPEN | INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON
obj_flags = CAN_BE_HIT | USES_TGUI
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
diff --git a/code/modules/recycling/disposal/holder.dm b/code/modules/recycling/disposal/holder.dm
index 17c6872425561..f93eb7b1c9c79 100644
--- a/code/modules/recycling/disposal/holder.dm
+++ b/code/modules/recycling/disposal/holder.dm
@@ -9,7 +9,6 @@
dir = NONE
var/obj/structure/disposalpipe/last_pipe
var/obj/structure/disposalpipe/current_pipe
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
var/datum/gas_mixture/gas // gas used to flush, will appear at exit point
var/active = FALSE // true if the holder is moving, otherwise inactive
var/count = 1000 // can travel 1000 steps before going inactive (in case of loops)
diff --git a/code/modules/recycling/disposal/outlet.dm b/code/modules/recycling/disposal/outlet.dm
index 7cff1fcfd4fa4..11cdcc0239a92 100644
--- a/code/modules/recycling/disposal/outlet.dm
+++ b/code/modules/recycling/disposal/outlet.dm
@@ -6,7 +6,6 @@
icon_state = "outlet"
density = TRUE
anchored = TRUE
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
var/active = FALSE
var/turf/target // this will be where the output objects are 'thrown' to.
var/obj/structure/disposalpipe/trunk/trunk // the attached pipe trunk
From 863a30d7afae9bce47808527f3bf2ee090ad6f6e Mon Sep 17 00:00:00 2001
From: XeonMations
Date: Fri, 6 Sep 2024 07:32:20 +0300
Subject: [PATCH 06/42] and now, for errors
---
.../chemistry/reagents/other_reagents.dm | 7 +--
.../chemistry/reagents/toxin_reagents.dm | 8 +++-
.../modules/research/designs/mecha_designs.dm | 10 ----
code/modules/research/designs/tool_designs.dm | 10 ----
code/modules/research/techweb/all_nodes.dm | 2 -
code/modules/surgery/organs/lungs.dm | 26 ++++++++++
.../mecha/equipment/tools/other_tools.dm | 19 --------
tgui/packages/tgui/interfaces/DnaConsole.js | 48 +++++++++----------
.../tgui/interfaces/GravityGenerator.js | 6 +--
9 files changed, 62 insertions(+), 74 deletions(-)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 10b8e0b0fa486..231289476ac06 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1010,11 +1010,12 @@
color = "#B8B8C0" // rgb: 184, 184, 192
chem_flags = CHEMICAL_RNG_GENERAL | CHEMICAL_RNG_FUN | CHEMICAL_RNG_BOTANY
taste_description = "the inside of a reactor"
- var/irradiation_level = 1
process_flags = ORGANIC | SYNTHETIC
+ /// How much tox damage to deal per tick
+ var/tox_damage = 0.5
/datum/reagent/uranium/on_mob_life(mob/living/carbon/M)
- M.apply_effect(irradiation_level/M.metabolism_efficiency,EFFECT_IRRADIATE,0)
+ M.adjustToxLoss(tox_damage * delta_time * REM)
..()
/datum/reagent/uranium/reaction_turf(turf/T, reac_volume)
@@ -1033,7 +1034,7 @@
color = "#C7C7C7" // rgb: 199,199,199
chem_flags = CHEMICAL_BASIC_ELEMENT
taste_description = "the colour blue and regret"
- irradiation_level = 2*REM
+ tox_damage = 1*REM
process_flags = ORGANIC | SYNTHETIC
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index 567fc0d499958..4c2caa90ba950 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -50,7 +50,7 @@
..()
/datum/reagent/toxin/mutagen/on_mob_life(mob/living/carbon/C)
- C.apply_effect(5,EFFECT_IRRADIATE,0)
+ C.adjustToxLoss(0.5 * delta_time * REM)
return ..()
/datum/reagent/toxin/plasma
@@ -372,7 +372,11 @@
process_flags = ORGANIC | SYNTHETIC
/datum/reagent/toxin/polonium/on_mob_life(mob/living/carbon/M)
- M.radiation += 10
+ if (!HAS_TRAIT(M, TRAIT_IRRADIATED) && SSradiation.can_irradiate_basic(M))
+ M.AddComponent(/datum/component/irradiated)
+ else
+ M.adjustToxLoss(1 * REM * delta_time)
+
..()
/datum/reagent/toxin/histamine
diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm
index 8535193130a15..a031fe9d8c0c1 100644
--- a/code/modules/research/designs/mecha_designs.dm
+++ b/code/modules/research/designs/mecha_designs.dm
@@ -351,16 +351,6 @@
construction_time = 100
category = list("Exosuit Equipment")
-/datum/design/mech_generator_nuclear
- name = "Exosuit Module (ExoNuclear Reactor)"
- desc = "Compact nuclear reactor module."
- id = "mech_generator_nuclear"
- build_type = MECHFAB
- build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear
- materials = list(/datum/material/iron=10000,/datum/material/glass = 1000,/datum/material/silver=500)
- construction_time = 100
- category = list("Exosuit Equipment")
-
/datum/design/mech_plasma_cutter
name = "Exosuit Mining (217-D Heavy Plasma Cutter)"
desc = "A device that shoots resonant plasma bursts at extreme velocity. The blasts are capable of crushing rock and demolishing solid obstacles."
diff --git a/code/modules/research/designs/tool_designs.dm b/code/modules/research/designs/tool_designs.dm
index d0493343f4b5b..65908d52f12bb 100644
--- a/code/modules/research/designs/tool_designs.dm
+++ b/code/modules/research/designs/tool_designs.dm
@@ -300,13 +300,3 @@
build_path = /obj/item/wirebrush
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
-
-/datum/design/wirebrush_adv
- name = "Advanced Wirebrush"
- desc = "An advanced wirebrush."
- id = "wirebrush_adv"
- build_type = PROTOLATHE
- materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/uranium = 200, /datum/material/plasma = 200)
- build_path = /obj/item/wirebrush/advanced
- category = list("Equipment")
- departmental_flags = DEPARTMENTAL_FLAG_SERVICE
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 9d7cad9d579fe..d1cea4c6792cd 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -1551,7 +1551,6 @@
"laserscalpel",
"mechanicalpinches",
"searingtool",
- "wirebrush_adv",
)
prereq_ids = list("adv_engi")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
@@ -1988,7 +1987,6 @@
design_ids = list(
"mech_ccw_armor",
"mech_energy_relay",
- "mech_generator_nuclear",
"mech_proj_armor",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm
index eeb4bf3bbfc6e..01ea6c1df495e 100644
--- a/code/modules/surgery/organs/lungs.dm
+++ b/code/modules/surgery/organs/lungs.dm
@@ -50,6 +50,11 @@
var/BZ_brain_damage_min = 1
var/gas_stimulation_min = 0.002 //Nitryl and Stimulum
+ var/tritium_irradiation_moles_min = 1
+ var/tritium_irradiation_moles_max = 15
+ var/tritium_irradiation_probability_min = 10
+ var/tritium_irradiation_probability_max = 60
+
var/cold_message = "your face freezing and an icicle forming"
var/cold_level_1_threshold = 260
var/cold_level_2_threshold = 200
@@ -278,6 +283,27 @@
H.hallucination += 5
H.reagents.add_reagent(/datum/reagent/metabolite/bz,1)
+ // Tritium
+ var/trit_pp = PP(breath,GAS_TRITIUM)
+ if (trit_pp > 50)
+ breather.radiation += trit_pp/2 //If you're breathing in half an atmosphere of radioactive gas, you fucked up.
+ else
+ breather.radiation += trit_pp/10
+ // If you're breathing in half an atmosphere of radioactive gas, you fucked up.
+ if (trit_pp > tritium_irradiation_moles_min && SSradiation.can_irradiate_basic(breather))
+ var/lerp_scale = min(tritium_irradiation_moles_max, trit_pp - tritium_irradiation_moles_min) / (tritium_irradiation_moles_max - tritium_irradiation_moles_min)
+ var/chance = LERP(tritium_irradiation_probability_min, tritium_irradiation_probability_max, lerp_scale)
+ if (prob(chance))
+ breather.AddComponent(/datum/component/irradiated)
+
+ gas_breathed = PP(breath,GAS_TRITIUM)
+
+ if (trit_pp > 0)
+ var/ratio = gas_breathed * 15
+ breather.adjustToxLoss(clamp(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE))
+
+ breath.adjust_moles(GAS_TRITIUM, -gas_breathed)
+
// Nitryl
var/nitryl_pp = PP(breath,GAS_NITRYL)
if (prob(nitryl_pp))
diff --git a/code/modules/vehicles/mecha/equipment/tools/other_tools.dm b/code/modules/vehicles/mecha/equipment/tools/other_tools.dm
index 89c3f16316c46..08db9acd21abb 100644
--- a/code/modules/vehicles/mecha/equipment/tools/other_tools.dm
+++ b/code/modules/vehicles/mecha/equipment/tools/other_tools.dm
@@ -435,25 +435,6 @@
update_equip_info()
return TRUE
-
-/obj/item/mecha_parts/mecha_equipment/generator/nuclear
- name = "exonuclear reactor"
- desc = "An exosuit module that generates power using uranium as fuel. Pollutes the environment."
- icon_state = "tesla"
- max_fuel = 50000
- fuel_per_cycle_idle = 10
- fuel_per_cycle_active = 30
- power_per_cycle = 50
- var/rad_per_cycle = 30
-
-/obj/item/mecha_parts/mecha_equipment/generator/nuclear/generator_init()
- fuel = new /obj/item/stack/sheet/mineral/uranium(src, 0)
-
-/obj/item/mecha_parts/mecha_equipment/generator/nuclear/process()
- if(..())
- radiation_pulse(get_turf(src), rad_per_cycle)
-
-
/////////////////////////////////////////// THRUSTERS /////////////////////////////////////////////
/obj/item/mecha_parts/mecha_equipment/thrusters
diff --git a/tgui/packages/tgui/interfaces/DnaConsole.js b/tgui/packages/tgui/interfaces/DnaConsole.js
index 33ba91ceaa394..8ea55e10d8de9 100644
--- a/tgui/packages/tgui/interfaces/DnaConsole.js
+++ b/tgui/packages/tgui/interfaces/DnaConsole.js
@@ -55,8 +55,8 @@ const MUT_COLORS = {
4: 'average',
};
-const RADIATION_STRENGTH_MAX = 15;
-const RADIATION_DURATION_MAX = 30;
+const PULSE_STRENGTH_MAX = 15;
+const PULSE_DURATION_MAX = 30;
/**
* The following predicate tests if two mutations are functionally
@@ -69,16 +69,16 @@ const isSameMutation = (a, b) => {
export const DnaConsole = (props, context) => {
const { data, act } = useBackend(context);
- const { isPulsingRads, radPulseSeconds } = data;
+ const { isPulsing, timeToPulse } = data;
const { consoleMode } = data.view;
return (
- {!!isPulsingRads && (
+ {!!isPulsing && (
- Radiation pulse in progress...
+ Pulse in progress...
- {radPulseSeconds}s
+ {timeToPulse}s
)}
@@ -104,7 +104,7 @@ const DnaScannerButtons = (props, context) => {
const { data, act } = useBackend(context);
const {
hasDelayedAction,
- isPulsingRads,
+ isPulsing,
isScannerConnected,
isScrambleReady,
isViableSubject,
@@ -120,7 +120,7 @@ const DnaScannerButtons = (props, context) => {
{!!hasDelayedAction &&