From cab1b3630afaa36d7895e0cdd31a1d95252a3513 Mon Sep 17 00:00:00 2001 From: Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com> Date: Fri, 3 May 2024 22:13:49 +0300 Subject: [PATCH 1/5] Update watcher.dm --- .../carbon/xenomorph/strains/castes/facehugger/watcher.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm index 7fba30b6f352..07d86a8e7e3e 100644 --- a/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm @@ -1,6 +1,6 @@ /datum/xeno_strain/watcher name = FACEHUGGER_WATCHER - description = "You lose your ability to hide in exchange to see further and the ability to no longer take damage outside of weeds. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike." + description = "You lose your ability to hide in exchange to see further. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike." flavor_description = "No need to hide when you can see the danger." actions_to_remove = list( @@ -19,3 +19,7 @@ // This has no special effects, it's just here to skip `/datum/behavior_delegate/facehugger_base/on_life()`. /datum/behavior_delegate/facehugger_watcher name = "Watcher Facehugger Behavior Delegate" + +/datum/behavior_delegate/facehugger_watcher/on_life() + if(bound_xeno.body_position == STANDING_UP && !(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno))) + bound_xeno.adjustBruteLoss(1) From eb5cdd8fccdce90abbcef435ecae448618424b89 Mon Sep 17 00:00:00 2001 From: Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com> Date: Sat, 4 May 2024 11:08:25 +0300 Subject: [PATCH 2/5] review --- .../abilities/facehugger/facehugger_abilities.dm | 5 +++++ .../abilities/facehugger/facehugger_powers.dm | 10 ++++++++++ .../xenomorph/strains/castes/facehugger/watcher.dm | 4 ++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_abilities.dm index ee1fed3094a7..d60d292cba25 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_abilities.dm @@ -17,3 +17,8 @@ freeze_time = 5 freeze_play_sound = FALSE can_be_shield_blocked = TRUE + +/datum/action/xeno_action/onclick/toggle_long_range/facehugger + handles_movement = FALSE + should_delay = FALSE + ability_primacy = XENO_PRIMARY_ACTION_3 diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm index 054762b3c7d4..6029dc5a529a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm @@ -26,3 +26,13 @@ to_chat(owner, SPAN_WARNING("We cannot do that while squeezing and scuttling!")) return FALSE return ..() + +/datum/action/xeno_action/onclick/toggle_long_range/facehugger/use_ability() + . = ..() + + var/mob/living/carbon/xenomorph/facehugger/facehugger = owner + + if (facehugger.is_zoomed) + ADD_TRAIT(facehugger, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Long-Range Sight")) + else + REMOVE_TRAIT(facehugger, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Long-Range Sight")) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm index 07d86a8e7e3e..87f0789e2975 100644 --- a/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm @@ -7,7 +7,7 @@ /datum/action/xeno_action/onclick/xenohide, ) actions_to_add = list( - /datum/action/xeno_action/onclick/toggle_long_range/runner, + /datum/action/xeno_action/onclick/toggle_long_range/facehugger, ) behavior_delegate_type = /datum/behavior_delegate/facehugger_watcher @@ -21,5 +21,5 @@ name = "Watcher Facehugger Behavior Delegate" /datum/behavior_delegate/facehugger_watcher/on_life() - if(bound_xeno.body_position == STANDING_UP && !(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno))) + if(bound_xeno.body_position == STANDING_UP && !(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno)) && !bound_xeno.is_zoomed) bound_xeno.adjustBruteLoss(1) From b2e8c8b96359e2a6d9c54417a2a391c36093d874 Mon Sep 17 00:00:00 2001 From: Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com> Date: Sat, 4 May 2024 16:33:40 +0300 Subject: [PATCH 3/5] Update code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm Co-authored-by: Drathek <76988376+Drulikar@users.noreply.github.com> --- .../xenomorph/strains/castes/facehugger/watcher.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm index 87f0789e2975..c5e1cff29c63 100644 --- a/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm @@ -21,5 +21,11 @@ name = "Watcher Facehugger Behavior Delegate" /datum/behavior_delegate/facehugger_watcher/on_life() - if(bound_xeno.body_position == STANDING_UP && !(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno)) && !bound_xeno.is_zoomed) - bound_xeno.adjustBruteLoss(1) + // Sap health if we're standing, not on weeds, and not zoomed out + if(bound_xeno.body_position != STANDING_UP) + return + if(bound_xeno.is_zoomed) + return + if(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno)) + return + bound_xeno.adjustBruteLoss(1) From c50575281f89f29fdd510fd4514c37db21a43beb Mon Sep 17 00:00:00 2001 From: Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com> Date: Sat, 4 May 2024 16:42:47 +0300 Subject: [PATCH 4/5] review 2 electric boogalo --- .../abilities/ability_helper_procs.dm | 4 ++++ .../abilities/facehugger/facehugger_powers.dm | 19 ++++++++++++++----- .../xenomorph/abilities/general_abilities.dm | 3 +++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm index 9bfc98a7091d..0990df678f61 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm @@ -195,6 +195,10 @@ client.pixel_x = -viewoffset client.pixel_y = 0 + for (var/datum/action/xeno_action/onclick/toggle_long_range/action in actions) + action.on_zoom_in() + return + /mob/living/carbon/xenomorph/proc/zoom_out() if(!client) return diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm index 6029dc5a529a..c98cf9d912de 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm @@ -25,14 +25,23 @@ if(current_airlock.density) //if its CLOSED YOU'RE SCUTTLING AND CANNOT POUNCE!!! to_chat(owner, SPAN_WARNING("We cannot do that while squeezing and scuttling!")) return FALSE + + if(HAS_TRAIT(owner, TRAIT_IMMOBILIZED)) + to_chat(owner, SPAN_WARNING("We cannot do that while immobilized!")) + return FALSE + return ..() -/datum/action/xeno_action/onclick/toggle_long_range/facehugger/use_ability() +/datum/action/xeno_action/onclick/toggle_long_range/facehugger/on_zoom_out() + . = ..() + + var/mob/living/carbon/xenomorph/facehugger/facehugger = owner + + REMOVE_TRAIT(facehugger, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Long-Range Sight")) + +/datum/action/xeno_action/onclick/toggle_long_range/facehugger/on_zoom_in() . = ..() var/mob/living/carbon/xenomorph/facehugger/facehugger = owner + ADD_TRAIT(facehugger, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Long-Range Sight")) - if (facehugger.is_zoomed) - ADD_TRAIT(facehugger, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Long-Range Sight")) - else - REMOVE_TRAIT(facehugger, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Long-Range Sight")) 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 f36e23394eef..39b05b964648 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm @@ -329,6 +329,9 @@ xeno.recalculate_speed() button.icon_state = "template" +/datum/action/xeno_action/onclick/toggle_long_range/proc/on_zoom_in() + return + /datum/action/xeno_action/onclick/toggle_long_range/proc/handle_mob_move_or_look(mob/living/carbon/xenomorph/xeno, actually_moving, direction, specific_direction) SIGNAL_HANDLER movement_buffer-- From bb52330a187d1d0abd5b296a0d67dcc45a062fbd Mon Sep 17 00:00:00 2001 From: Drathek <76988376+Drulikar@users.noreply.github.com> Date: Sat, 4 May 2024 19:42:53 -0700 Subject: [PATCH 5/5] Update code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm --- .../carbon/xenomorph/abilities/facehugger/facehugger_powers.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm index c98cf9d912de..6eef21c6d5af 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm @@ -36,7 +36,6 @@ . = ..() var/mob/living/carbon/xenomorph/facehugger/facehugger = owner - REMOVE_TRAIT(facehugger, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Long-Range Sight")) /datum/action/xeno_action/onclick/toggle_long_range/facehugger/on_zoom_in()