Fixes xenomorph corrosive acid being used on mobs & fixes xeno limb examines (#68246)

* Removes the xenomorph's corrosive acid from being used on mobs, as they oneshot them.
* Makes defines for species' limbs, and makes use of those. Also replaces some hardcodes with defines.
* Makes Xenomorph bodyparts all alien bodytypes, so xenomorphs with something embedded will not state that they have something in their human limb.
This commit is contained in:
Coffee
2022-07-19 12:16:49 -04:00
committed by GitHub
parent 728f5c2602
commit ffc2a746df
6 changed files with 28 additions and 15 deletions
+6 -1
View File
@@ -82,7 +82,7 @@
///The limb is snouted
#define BODYTYPE_SNOUTED (1<<5)
//Defines for Species IDs
// Defines for Species IDs. Used to refer to the name of a species, for things like bodypart names or species preferences.
#define SPECIES_ABDUCTOR "abductor"
#define SPECIES_ANDROID "android"
#define SPECIES_DULLAHAN "dullahan"
@@ -111,6 +111,11 @@
#define SPECIES_ZOMBIE_INFECTIOUS "memezombie"
#define SPECIES_ZOMBIE_KROKODIL "krokodil_zombie"
// Like species IDs, but not specifically attached a species.
#define BODYPART_TYPE_ALIEN "alien"
#define BODYPART_TYPE_ROBOTIC "robotic"
#define BODYPART_TYPE_DIGITIGRADE "digitigrade"
//See: datum/species/var/digitigrade_customization
///The species does not have digitigrade legs in generation.
#define DIGITIGRADE_NEVER 0
@@ -4,7 +4,7 @@
/datum/species/shadow/nightmare
name = "Nightmare"
id = SPECIES_NIGHTMARE
examine_limb_id = "shadow"
examine_limb_id = SPECIES_SHADOW
burnmod = 1.5
no_equip = list(ITEM_SLOT_MASK, ITEM_SLOT_OCLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_FEET, ITEM_SLOT_ICLOTHING, ITEM_SLOT_SUITSTORE)
species_traits = list(NOBLOOD,NO_UNDERWEAR,NO_DNA_COPY,NOTRANSSTING,NOEYESPRITES)
@@ -218,6 +218,9 @@ Doesn't work on other aliens/AI.*/
/datum/action/cooldown/alien/acid/corrosion/PreActivate(atom/target)
if(get_dist(owner, target) > 1)
return FALSE
if(ismob(target)) //If it could corrode mobs, it would one-shot them.
owner.balloon_alert(owner, "doesn't work on mobs!")
return FALSE
return ..()
+6 -1
View File
@@ -48,6 +48,7 @@
/obj/item/bodypart/chest/alien
icon = 'icons/mob/animal_parts.dmi'
icon_state = "alien_chest"
limb_id = BODYPART_TYPE_ALIEN
dismemberable = 0
max_damage = 500
animal_origin = ALIEN_BODYPART
@@ -154,6 +155,7 @@
/obj/item/bodypart/l_arm/alien
icon = 'icons/mob/animal_parts.dmi'
icon_state = "alien_l_arm"
limb_id = BODYPART_TYPE_ALIEN
px_x = 0
px_y = 0
dismemberable = FALSE
@@ -249,10 +251,11 @@
wound_resistance = -10
px_x = 5
px_y = -3
/obj/item/bodypart/r_arm/alien
icon = 'icons/mob/animal_parts.dmi'
icon_state = "alien_r_arm"
limb_id = BODYPART_TYPE_ALIEN
px_x = 0
px_y = 0
dismemberable = FALSE
@@ -342,6 +345,7 @@
/obj/item/bodypart/l_leg/alien
icon = 'icons/mob/animal_parts.dmi'
icon_state = "alien_l_leg"
limb_id = BODYPART_TYPE_ALIEN
px_x = 0
px_y = 0
dismemberable = FALSE
@@ -439,6 +443,7 @@
/obj/item/bodypart/r_leg/alien
icon = 'icons/mob/animal_parts.dmi'
icon_state = "alien_r_leg"
limb_id = BODYPART_TYPE_ALIEN
px_x = 0
px_y = 0
dismemberable = FALSE
@@ -13,7 +13,7 @@
/obj/item/bodypart/l_arm/robot
name = "cyborg left arm"
desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case."
limb_id = "robotic"
limb_id = BODYPART_TYPE_ROBOTIC
attack_verb_simple = list("slapped", "punched")
inhand_icon_state = "buildpipe"
icon = 'icons/mob/augmentation/augments.dmi'
@@ -43,7 +43,7 @@
inhand_icon_state = "buildpipe"
icon_static = 'icons/mob/augmentation/augments.dmi'
icon = 'icons/mob/augmentation/augments.dmi'
limb_id = "robotic"
limb_id = BODYPART_TYPE_ROBOTIC
flags_1 = CONDUCT_1
icon_state = "borg_r_arm"
is_dimorphic = FALSE
@@ -69,7 +69,7 @@
inhand_icon_state = "buildpipe"
icon_static = 'icons/mob/augmentation/augments.dmi'
icon = 'icons/mob/augmentation/augments.dmi'
limb_id = "robotic"
limb_id = BODYPART_TYPE_ROBOTIC
flags_1 = CONDUCT_1
icon_state = "borg_l_leg"
is_dimorphic = FALSE
@@ -95,7 +95,7 @@
inhand_icon_state = "buildpipe"
icon_static = 'icons/mob/augmentation/augments.dmi'
icon = 'icons/mob/augmentation/augments.dmi'
limb_id = "robotic"
limb_id = BODYPART_TYPE_ROBOTIC
flags_1 = CONDUCT_1
icon_state = "borg_r_leg"
is_dimorphic = FALSE
@@ -120,7 +120,7 @@
inhand_icon_state = "buildpipe"
icon_static = 'icons/mob/augmentation/augments.dmi'
icon = 'icons/mob/augmentation/augments.dmi'
limb_id = "robotic"
limb_id = BODYPART_TYPE_ROBOTIC
flags_1 = CONDUCT_1
icon_state = "borg_chest"
is_dimorphic = FALSE
@@ -228,7 +228,7 @@
inhand_icon_state = "buildpipe"
icon_static = 'icons/mob/augmentation/augments.dmi'
icon = 'icons/mob/augmentation/augments.dmi'
limb_id = "robotic"
limb_id = BODYPART_TYPE_ROBOTIC
flags_1 = CONDUCT_1
icon_state = "borg_head"
is_dimorphic = FALSE
@@ -33,7 +33,7 @@
/obj/item/bodypart/l_leg/digitigrade
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
uses_mutcolor = TRUE
limb_id = "digitigrade"
limb_id = BODYPART_TYPE_DIGITIGRADE
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_DIGITIGRADE
/obj/item/bodypart/l_leg/digitigrade/update_limb(dropping_limb = FALSE, is_creating = FALSE)
@@ -52,15 +52,15 @@
shoes_compatible = TRUE
if((uniform_compatible && suit_compatible && shoes_compatible) || (suit_compatible && shoes_compatible && human_owner.wear_suit?.flags_inv & HIDEJUMPSUIT)) //If the uniform is hidden, it doesnt matter if its compatible
limb_id = "digitigrade"
limb_id = BODYPART_TYPE_DIGITIGRADE
else
limb_id = "lizard"
limb_id = SPECIES_LIZARD
/obj/item/bodypart/r_leg/digitigrade
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
uses_mutcolor = TRUE
limb_id = "digitigrade"
limb_id = BODYPART_TYPE_DIGITIGRADE
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_DIGITIGRADE
/obj/item/bodypart/r_leg/digitigrade/update_limb(dropping_limb = FALSE, is_creating = FALSE)
@@ -79,7 +79,7 @@
shoes_compatible = TRUE
if((uniform_compatible && suit_compatible && shoes_compatible) || (suit_compatible && shoes_compatible && human_owner.wear_suit?.flags_inv & HIDEJUMPSUIT)) //If the uniform is hidden, it doesnt matter if its compatible
limb_id = "digitigrade"
limb_id = BODYPART_TYPE_DIGITIGRADE
else
limb_id = "lizard"
limb_id = SPECIES_LIZARD