Skip to content
This repository has been archived by the owner on Aug 21, 2024. It is now read-only.

Defiler changes #495

Closed
wants to merge 3 commits into from
Closed
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
3 changes: 2 additions & 1 deletion code/__DEFINES/dcs/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -823,7 +823,8 @@
#define COMSIG_XENOABILITY_RADIAL_SELECT_REAGENT "xenoability_radial_select_reagent"
#define COMSIG_XENOABILITY_REAGENT_SLASH "xenoability_reagent_slash"
#define COMSIG_XENOABILITY_DEFILE "xenoability_defile"
#define COMSIG_XENOABILITY_TENTACLE "xenoability tentacle"
//#define COMSIG_XENOABILITY_TENTACLE "xenoability tentacle"
#define COMSIG_XENOABILITY_LAY_GAS_EGG "xenoability_lay_gas_egg"

#define COMSIG_XENOABILITY_RESIN_WALKER "xenoability_resin_walker"
#define COMSIG_XENOABILITY_BUILD_TUNNEL "xenoability_build_tunnel"
Expand Down
9 changes: 8 additions & 1 deletion code/datums/keybinding/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -441,12 +441,19 @@
keybind_signal = COMSIG_XENOABILITY_DEFILE
hotkey_keys = list("F")

/datum/keybinding/xeno/tentacle
/*/datum/keybinding/xeno/tentacle
name = "tentacle"
full_name = "Defiler: Tentacle"
description = "Allows the defiler to grab a tallhost or item from range and bring it towards the defiler."
keybind_signal = COMSIG_XENOABILITY_TENTACLE
hotkey_keys = list("Q")
*/
/datum/keybinding/xeno/lay_gas_egg
name = "lay_gas_egg"
full_name = "Defiler: Lay Gas Egg"
description = "Create an egg that filled with chosen gas"
keybind_signal = COMSIG_XENOABILITY_LAY_GAS_EGG
hotkey_keys = list("Z")

/datum/keybinding/xeno/inject_egg_neurogas
name = "inject_egg_neurogas"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,7 @@
// ***************************************
// *********** Tentacle
// ***************************************
/*
/datum/action/ability/activable/xeno/tentacle
name = "Tentacle"
action_icon_state = "tail_attack"
Expand Down Expand Up @@ -607,7 +608,58 @@
name = "You can't see this"
invisibility = INVISIBILITY_ABSTRACT

*/
#undef DEFILER_NEUROTOXIN
#undef DEFILER_HEMODILE
#undef DEFILER_TRANSVITOX
#undef DEFILER_OZELOMELYN

/datum/action/ability/xeno_action/lay_gas_egg
name = "Lay Gas Egg"
action_icon_state = "lay_gas_egg"
desc = "Create an egg that filled with chosen gas."
ability_cost = 100
cooldown_duration = 10 SECONDS
keybinding_signals = list(
KEYBINDING_NORMAL = COMSIG_XENOABILITY_LAY_GAS_EGG,
)

/datum/action/ability/xeno_action/lay_gas_egg/action_activate(atom/A)
. = ..()
var/mob/living/carbon/xenomorph/defiler/X = owner
var/turf/current_turf = get_turf(X)

if(!current_turf.check_alien_construction(X))
return fail_activate()

if(!X.loc_weeds_type)
to_chat(X, span_xenowarning("Our eggs wouldn't grow well enough here. Lay them on resin."))
return fail_activate()

X.visible_message(span_xenonotice("[X] starts planting an egg."), \
span_xenonotice("We start planting an egg."), null, 5)

if(!do_after(owner, 1 SECONDS, NONE, current_turf, BUSY_ICON_BUILD, extra_checks = CALLBACK(current_turf, TYPE_PROC_REF(/turf, check_alien_construction), owner)))
return fail_activate()

var/obj/alien/egg/gas/gasegg = new(X.loc, X.hivenumber)
playsound(current_turf, 'sound/effects/splat.ogg', 15, 1)

switch(X.selected_reagent)
if(/datum/reagent/toxin/xeno_neurotoxin)
gasegg.gas_type = /datum/effect_system/smoke_spread/xeno/neuro/medium
if(/datum/reagent/toxin/xeno_ozelomelyn)
gasegg.gas_type = /datum/effect_system/smoke_spread/xeno/ozelomelyn
if(/datum/reagent/toxin/xeno_hemodile)
gasegg.gas_type = /datum/effect_system/smoke_spread/xeno/hemodile
if(/datum/reagent/toxin/xeno_transvitox)
gasegg.gas_type = /datum/effect_system/smoke_spread/xeno/transvitox
if(/datum/reagent/toxin/acid)
gasegg.gas_type = /datum/effect_system/smoke_spread/xeno/acid/light
gasegg.update_icon_state()

succeed_activate()
add_cooldown()

owner.record_traps_created()
X.record_war_crime()
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
wound_type = "defiler" //used to match appropriate wound overlays

// *** Melee Attacks *** //
melee_damage = 26
melee_damage = 23

// *** Speed *** //
speed = -1
Expand Down Expand Up @@ -85,13 +85,12 @@
/datum/action/ability/activable/xeno/plant_weeds,
/datum/action/ability/activable/xeno/defile,
/datum/action/ability/xeno_action/lay_egg,
/datum/action/ability/activable/xeno/inject_egg_neurogas,
/datum/action/ability/xeno_action/lay_gas_egg,
/datum/action/ability/xeno_action/emit_neurogas,
/datum/action/ability/xeno_action/select_reagent,
/datum/action/ability/xeno_action/reagent_slash,
/datum/action/ability/xeno_action/pheromones,
/datum/action/ability/xeno_action/pheromones/emit_recovery,
/datum/action/ability/xeno_action/pheromones/emit_warding,
/datum/action/ability/xeno_action/pheromones/emit_frenzy,
/datum/action/ability/activable/xeno/tentacle,
)
27 changes: 27 additions & 0 deletions modular_RUtgmc/code/modules/reagents/reagents/toxin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,30 @@
/datum/reagent/medicine/xenojelly/on_mob_delete(mob/living/L, metabolism)
REMOVE_TRAIT(L, TRAIT_IGNORE_SUFFOCATION, REAGENT_TRAIT(src))
return ..()

/datum/reagent/toxin/xeno_hemodile
custom_metabolism = 0.4

/datum/reagent/toxin/xeno_hemodile/on_mob_life(mob/living/L, metabolism)

var/slowdown_multiplier = 0.5 //Because hemodile is obviously in blood already
var/reagent_amount

for(var/datum/reagent/current_reagent AS in L.reagents.reagent_list) //Cycle through all chems
if(is_type_in_typecache(current_reagent, GLOB.defiler_toxins_typecache_list)) //For each xeno toxin reagent, double the strength multiplier
slowdown_multiplier *= 2 //Each other Defiler toxin increases the multiplier by 2x; 2x if we have 1 combo chem, 4x if we have 2
reagent_amount += L.reagents.get_reagent_amount(/datum/reagent/toxin/xeno_hemodile)
MeowEmiya marked this conversation as resolved.
Show resolved Hide resolved

switch(slowdown_multiplier)
if(0 to 1)
to_chat(L, span_warning("You feel your legs tense up."))
if(2 to 3.9)
L.Paralyze(3 SECONDS)
L.reagents.remove_reagent(/datum/reagent/toxin/xeno_hemodile, reagent_amount)

L.add_movespeed_modifier(MOVESPEED_ID_XENO_HEMODILE, TRUE, 0, NONE, TRUE, 1.5 * slowdown_multiplier)

return ..()
MeowEmiya marked this conversation as resolved.
Show resolved Hide resolved

/datum/reagent/toxin/xeno_hemodile/on_mob_delete(mob/living/L, metabolism)
L.remove_movespeed_modifier(MOVESPEED_ID_XENO_HEMODILE)
Binary file modified modular_RUtgmc/icons/Xeno/actions.dmi
Binary file not shown.
Loading