diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm index 39b05b964648..c5988f12539d 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm @@ -566,3 +566,18 @@ var/mob/living/carbon/xenomorph/xeno = owner xeno.xeno_tacmap() return ..() + +/datum/action/xeno_action/active_toggle/toggle_meson_vision + name = "Toggle Meson Vision" + action_icon_state = "project_xeno" + plasma_cost = 0 + action_type = XENO_ACTION_CLICK + ability_primacy = XENO_PRIMARY_ACTION_5 + +/datum/action/xeno_action/active_toggle/toggle_meson_vision/enable_toggle() + . = ..() + owner.sight |= SEE_TURFS + +/datum/action/xeno_action/active_toggle/toggle_meson_vision/disable_toggle() + . = ..() + owner.sight &= ~SEE_TURFS diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm b/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm index 294817f5e74e..106dcdcacb62 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm @@ -66,6 +66,7 @@ /datum/action/xeno_action/onclick/place_trap, //second macro /datum/action/xeno_action/activable/burrow, //third macro /datum/action/xeno_action/onclick/tremor, //fourth macro + /datum/action/xeno_action/active_toggle/toggle_meson_vision, /datum/action/xeno_action/onclick/tacmap, ) @@ -82,10 +83,6 @@ weed_food_states = list("Burrower_1","Burrower_2","Burrower_3") weed_food_states_flipped = list("Burrower_1","Burrower_2","Burrower_3") -/mob/living/carbon/xenomorph/burrower/Initialize(mapload, mob/living/carbon/xenomorph/oldxeno, h_number) - . = ..() - sight |= SEE_TURFS - /mob/living/carbon/xenomorph/burrower/ex_act(severity) if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) return diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm index 43fb8b4976f2..8024ed366405 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm @@ -71,6 +71,7 @@ /datum/action/xeno_action/activable/secrete_resin/hivelord, //third macro /datum/action/xeno_action/activable/transfer_plasma/hivelord, // to be consistent with drone placement /datum/action/xeno_action/active_toggle/toggle_speed, //fourth macro + /datum/action/xeno_action/active_toggle/toggle_meson_vision, /datum/action/xeno_action/onclick/tacmap, ) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm index 538aacc63722..747463eb5ee5 100644 --- a/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm @@ -70,6 +70,10 @@ var/turf/target_turf = get_turf(target_atom) if(!target_turf) return + + if(!(target_turf in view(10, owner))) + to_chat(owner, SPAN_XENONOTICE("We must have a direct line of sight!")) + return /// Check if the target is a resin door and open or close it if(istype(target_atom, /obj/structure/mineral_door/resin))