diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index 58308b9b9cf..2ede6833aa9 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -6,7 +6,7 @@ icon = 'icons/mob/simple/lavaland/nest.dmi' icon_state = "tendril" - faction = list(FACTION_MINING) + faction = list(FACTION_MINING, FACTION_ASHWALKER) max_mobs = 3 max_integrity = 250 mob_types = list(/mob/living/basic/mining/watcher) diff --git a/code/modules/antagonists/ashwalker/ashwalker.dm b/code/modules/antagonists/ashwalker/ashwalker.dm index b596802b414..eeba85982cd 100644 --- a/code/modules/antagonists/ashwalker/ashwalker.dm +++ b/code/modules/antagonists/ashwalker/ashwalker.dm @@ -28,10 +28,14 @@ . = ..() RegisterSignal(owner.current, COMSIG_MOB_EXAMINATE, PROC_REF(on_examinate)) //owner.teach_crafting_recipe(/datum/crafting_recipe/skeleton_key) //SKYRAT EDIT REMOVAL - ASH RITUALS + if(FACTION_NEUTRAL in owner.current.faction) + owner.current.faction.Remove(FACTION_NEUTRAL) // ashwalkers aren't neutral; they're ashwalker-aligned /datum/antagonist/ashwalker/on_removal() . = ..() UnregisterSignal(owner.current, COMSIG_MOB_EXAMINATE) + if(!(FACTION_NEUTRAL in owner.current.faction)) + owner.current.faction.Add(FACTION_NEUTRAL) /datum/antagonist/ashwalker/proc/on_examinate(datum/source, atom/A) SIGNAL_HANDLER diff --git a/code/modules/mob/living/basic/lavaland/mining.dm b/code/modules/mob/living/basic/lavaland/mining.dm index 3bcdd1ceaa6..38591dfb39c 100644 --- a/code/modules/mob/living/basic/lavaland/mining.dm +++ b/code/modules/mob/living/basic/lavaland/mining.dm @@ -5,7 +5,7 @@ status_flags = NONE //don't inherit standard basicmob flags mob_size = MOB_SIZE_LARGE mob_biotypes = MOB_ORGANIC|MOB_BEAST - faction = list(FACTION_MINING) + faction = list(FACTION_MINING, FACTION_ASHWALKER) unsuitable_atmos_damage = 0 minimum_survivable_temperature = 0 maximum_survivable_temperature = INFINITY @@ -42,3 +42,11 @@ drop_mod = crusher_drop_chance,\ drop_immediately = basic_mob_flags & DEL_ON_DEATH,\ ) + RegisterSignal(src, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(check_ashwalker_peace_violation)) + +/mob/living/basic/mining/proc/check_ashwalker_peace_violation(datum/source, mob/living/carbon/human/possible_ashwalker) + SIGNAL_HANDLER + + if(!isashwalker(possible_ashwalker) || !(FACTION_ASHWALKER in faction)) + return + faction.Remove(FACTION_ASHWALKER) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 673f4d257f3..2a13653bf6b 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -161,6 +161,7 @@ Lizard subspecies: ASHWALKERS TRAIT_MUTANT_COLORS, TRAIT_VIRUSIMMUNE, ) + inherent_factions = list(FACTION_ASHWALKER) species_language_holder = /datum/language_holder/lizard/ash digitigrade_customization = DIGITIGRADE_FORCED examine_limb_id = SPECIES_LIZARD