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

Acid Runner: Acid gen cap #7850

Open
wants to merge 19 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 4 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
1 change: 1 addition & 0 deletions code/__DEFINES/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,7 @@
/////////////////////////////////////////////////////////////////////////////////////

// Damage - this is applied as a flat nerf/buff to the xeno's average damage
#define XENO_DAMAGE_MOD_VERY_VERY_SMALL 2.5
#define XENO_DAMAGE_MOD_VERY_SMALL 5
#define XENO_DAMAGE_MOD_SMALL 10
#define XENO_DAMAGE_MOD_MED 15
Expand Down
5 changes: 3 additions & 2 deletions code/modules/mob/living/carbon/human/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@


/mob/living/carbon/human/attack_animal(mob/living/M as mob)
if(M.melee_damage_upper == 0)
if(M.melee_damage_upper += burn_damage_upper == 0)
TheManWithNoHands marked this conversation as resolved.
Show resolved Hide resolved
M.emote("[M.friendly] [src]")
else
if(M.attack_sound)
Expand All @@ -248,9 +248,10 @@
M.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [key_name(src)]</font>")
src.attack_log += text("\[[time_stamp()]\] <font color='orange'>was attacked by [key_name(M)]</font>")
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
var/burn_damage = rand(M.burn_damage_lower, M.burn_damage_upper)
var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")
var/obj/limb/affecting = get_limb(rand_zone(dam_zone))
apply_damage(damage, BRUTE, affecting)
apply_damage(damage, BRUTE, affecting += burn_damage, BURN)


/mob/living/carbon/human/proc/implant_loyalty(mob/living/carbon/human/M, override = FALSE) // Won't override by default.
Expand Down
9 changes: 7 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
TheManWithNoHands marked this conversation as resolved.
Show resolved Hide resolved
var/burn_damage_upper = 0
var/plasma_stored = 10
var/plasma_max = 10
var/plasma_gain = 5
Expand Down Expand Up @@ -206,6 +204,7 @@
var/evasion_modifier = 0
var/attack_speed_modifier = 0
var/armor_integrity_modifier = 0
var/burn_damage_modifier = 0

var/list/modifier_sources

Expand Down Expand Up @@ -913,6 +912,12 @@
melee_damage_upper += caste.melee_damage_upper
melee_vehicle_damage += caste.melee_vehicle_damage

burn_damage_lower = burn_damage_modifier
burn_damage_upper = burn_damage_modifier
if(caste)
burn_damage_lower += caste.burn_damage_lower
burn_damage_upper += caste.burn_damage_upper

/mob/living/carbon/xenomorph/proc/recalculate_evasion()
if(caste)
evasion = evasion_modifier + caste.evasion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
///allows fine tuning melee damage to vehicles per caste.
var/melee_vehicle_damage = 10
var/evasion = XENO_EVASION_NONE
var/burn_damage_lower = 0
var/burn_damage_upper = 0

var/speed = XENO_SPEED_TIER_10

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 ammount. 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!"
TheManWithNoHands marked this conversation as resolved.
Show resolved Hide resolved
flavor_description = "This one will be the last thing they hear. A martyr."
icon_state_prefix = "Acider"

Expand All @@ -20,6 +20,8 @@
runner.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5
runner.armor_modifier += XENO_ARMOR_MOD_MED
runner.health_modifier += XENO_HEALTH_MOD_ACIDER
runner.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL
runner.burn_damage_modifier += XENO_DAMAGE_MOD_VERY_VERY_SMALL

runner.recalculate_everything()

Expand All @@ -32,9 +34,10 @@

var/max_acid = 1000
var/caboom_timer = 20
var/acid_slash_regen_lying = 8
var/acid_slash_regen_standing = 14
var/acid_slash_regen_lying = 10
var/acid_slash_regen_standing = 16
var/acid_passive_regen = 1
var/acid_gen_cap = 400 //Ammount of acid from wich passive acid generation stops

var/melt_acid_cost = 100

Expand All @@ -47,15 +50,20 @@
var/caboom_struct_acid_type = /obj/effect/xenomorph/acid

/datum/behavior_delegate/runner_acider/proc/modify_acid(amount)
if(acid_amount >= acid_gen_cap) //This checks if the current acid is greater or equal to the cap, and stops/starts passive acid generation depending if it is.
acid_passive_regen = 0
else
acid_passive_regen = 1
TheManWithNoHands marked this conversation as resolved.
Show resolved Hide resolved
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 uniqe status pannel info for Acid Runner is handelt here.
. = list()
. += "Acid: [acid_amount]"
. += "Acid: [acid_amount]/[max_acid]"
. += "Acid generation cap: [acid_gen_cap]"
if(caboom_trigger)
. += "FOR THE HIVE!: in [caboom_left] seconds"

Expand Down Expand Up @@ -106,8 +114,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
2 changes: 2 additions & 0 deletions code/modules/mob/living/living_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
// Putting these here for attack_animal().
var/melee_damage_lower = 0
var/melee_damage_upper = 0
var/burn_damage_lower = 0
var/burn_damage_upper = 0
var/attacktext = "attacks"
var/attack_sound = null
/// Custom sound if the mob gets slashed by a xenomorph
Expand Down
Binary file modified icons/mob/hud/hud.dmi
Binary file not shown.
Loading