Skip to content

Commit

Permalink
spitter primo little buff (#626)
Browse files Browse the repository at this point in the history
  • Loading branch information
Helg2 authored Nov 15, 2024
1 parent c86913b commit b1e8d16
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -206,14 +206,18 @@
///Type of nade to be thrown
var/nade_type = /obj/item/explosive/grenade/smokebomb/xeno

/datum/action/ability/activable/xeno/toxic_grenade/use_ability(atom/A)
/datum/action/ability/activable/xeno/toxic_grenade/use_ability(atom/our_atom)
. = ..()
succeed_activate()
add_cooldown()
grenade_act(our_atom)

/// All the grenade activations go here, so we don't overwrite the use_ability
/datum/action/ability/activable/xeno/toxic_grenade/proc/grenade_act(atom/our_atom)
var/obj/item/explosive/grenade/smokebomb/xeno/nade = new nade_type(get_turf(owner))
nade.throw_at(A, 5, 1, owner, TRUE)
nade.throw_at(our_atom, 5, 1, owner, TRUE)
nade.activate(owner)
owner.visible_message(span_warning("[owner] vomits up a bulbous lump and throws it at [A]!"), span_warning("We vomit up a bulbous lump and throw it at [A]!"))
owner.visible_message(span_warning("[owner] vomits up a bulbous lump and throws it at [our_atom]!"), span_warning("We vomit up a bulbous lump and throw it at [our_atom]!"))

/obj/item/explosive/grenade/smokebomb/xeno
name = "toxic grenade"
Expand All @@ -226,6 +230,7 @@
smoketype = /datum/effect_system/smoke_spread/xeno/toxic
arm_sound = 'sound/voice/alien/yell_alt.ogg'
smokeradius = 3
overlay_type = null

/obj/item/explosive/grenade/smokebomb/xeno/update_overlays()
. = ..()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,57 @@
to_chat(owner, span_xenodanger("Our auxiliary sacks fill to bursting; we can use scatter spit again."))
owner.playsound_local(owner, 'sound/voice/alien/drool1.ogg', 25, 0, 1)
return ..()

// ***************************************
// *********** Sticky Grenade ************
// ***************************************
/datum/action/ability/activable/xeno/toxic_grenade/sticky
name = "Slime grenade"
desc = "Throws a lump of compressed acid to stick to a target, which will leave a trail of acid behind them."
ability_cost = 75
cooldown_duration = 45 SECONDS
nade_type = /obj/item/explosive/grenade/sticky/xeno

/datum/action/ability/activable/xeno/toxic_grenade/sticky/grenade_act(atom/our_atom)
var/obj/item/explosive/grenade/sticky/xeno/nade = new nade_type(get_turf(owner))
nade.throw_at(our_atom, 5, 1, owner, TRUE)
nade.activate(owner)
owner.visible_message(span_warning("[owner] vomits up a sticky lump and throws it at [our_atom]!"), span_warning("We vomit up a sticky lump and throw it at [our_atom]!"))

/obj/item/explosive/grenade/sticky/xeno
name = "\improper slime grenade"
desc = "A fleshy mass oozing acid. It appears to be rapidly decomposing."
greyscale_colors = "#42A500"
greyscale_config = /datum/greyscale_config/xenogrenade
self_sticky = TRUE
arm_sound = 'sound/voice/alien/yell_alt.ogg'
overlay_type = null
var/acid_spray_damage = 15

/obj/item/explosive/grenade/sticky/xeno/update_overlays()
. = ..()
if(active)
. += image('icons/obj/items/grenade.dmi', "xenonade_active")

/obj/item/explosive/grenade/sticky/xeno/prime()
for(var/turf/acid_tile AS in RANGE_TURFS(1, loc))
new /obj/effect/temp_visual/acid_splatter(acid_tile) //SFX
new /obj/effect/xenomorph/spray(acid_tile, 5 SECONDS, acid_spray_damage)
playsound(loc, "acid_bounce", 35)
if(stuck_to)
clean_refs()
qdel(src)

/obj/item/explosive/grenade/sticky/xeno/stuck_to(atom/hit_atom)
. = ..()
RegisterSignal(stuck_to, COMSIG_MOVABLE_MOVED, PROC_REF(drop_acid))
new /obj/effect/xenomorph/spray(get_turf(src), 5 SECONDS, acid_spray_damage)

///causes acid tiles underneath target when stuck_to
/obj/item/explosive/grenade/sticky/xeno/proc/drop_acid(datum/source, old_loc, movement_dir, forced, old_locs)
SIGNAL_HANDLER
new /obj/effect/xenomorph/spray(get_turf(src), 5 SECONDS, acid_spray_damage)

/obj/item/explosive/grenade/sticky/xeno/clean_refs()
UnregisterSignal(stuck_to, COMSIG_MOVABLE_MOVED)
return ..()
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,15 @@

spit_delay = 0.3 SECONDS
spit_types = list(/datum/ammo/xeno/acid/medium/passthrough, /datum/ammo/xeno/acid/auto)

// *** Abilities *** //
actions = list(
/datum/action/ability/xeno_action/xeno_resting,
/datum/action/ability/xeno_action/watch_xeno,
/datum/action/ability/activable/xeno/psydrain,
/datum/action/ability/activable/xeno/corrosive_acid/strong,
/datum/action/ability/activable/xeno/xeno_spit,
/datum/action/ability/activable/xeno/scatter_spit,
/datum/action/ability/activable/xeno/spray_acid/line,
/datum/action/ability/activable/xeno/toxic_grenade/sticky,
)

0 comments on commit b1e8d16

Please sign in to comment.