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

Sentinel buffs #4023

Closed
Closed
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
2 changes: 1 addition & 1 deletion code/__DEFINES/weapon_stats.dm
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ var/accuracy_mult_unwielded
////SCATTER////
*/

#define SCATTER_AMOUNT_NEURO 60
#define SCATTER_AMOUNT_NEURO 45
#define SCATTER_AMOUNT_TIER_1 15
#define SCATTER_AMOUNT_TIER_2 10
#define SCATTER_AMOUNT_TIER_3 8
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
macro_path = /datum/action/xeno_action/verb/verb_slowing_spit
action_type = XENO_ACTION_CLICK
ability_primacy = XENO_PRIMARY_ACTION_1
xeno_cooldown = 1.5 SECONDS
xeno_cooldown = 2 SECONDS
plasma_cost = 20

// Scatterspit
Expand All @@ -17,7 +17,7 @@
macro_path = /datum/action/xeno_action/verb/verb_scattered_spit
action_type = XENO_ACTION_CLICK
ability_primacy = XENO_PRIMARY_ACTION_2
xeno_cooldown = 8 SECONDS
xeno_cooldown = 5 SECONDS
plasma_cost = 30

// Paralyzing slash
Expand All @@ -32,3 +32,19 @@
plasma_cost = 50

var/buff_duration = 50

/datum/action/xeno_action/activable/hibernate
name = "hibernate"
action_icon_state = "warden_heal"
ability_name = "hibernate"
macro_path = /datum/action/xeno_action/verb/verb_hibernate
action_type = XENO_ACTION_CLICK
ability_primacy = XENO_PRIMARY_ACTION_4
xeno_cooldown = 50 SECONDS
plasma_cost = 150

var/regeneration_amount_total = 500
var/regeneration_ticks = 10
var/plasma_amount = 400
var/plasma_time = 10
var/time_between_plasmas = 1
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,10 @@
set hidden = TRUE
var/action_name = "Paralyzing Slash"
handle_xeno_macro(src,action_name)

/datum/action/xeno_action/verb/verb_hibernate()
set category = "Alien"
set name = "hibernate"
set hidden = TRUE
var/action_name = "hibernate"
handle_xeno_macro(src,action_name)
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,42 @@

to_chat(xeno, SPAN_XENODANGER("You have waited too long, your slash will no longer apply neurotoxin!"))
button.icon_state = "template"

/datum/action/xeno_action/activable/hibernate/use_ability(atom/target)
var/mob/living/carbon/xenomorph/X = owner
if (!X.check_state() || X.action_busy)
return

var/turf/current_turf = get_turf(X)
if(!current_turf || !istype(current_turf))
return

if (!action_cooldown_check() && check_and_use_plasma_owner())
return

if (!action_cooldown_check())
return

var/obj/effect/alien/weeds/alien_weeds = locate() in current_turf

if(!alien_weeds)
to_chat(X, SPAN_XENOWARNING("You need to be on weeds in order to hibernate."))
return

if(alien_weeds.linked_hive.hivenumber != X.hivenumber)
to_chat(X, SPAN_XENOWARNING("These weeds don't belong to your hive! You can't hibernate here."))
return

new /datum/effects/plasma_over_time(X, plasma_amount, plasma_time, time_between_plasmas)
new /datum/effects/heal_over_time(X, regeneration_amount_total, regeneration_ticks, 1)
X.SetSleeping(5)
addtimer(CALLBACK(src, PROC_REF(sleep_off)), 10 SECONDS, TIMER_UNIQUE)
X.add_filter("sleep_on", 1, list("type" = "outline", "color" = "#17991b80", "size" = 1))

apply_cooldown()
to_chat(X, SPAN_XENONOTICE("You fall into a deep sleep, quickly healing your wounds and restoring your plasma."))
return ..()

/datum/action/xeno_action/activable/hibernate/proc/sleep_off()
var/mob/living/carbon/xenomorph/X = owner
X.remove_filter("sleep_on")
9 changes: 5 additions & 4 deletions code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_1
armor_deflection = XENO_NO_ARMOR
evasion = XENO_EVASION_NONE
speed = XENO_SPEED_TIER_7
speed = XENO_SPEED_HELLHOUND

caste_desc = "A weak ranged combat alien."
evolves_to = list(XENO_CASTE_SPITTER)
deevolves_to = list("Larva")
acid_level = 1

tackle_min = 4
tackle_max = 4
tackle_min = 3
tackle_max = 3
tackle_chance = 50
tacklestrength_min = 4
tacklestrength_max = 4
Expand Down Expand Up @@ -48,6 +48,7 @@
/datum/action/xeno_action/activable/slowing_spit, //first macro
/datum/action/xeno_action/activable/scattered_spit, //second macro
/datum/action/xeno_action/onclick/paralyzing_slash, //third macro
/datum/action/xeno_action/activable/hibernate, //fourth macro
/datum/action/xeno_action/onclick/tacmap,
)
inherent_verbs = list(
Expand All @@ -64,7 +65,7 @@
// State
var/next_slash_buffed = FALSE

#define NEURO_TOUCH_DELAY 4 SECONDS
#define NEURO_TOUCH_DELAY 3 SECONDS

/datum/behavior_delegate/sentinel_base/melee_attack_modify_damage(original_damage, mob/living/carbon/carbon_target)
if (!next_slash_buffed)
Expand Down
8 changes: 5 additions & 3 deletions code/modules/projectiles/ammo_datums.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2450,7 +2450,7 @@
return

if(ishuman(M))
M.apply_effect(2.5, SUPERSLOW)
M.apply_effect(5, SUPERSLOW)
M.visible_message(SPAN_DANGER("[M]'s movements are slowed."))

var/no_clothes_neuro = FALSE
Expand All @@ -2475,9 +2475,11 @@
H.visible_message(SPAN_DANGER("[M] shrugs off the neurotoxin!"))
return

if(M.knocked_down < 0.7) // apply knockdown only if current knockdown is less than 0.7 second
M.apply_effect(0.7, WEAKEN)
if(M.knocked_down < 0.8) // apply knockdown only if current knockdown is less than 0.7 second
M.apply_effect(0.8, WEAKEN)
M.visible_message(SPAN_DANGER("[M] falls prone."))
if(M.slowed <1.5)
M.apply_effect(1.5, SLOW)

/datum/ammo/xeno/toxin/on_hit_mob(mob/M,obj/item/projectile/P)
if(ishuman(M))
Expand Down
Loading