Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -252,36 +252,33 @@
var/activation_delay = 1 SECONDS
var/prime_delay = 1 SECONDS

/datum/action/xeno_action/activable/prae_acid_ball/use_ability(atom/target)
if (!target)
return
/datum/action/xeno_action/activable/prae_acid_ball/use_ability(atom/target_atom)
var/mob/living/carbon/xenomorph/acid_ball_user = owner

var/mob/living/carbon/xenomorph/acidball_user = owner
if (!acidball_user.check_state() || acidball_user.action_busy)
if(acid_ball_user.action_busy)
return

if (!action_cooldown_check())
return
var/turf/current_turf = get_turf(acidball_user)
XENO_ACTION_CHECK(acid_ball_user)

if (!current_turf)
return
var/turf/current_turf = get_turf(acid_ball_user)

if (!do_after(acidball_user, activation_delay, INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE))
to_chat(acidball_user, SPAN_XENODANGER("We cancel our acid ball."))
if(!current_turf)
return

if (!check_and_use_plasma_owner())
if(!do_after(acid_ball_user, activation_delay, INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE))
to_chat(acid_ball_user, SPAN_XENODANGER("We cancel our acid ball."))
return

XENO_ACTION_CHECK_USE_PLASMA(acid_ball_user)

apply_cooldown()

to_chat(acidball_user, SPAN_XENOWARNING("We lob a compressed ball of acid into the air!"))
to_chat(acid_ball_user, SPAN_XENOWARNING("We lob a compressed ball of acid into the air!"))

var/obj/item/explosive/grenade/xeno_acid_grenade/grenade = new /obj/item/explosive/grenade/xeno_acid_grenade
grenade.cause_data = create_cause_data(initial(acidball_user.caste_type), acidball_user)
grenade.forceMove(get_turf(acidball_user))
grenade.throw_atom(target, 5, SPEED_SLOW, acidball_user, TRUE)
grenade.cause_data = create_cause_data(initial(acid_ball_user.caste_type), acid_ball_user)
grenade.forceMove(get_turf(acid_ball_user))
grenade.throw_atom(target_atom, 5, SPEED_SLOW, acid_ball_user, TRUE)
addtimer(CALLBACK(grenade, TYPE_PROC_REF(/obj/item/explosive, prime)), prime_delay)

return ..()
Expand Down
22 changes: 11 additions & 11 deletions code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm
Original file line number Diff line number Diff line change
Expand Up @@ -83,26 +83,26 @@
///reward for hitting shots instead of spamming acid ball
var/reward_shield = 15

/datum/behavior_delegate/praetorian_base/ranged_attack_additional_effects_target(atom/A)
if (!ishuman(A))
/datum/behavior_delegate/praetorian_base/ranged_attack_additional_effects_target(atom/target_atom)
if(!ishuman(target_atom))
return

var/mob/living/carbon/human/H = A
var/mob/living/carbon/human/target_human = target_atom

var/datum/effects/prae_acid_stacks/PAS = null
for (var/datum/effects/prae_acid_stacks/prae_acid_stacks in H.effects_list)
PAS = prae_acid_stacks
var/datum/effects/prae_acid_stacks/acid_stack = null
for(var/datum/effects/prae_acid_stacks/prae_acid_stacks in target_human.effects_list)
acid_stack = prae_acid_stacks
break

if (PAS == null)
new /datum/effects/prae_acid_stacks(H)
if(acid_stack == null)
new /datum/effects/prae_acid_stacks(target_human)
return
else
PAS.increment_stack_count()
acid_stack.increment_stack_count()
return

/datum/behavior_delegate/praetorian_base/ranged_attack_additional_effects_self(atom/A)
if(!ismob(A))
/datum/behavior_delegate/praetorian_base/ranged_attack_additional_effects_self(atom/target_atom)
if(!ismob(target_atom))
return
bound_xeno.add_xeno_shield(reward_shield, XENO_SHIELD_SOURCE_BASE_PRAE, add_shield_on = TRUE, max_shield = 45)
to_chat(bound_xeno, SPAN_NOTICE("Your exoskeleton shimmers for a fraction of a second as the acid coats your target."))
Expand Down