diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 495b5fb472c5..8cf0b9e73199 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -310,6 +310,10 @@ // Queen strain flags #define QUEEN_NORMAL "Normal" +// Queen strain flags +#define FACEHUGGER_NORMAL "Normal" +#define FACEHUGGER_WATCHER "Watcher" + // Drone strain flags #define DRONE_NORMAL "Normal" #define DRONE_HEALER "Healer" diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm index d9ab8a1e849d..89aeed991c6f 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm @@ -240,3 +240,31 @@ . += "Lifetime Hugs: [total_facehugs] / [next_facehug_goal]" else . += "Lifetime Hugs: [total_facehugs]" + + +/datum/xeno_mutator/watcher + name = "STRAIN: Facehugger - Watcher" + description = "You lose your ability to hide in exchange to see further!" + flavor_description = "No need to hide when you can see the danger." + individual_only = TRUE + caste_whitelist = list(XENO_CASTE_FACEHUGGER) + mutator_actions_to_remove = list( + /datum/action/xeno_action/onclick/xenohide, + ) + cost = 1 + + keystone = TRUE + +/datum/xeno_mutator/watcher/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) + . = ..() + if(!.) + return + + var/mob/living/carbon/xenomorph/facehugger/facehugger = mutator_set.xeno + + facehugger.client.change_view(9, src) + facehugger.color = "#FFAD33" // This is here to make them look distinct until a coder decides to replace my coder solution with a unique sprite. + + facehugger.mutation_type = FACEHUGGER_WATCHER + mutator_update_actions(facehugger) + mutator_set.recalculate_actions(description, flavor_description) diff --git a/icons/mob/xenos/facehugger.dmi b/icons/mob/xenos/facehugger.dmi index d44903adf941..2d8665899331 100644 Binary files a/icons/mob/xenos/facehugger.dmi and b/icons/mob/xenos/facehugger.dmi differ