Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resin whisperer rework #3094

Merged
merged 10 commits into from
Apr 21, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions code/_globalvars/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,16 @@ GLOBAL_LIST_INIT(resin_build_order_hivelord, list(
/datum/resin_construction/resin_obj/resin_spike
))

GLOBAL_LIST_INIT(resin_build_order_hivelord_whisperer, list(
/datum/resin_construction/resin_turf/wall,
/datum/resin_construction/resin_turf/membrane,
/datum/resin_construction/resin_obj/door,
/datum/resin_construction/resin_obj/sticky_resin,
/datum/resin_construction/resin_obj/fast_resin,
/datum/resin_construction/resin_obj/resin_spike,
/datum/resin_construction/resin_obj/resin_node
))

GLOBAL_LIST_INIT(resin_build_order_ovipositor, list(
/datum/resin_construction/resin_turf/wall/queen,
/datum/resin_construction/resin_turf/wall/reflective,
Expand Down
7 changes: 7 additions & 0 deletions code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,10 @@
toggle_resin_walker()
to_chat(bound_xeno, SPAN_WARNING("You feel dizzy as the world slows down."))
bound_xeno.recalculate_move_delay = TRUE

/// This check mainly exists because of the new resin node ability for resin whisperer.
/mob/living/carbon/xenomorph/hivelord/proc/on_weeds()
var/turf/T = get_turf(src)
if(locate(/obj/effect/alien/weeds) in T)
return TRUE
return FALSE
Hopekz marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
/datum/xeno_mutator/resinwhisperer
name = "STRAIN: Hivelord - Resin Whisperer"
description = "You lose your corrosive acid, your ability to secrete thick resin, your ability to reinforce resin secretions, and you sacrifice a fifth of your plasma reserves to enhance your vision and gain a stronger connection to the resin. You can now remotely place resin secretions to a distance of twelve paces!"
description = "You lose your corrosive acid, your ability to secrete thick resin, your ability to reinforce resin secretions, sacrifice your ability to plant resin nodes outside of weeds, and you sacrifice a fifth of your plasma reserves to enhance your vision and gain a stronger connection to the resin. You can now remotely place resin secretions including resin nodes up to a distance of twelve paces!"
flavor_description = "Let the resin guide you. It whispers, so listen closely."
cost = MUTATOR_COST_EXPENSIVE
individual_only = TRUE
caste_whitelist = list(XENO_CASTE_HIVELORD)
mutator_actions_to_remove = list(
/datum/action/xeno_action/onclick/plant_weeds,
/datum/action/xeno_action/activable/secrete_resin/hivelord,
/datum/action/xeno_action/activable/corrosive_acid,
/datum/action/xeno_action/activable/transfer_plasma/hivelord,
Expand Down Expand Up @@ -35,7 +36,7 @@
mutator_set.recalculate_actions(description, flavor_description)
hivelord.recalculate_plasma()

hivelord.set_resin_build_order(GLOB.resin_build_order_drone)
hivelord.set_resin_build_order(GLOB.resin_build_order_hivelord_whisperer)
for(var/datum/action/xeno_action/action in hivelord.actions)
// Also update the choose_resin icon since it resets
if(istype(action, /datum/action/xeno_action/onclick/choose_resin))
Expand Down Expand Up @@ -67,6 +68,11 @@
action_type = XENO_ACTION_CLICK

/datum/action/xeno_action/activable/secrete_resin/remote/use_ability(atom/target_atom, mods)
var/mob/living/carbon/xenomorph/hivelord/hivelord_mob = owner
if(!hivelord_mob.on_weeds())
Hopekz marked this conversation as resolved.
Show resolved Hide resolved
to_chat(owner, SPAN_XENONOTICE("We must be standing on weeds to establish a connection to the resin."))
return

if(!action_cooldown_check())
return

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,3 +338,12 @@ GLOBAL_VAR_INIT(resin_lz_allowed, FALSE)
construction_name = "thick resin membrane"
build_path = /obj/structure/alien/movable_wall/membrane/thick

// Remote Resin Nodes for originally coded for Resin Whisperers
/datum/resin_construction/resin_obj/resin_node
name = "Resin Node"
desc = "Channel energy to spread our influence."
construction_name = "resin node"
cost = (XENO_RESIN_MEMBRANE_THICK_COST * 2) // 3x the cost of a thick membrane. At the time of coding that is 95*2 = 190

build_path = /obj/effect/alien/weeds/node
build_overlay_icon = /obj/effect/warning/alien/weak
Binary file modified icons/mob/hud/actions_xeno.dmi
Binary file not shown.