diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index ea8237e679d..afda9ad877b 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -165,6 +165,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NAIVE "naive" #define TRAIT_PRIMITIVE "primitive" #define TRAIT_GUNFLIP "gunflip" +#define TRAIT_BLOODCRAWL_EAT "bloodcrawl_eat" //non-mob traits #define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 1b38a810f7b..c486bb96bf5 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -99,7 +99,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_XENO_IMMUNE" = TRAIT_XENO_IMMUNE, "TRAIT_NAIVE" = TRAIT_NAIVE, "TRAIT_PRIMITIVE" = TRAIT_PRIMITIVE, //unable to use mechs. Given to Ash Walkers - "TRAIT_GUNFLIP" = TRAIT_GUNFLIP + "TRAIT_GUNFLIP" = TRAIT_GUNFLIP, + "TRAIT_BLOODCRAWL_EAT" = TRAIT_BLOODCRAWL_EAT, ), /obj/item/bodypart = list( "TRAIT_PARALYSIS" = TRAIT_PARALYSIS diff --git a/code/modules/antagonists/devil/imp/imp.dm b/code/modules/antagonists/devil/imp/imp.dm index 7f1d8b4f77f..8ca84d0775a 100644 --- a/code/modules/antagonists/devil/imp/imp.dm +++ b/code/modules/antagonists/devil/imp/imp.dm @@ -41,7 +41,6 @@ deathmessage = "screams in agony as it sublimates into a sulfurous smoke." deathsound = 'sound/magic/demon_dies.ogg' var/boost = 0 - bloodcrawl = BLOODCRAWL_EAT var/list/consumed_mobs = list() var/playstyle_string = "You are an imp, a mischievous creature from hell. You are the lowest rank on the hellish totem pole \ Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \ @@ -49,6 +48,7 @@ /mob/living/simple_animal/imp/Initialize() . = ..() + ADD_TRAIT(src, TRAIT_BLOODCRAWL_EAT, "innate") set_varspeed(1) addtimer(CALLBACK(src, /mob/living/simple_animal/proc/set_varspeed, 0), 30) diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index 8cb12cb897a..1cd3053eb2f 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -38,7 +38,6 @@ melee_damage_upper = 30 see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - bloodcrawl = BLOODCRAWL_EAT var/playstyle_string = "You are a slaughter demon, a terrible creature from another realm. You have a single desire: To kill. \ You may use the \"Blood Crawl\" ability near blood pools to travel through them, appearing and disappearing from the station at will. \ Pulling a dead or unconscious mob while you enter a pool will pull them in with you, allowing you to feast and regain your health. \ @@ -52,6 +51,7 @@ /mob/living/simple_animal/slaughter/Initialize() ..() + ADD_TRAIT(src, TRAIT_BLOODCRAWL_EAT, "innate") var/obj/effect/proc_holder/spell/bloodcrawl/bloodspell = new AddSpell(bloodspell) if(istype(loc, /obj/effect/dummy/phased_mob/slaughter)) diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index 7df2586ec45..75ee9c53c25 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -60,7 +60,7 @@ forceMove(holder) // if we're not pulling anyone, or we can't eat anyone - if(!pullee || bloodcrawl != BLOODCRAWL_EAT) + if(!pullee || !HAS_TRAIT(src, TRAIT_BLOODCRAWL_EAT)) notransform = FALSE return diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 22ec966267b..14b4427433d 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -59,10 +59,9 @@ var/on_fire = 0 ///The "Are we on fire?" var var/fire_stacks = 0 ///Tracks how many stacks of fire we have on, max is usually 20 - var/bloodcrawl = 0 ///0 No blood crawling, [BLOODCRAWL] for bloodcrawling, [BLOODCRAWL_EAT] for crawling+mob devour - var/holder = null ///The holder for blood crawling - var/ventcrawler = 0 ///0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always - var/limb_destroyer = 0 ///1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. + var/holder = null //The holder for blood crawling + var/ventcrawler = 0 //0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always + var/limb_destroyer = 0 //1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. var/mob_size = MOB_SIZE_HUMAN var/mob_biotypes = MOB_ORGANIC @@ -128,10 +127,10 @@ var/list/ownedSoullinks //soullinks we are the owner of var/list/sharedSoullinks //soullinks we are a/the sharer of - + /// List of changes to body temperature, used by desease symtoms like fever var/list/body_temp_changes = list() - + //this stuff is here to make it simple for admins to mess with custom held sprites var/icon/held_lh = 'icons/mob/pets_held_lh.dmi'//icons for holding mobs var/icon/held_rh = 'icons/mob/pets_held_rh.dmi'