From 061478165acb5b42808b466b4676661108fa5b17 Mon Sep 17 00:00:00 2001 From: Incoming Date: Sun, 31 May 2015 18:54:30 -0400 Subject: [PATCH] upgrades the HARDFEET species flag to PIERCEIMMUNE In addition to keeping golem feet safe as always golems are now immune to object embeding. As a mitagating nerf and logical extension, golems can no longer be injected with chems either. --- code/__DEFINES/flags.dm | 28 +++++++++---------- code/game/objects/items.dm | 2 +- .../game/objects/items/stacks/sheets/glass.dm | 2 +- code/game/objects/items/weapons/dice.dm | 2 +- code/modules/assembly/mousetrap.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 2 ++ .../mob/living/carbon/human/species_types.dm | 4 +-- 7 files changed, 22 insertions(+), 20 deletions(-) diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 570a4c75bfb..3d704c12cf0 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -56,20 +56,20 @@ //flags for species -#define MUTCOLORS 1 -#define HAIR 2 -#define FACEHAIR 4 -#define EYECOLOR 8 -#define LIPS 16 -#define COLDRES 32 -#define HEATRES 64 -#define RADIMMUNE 128 -#define NOBREATH 256 -#define NOGUNS 512 -#define NOBLOOD 1024 -#define NOFIRE 2048 -#define VIRUSIMMUNE 4096 -#define HARDFEET 8192 +#define MUTCOLORS 1 +#define HAIR 2 +#define FACEHAIR 4 +#define EYECOLOR 8 +#define LIPS 16 +#define COLDRES 32 +#define HEATRES 64 +#define RADIMMUNE 128 +#define NOBREATH 256 +#define NOGUNS 512 +#define NOBLOOD 1024 +#define NOFIRE 2048 +#define VIRUSIMMUNE 4096 +#define PIERCEIMMUNE 8192 /* These defines are used specifically with the atom/movable/languages bitmask. diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index fb6ce0cc20f..da18c226ad9 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -442,7 +442,7 @@ if(istype(A, /mob/living/carbon/human)) var/mob/living/carbon/human/H = A if(can_embed(src)) - if(prob(embed_chance)) + if(prob(embed_chance) && !(PIERCEIMMUNE in H.dna.species.specflags)) var/obj/item/organ/limb/L = pick(H.organs) L.embedded_objects |= src add_blood(H)//it embedded itself in you, of course it's bloody! diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index e064c065c4b..3c1be461a1d 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -332,7 +332,7 @@ playsound(loc, 'sound/effects/glass_step.ogg', 50, 1) if(ishuman(AM)) var/mob/living/carbon/human/H = AM - if(HARDFEET in H.dna.species.specflags) + if(PIERCEIMMUNE in H.dna.species.specflags) return 0 if(!H.shoes) H.apply_damage(5,BRUTE,(pick("l_leg", "r_leg"))) diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 3781efcb26a..1a85a2e50d6 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -80,7 +80,7 @@ /obj/item/weapon/dice/d4/Crossed(var/mob/living/carbon/human/H) if(istype(H) && !H.shoes) - if(HARDFEET in H.dna.species.specflags) + if(PIERCEIMMUNE in H.dna.species.specflags) return 0 H << "You step on the D4!" H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg"))) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 182783d0220..9714aed67ca 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -42,7 +42,7 @@ var/obj/item/organ/limb/affecting = null if(ishuman(target)) var/mob/living/carbon/human/H = target - if(HARDFEET in H.dna.species.specflags) + if(PIERCEIMMUNE in H.dna.species.specflags) playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) armed = 0 update_icon() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 44aea16325b..620d251ed54 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -529,6 +529,8 @@ . = 1 // Default to returning true. if(user && !target_zone) target_zone = user.zone_sel.selecting + if(dna && PIERCEIMMUNE in dna.species.specflags) + . = 0 // If targeting the head, see if the head item is thin enough. // If targeting anything else, see if the wear suit is thin enough. if(above_neck(target_zone)) diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index dae76683975..7629bfe3bb7 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -233,7 +233,7 @@ // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. name = "Golem" id = "golem" - specflags = list(NOBREATH,HEATRES,COLDRES,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,HARDFEET) + specflags = list(NOBREATH,HEATRES,COLDRES,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE) speedmod = 3 armor = 55 punchmod = 5 @@ -282,7 +282,7 @@ say_mod = "rattles" sexes = 0 meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton - specflags = list(NOBREATH,HEATRES,COLDRES,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,HARDFEET) + specflags = list(NOBREATH,HEATRES,COLDRES,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE) /* ZOMBIES */