Skip to content

Commit

Permalink
Lesser drone nerfs (#6140)
Browse files Browse the repository at this point in the history
# About the pull request

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game
Lesser drones can go for extremely high risk high reward strategies
without any risk as there is basically an infinite amount of respawns
and no punishment for dying.

I don't see why they should get a different treatment than huggers as
they can just run in and apply facehuggers manually or for going off
weeds to sneak into backline and place huggers on AFK marines they saw
from ghost or just running around being an annoyance.

And this is coming from a xeno main.
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: You can no longer infinitely extend facehugger's lifetime by
REDACTED
balance: Lessers now lose 5 hp every 2 seconds off weeds
/:cl:

---------

Co-authored-by: Drathek <[email protected]>
  • Loading branch information
Git-Nivrak and Drulikar authored Apr 20, 2024
1 parent 3344367 commit 7679222
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 2 deletions.
25 changes: 24 additions & 1 deletion code/modules/mob/living/carbon/xenomorph/Facehuggers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@
/// the nearest human before dying
var/jumps_left = 2

var/time_to_live = 30 SECONDS
var/death_timer

var/icon_xeno = 'icons/mob/xenos/effects.dmi'
var/icon_xenonid = 'icons/mob/xenonids/xenonid_crab.dmi'

Expand All @@ -55,6 +58,9 @@
set_hive_data(src, hivenumber)
go_active()

if (hivenumber != XENO_HIVE_TUTORIAL)
death_timer = addtimer(CALLBACK(src, PROC_REF(end_lifecycle)), time_to_live, TIMER_OVERRIDE|TIMER_STOPPABLE|TIMER_UNIQUE)


/obj/item/clothing/mask/facehugger/Destroy()
. = ..()
Expand All @@ -75,6 +81,10 @@
if(QDESTROYING(src))
return
addtimer(CALLBACK(src, PROC_REF(check_turf)), 0.2 SECONDS)

if(!death_timer && hivenumber != XENO_HIVE_TUTORIAL)
death_timer = addtimer(CALLBACK(src, PROC_REF(end_lifecycle)), time_to_live, TIMER_OVERRIDE|TIMER_STOPPABLE|TIMER_UNIQUE)

if(stat == CONSCIOUS && loc) //Make sure we're conscious and not idle or dead.
go_idle()
if(attached)
Expand Down Expand Up @@ -173,9 +183,18 @@
if(exposed_temperature > 300)
die()

/obj/item/clothing/mask/facehugger/equipped(mob/M)
/obj/item/clothing/mask/facehugger/equipped(mob/holder)
SHOULD_CALL_PARENT(FALSE) // ugh equip sounds
// So picking up a hugger does not prematurely kill it
if (!isxeno(holder))
return

var/mob/living/carbon/xenomorph/xeno = holder

if ((xeno.caste.hugger_nurturing || hivenumber == XENO_HIVE_TUTORIAL) && death_timer)
deltimer(death_timer)
death_timer = null

go_idle()

/obj/item/clothing/mask/facehugger/Crossed(atom/target)
Expand Down Expand Up @@ -410,6 +429,10 @@
deltimer(jump_timer)
jump_timer = null

if(death_timer)
deltimer(death_timer)
death_timer = null

if(!impregnated)
icon_state = "[initial(icon_state)]_dead"
stat = DEAD
Expand Down
10 changes: 9 additions & 1 deletion code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@
can_be_revived = FALSE

build_time_mult = BUILD_TIME_MULT_LESSER_DRONE
behavior_delegate_type = /datum/behavior_delegate/lesser_drone_base

caste_desc = "A builder of hives."
can_hold_facehuggers = 1
can_hold_facehuggers = TRUE
can_hold_eggs = CAN_HOLD_TWO_HANDS
acid_level = 1
weed_level = WEED_LEVEL_STANDARD
Expand Down Expand Up @@ -118,3 +119,10 @@

/mob/living/carbon/xenomorph/lesser_drone/handle_ghost_message()
return

/datum/behavior_delegate/lesser_drone_base
name = "Base Lesser Drone Behavior Delegate"

/datum/behavior_delegate/lesser_drone_base/on_life()
if(bound_xeno.body_position == STANDING_UP && !(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno)))
bound_xeno.adjustBruteLoss(5)

0 comments on commit 7679222

Please sign in to comment.