[MIRROR] Ashwalkers now start out in their proper faction; Lavaland mobs also have this if ashwalkers don't attack them (#28430)

* Ashwalkers now start out in their proper faction; Lavaland mobs also have this if ashwalkers don't attack them

* Update ashwalker.dm

---------

Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
This commit is contained in:
SkyratBot
2024-06-29 10:33:16 +05:30
committed by GitHub
co-authored by Joshua Kidder SpaceLoveSs13
parent 21575b0a3c
commit f0b883a298
4 changed files with 15 additions and 2 deletions
@@ -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)
@@ -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
@@ -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)
@@ -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