Skip to content

Commit

Permalink
TGS Test Merge (#7850)
Browse files Browse the repository at this point in the history
  • Loading branch information
cm13-github committed Feb 3, 2025
2 parents 5a37fc7 + 267636e commit 185add3
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 8 deletions.
2 changes: 0 additions & 2 deletions code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,6 @@
melee_damage_upper = 10
var/melee_vehicle_damage = 10
var/claw_type = CLAW_TYPE_NORMAL
var/burn_damage_lower = 0
var/burn_damage_upper = 0
var/plasma_stored = 10
var/plasma_max = 10
var/plasma_gain = 5
Expand Down
2 changes: 0 additions & 2 deletions code/modules/mob/living/carbon/xenomorph/attack_alien.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,6 @@
attacking_xeno.track_slashes(attacking_xeno.caste_type) //Adds to slash stat.
var/damage = rand(attacking_xeno.melee_damage_lower, attacking_xeno.melee_damage_upper) + dam_bonus
var/acid_damage = 0
if(attacking_xeno.burn_damage_lower)
acid_damage = rand(attacking_xeno.burn_damage_lower, attacking_xeno.burn_damage_upper)

//Frenzy auras stack in a way, then the raw value is multipled by two to get the additive modifier
if(attacking_xeno.frenzy_aura > 0)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/datum/xeno_strain/acider
name = RUNNER_ACIDER
description = "At the cost of a little bit of your speed and all of your current abilities, you gain a considerable amount of health, some armor, and a new organ that fills with volatile acid over time. Your Tail Stab and slashes apply acid to living lifeforms that slowly burns them, and slashes against targets with acid stacks fill your acid glands. You also gain Corrosive Acid equivalent to that of a boiler that you can deploy more quickly than any other caste, at the cost of a chunk of your acid reserves with each use. Finally, after a twenty second windup, you can force your body to explode, covering everything near you with acid. The more acid you have stored, the more devastating the explosion will be, but during those twenty seconds before detonation you are slowed and give off several warning signals which give talls an opportunity to end you before you can detonate. If you successfully explode, you will reincarnate as a larva again!"
description = "At the cost of a little bit of your speed and all of your current abilities, you gain a considerable amount of health, some armor, and a new organ that fills with volatile acid over time up to a certain amount. Your Tail Stab and slashes apply acid to living lifeforms that slowly burns them, and slashes against targets with acid stacks fill your acid glands. As you are in combat, your glands become active and produce passively more acid until the fight is over. You also gain Corrosive Acid equivalent to that of a boiler that you can deploy more quickly than any other caste, at the cost of a chunk of your acid reserves with each use. Finally, after a twenty second windup, you can force your body to explode, covering everything near you with acid. The more acid you have stored, the more devastating the explosion will be, but during those twenty seconds before detonation you are slowed and give off several warning signals which give talls an opportunity to end you before you can detonate. If you successfully explode, you will reincarnate as a larva again!"
flavor_description = "This one will be the last thing they hear. A martyr."
icon_state_prefix = "Acider"

Expand Down Expand Up @@ -35,6 +35,15 @@
var/acid_slash_regen_lying = 8
var/acid_slash_regen_standing = 14
var/acid_passive_regen = 1
/// Amount of acid before passive (non-combat) acid generation stops
var/acid_gen_cap = 400

/// How much acid is generated per tick in combat
var/combat_acid_regen = 1
/// Duration of combat acid generation after a slash/tailstab
var/combat_gen_timer = 60
/// Determines whether the combat acid generation is on or off
var/combat_gen_active = FALSE

var/melt_acid_cost = 100

Expand All @@ -46,16 +55,26 @@
var/caboom_burn_range_ratio = 100
var/caboom_struct_acid_type = /obj/effect/xenomorph/acid

var/drool_overlay_active = FALSE
var/mutable_appearance/drool_applied_icon

/datum/behavior_delegate/runner_acider/New()
. = ..()
drool_applied_icon = mutable_appearance('icons/mob/xenos/castes/tier_1/runner_strain_overlays.dmi', "Acider Runner Walking")

/datum/behavior_delegate/runner_acider/proc/modify_acid(amount)
acid_amount += amount
if(acid_amount > max_acid)
acid_amount = max_acid
if(acid_amount < 0)
acid_amount = 0

/datum/behavior_delegate/runner_acider/append_to_stat()
/datum/behavior_delegate/runner_acider/append_to_stat() //The status panel info for Acid Runner is handed here.
. = list()
. += "Acid: [acid_amount]"
. += "Acid: [acid_amount]/[max_acid]"
if(acid_amount >= acid_gen_cap)
. += "Passive acid generation cap ([acid_gen_cap]) reached"
. += "Battle acid generation: [combat_gen_active ? "Active" : "Inactive"]"
if(caboom_trigger)
. += "FOR THE HIVE!: in [caboom_left] seconds"

Expand All @@ -82,8 +101,15 @@
return
modify_acid(acid_slash_regen_standing)

addtimer(CALLBACK(src, PROC_REF(combat_gen_end)), combat_gen_timer, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) //this calls for the proc to turn combat acid gen off after a set time passes
combat_gen_active = TRUE //turns combat acid regen on
drool_overlay_active = TRUE //turns the overlay on

/datum/behavior_delegate/runner_acider/on_life()
modify_acid(acid_passive_regen)
if(acid_amount < acid_gen_cap)
modify_acid(acid_passive_regen)
if(combat_gen_active)
modify_acid(combat_acid_regen)
if(!bound_xeno)
return
if(bound_xeno.stat == DEAD)
Expand All @@ -106,8 +132,11 @@
var/image/holder = bound_xeno.hud_list[PLASMA_HUD]
holder.overlays.Cut()
var/percentage_acid = round((acid_amount / max_acid) * 100, 10)
var/percentage_acid_cap = round((acid_gen_cap /max_acid) * 100, 10)
if(percentage_acid)
holder.overlays += image('icons/mob/hud/hud.dmi', "xenoenergy[percentage_acid]")
if(acid_amount >= acid_gen_cap)
holder.overlays += image('icons/mob/hud/hud.dmi', "cap[percentage_acid_cap]")

/datum/behavior_delegate/runner_acider/handle_death(mob/M)
var/image/holder = bound_xeno.hud_list[PLASMA_HUD]
Expand Down Expand Up @@ -165,3 +194,28 @@
to_chat(src, SPAN_XENOWARNING("You cannot ventcrawl when you are about to explode!"))
return FALSE
return ..()

/datum/behavior_delegate/runner_acider/proc/combat_gen_end() //This proc is triggerd once the combat acid timer runs out.
combat_gen_active = FALSE //turns combat acid off

drool_overlay_active = FALSE //turns the drool overlay off
bound_xeno.update_icons()

/datum/behavior_delegate/runner_acider/on_update_icons()
bound_xeno.overlays -= drool_applied_icon
drool_applied_icon.overlays.Cut()

if(!drool_overlay_active)
return

if(bound_xeno.stat == DEAD)
drool_applied_icon.icon_state = "Acider Runner Dead"
else if(bound_xeno.body_position == LYING_DOWN)
if(!HAS_TRAIT(bound_xeno, TRAIT_INCAPACITATED) && !HAS_TRAIT(bound_xeno, TRAIT_FLOORED))
drool_applied_icon.icon_state = "Acider Runner Sleeping"
else
drool_applied_icon.icon_state = "Acider Runner Knocked Down"
else
drool_applied_icon.icon_state = "Acider Runner Walking"

bound_xeno.overlays += drool_applied_icon
Binary file modified icons/mob/hud/hud.dmi
Binary file not shown.
Binary file not shown.

0 comments on commit 185add3

Please sign in to comment.