From 2e2a285be139aa0e1997dab220218cff0797cf66 Mon Sep 17 00:00:00 2001 From: EnderMage99 <130017867+EnderMage99@users.noreply.github.com> Date: Mon, 18 Nov 2024 20:00:55 -0500 Subject: [PATCH] Endermage Rcorp Updates: Abnormality Nerfs/R-Corp Buffs (#2556) * Warden Nerf/RCorp Dagger Buff * King of Greed nerf * Info for KoG * Eris Nerf * censored nerf * Abno Overwrites * R-Corp Grenades * more grenades * Mini Censored Nerf * Recommended Changes * Reducing the nerf to censored's ranged attack. * Melting Love Nerf --------- Co-authored-by: Anton Zenkov --- .../melee/non_abnormality/rcorp.dm | 20 ++++- .../tegu_items/rcorp/!abno_overwrites.dm | 22 ++++++ _maps/map_files/Event/rcorp.dmm | 71 +++++++++++++++++- code/game/objects/items/grenades/r_corp.dm | 34 +++++++++ .../abnormality/aleph/censored.dm | 42 +++++++++-- .../abnormality/aleph/melting_love.dm | 33 ++++++++ .../abnormality/aleph/nothing_there.dm | 15 +++- .../simple_animal/abnormality/he/eris.dm | 23 +++++- .../abnormality/waw/greed_king.dm | 36 +++++++++ .../simple_animal/abnormality/waw/warden.dm | 40 +++++++++- icons/obj/grenade.dmi | Bin 35926 -> 37075 bytes lobotomy-corp13.dme | 1 + 12 files changed, 315 insertions(+), 22 deletions(-) create mode 100644 code/game/objects/items/grenades/r_corp.dm diff --git a/ModularTegustation/ego_weapons/melee/non_abnormality/rcorp.dm b/ModularTegustation/ego_weapons/melee/non_abnormality/rcorp.dm index 745297608d9a..3dafdfb2ed70 100644 --- a/ModularTegustation/ego_weapons/melee/non_abnormality/rcorp.dm +++ b/ModularTegustation/ego_weapons/melee/non_abnormality/rcorp.dm @@ -16,6 +16,13 @@ TEMPERANCE_ATTRIBUTE = 55, JUSTICE_ATTRIBUTE = 55, ) + var/rcorp_buff = 0 + +/obj/item/ego_weapon/city/rabbit_blade/Initialize() + if(SSmaptype.maptype == "rcorp") + rcorp_buff = 20 + force += rcorp_buff + return ..() /obj/item/ego_weapon/city/rabbit_blade/attack_self(mob/living/user) switch(damtype) @@ -23,13 +30,13 @@ damtype = WHITE_DAMAGE if(WHITE_DAMAGE) damtype = BLACK_DAMAGE - force = 30 + force = rcorp_buff + 30 if(BLACK_DAMAGE) damtype = PALE_DAMAGE - force = 25 + force = rcorp_buff + 25 if(PALE_DAMAGE) damtype = RED_DAMAGE - force = 35 + force = rcorp_buff + 35 to_chat(user, span_notice("\The [src] will now deal [damtype] damage.")) playsound(src, 'sound/items/screwdriver2.ogg', 50, TRUE) @@ -228,6 +235,13 @@ JUSTICE_ATTRIBUTE = 55 ) var/teleporting + var/rcorp_buff = 0 + +/obj/item/ego_weapon/city/rabbit_rush/Initialize() + if(SSmaptype.maptype == "rcorp") + rcorp_buff = 20 + force += rcorp_buff + return ..() /obj/item/ego_weapon/city/rabbit_rush/attack_self(mob/user) if(!CanUseEgo(user)) diff --git a/ModularTegustation/tegu_items/rcorp/!abno_overwrites.dm b/ModularTegustation/tegu_items/rcorp/!abno_overwrites.dm index 81a5ce69d7ca..8fc9b49b0657 100644 --- a/ModularTegustation/tegu_items/rcorp/!abno_overwrites.dm +++ b/ModularTegustation/tegu_items/rcorp/!abno_overwrites.dm @@ -74,3 +74,25 @@ if(SSmaptype.maptype == "rcorp") bullet_damage = 200 return ..() + +//Warden deals even less damage then more bodies they eat, and they take more damage from all attacks. +//Warden currently slowballs far to quickly, so this nerf should give R-Corp a better chance at fighting back against them. +/mob/living/simple_animal/hostile/abnormality/warden/Initialize() + if(IsCombatMap()) + damage_down = 10 + return ..() + +//Censored no longer applies his statues effect passivly, Now he needs to hit his ranged attack to apply it. +//For that reason, I am reducing the cooldown for that ranged attack and lowering it's damage by around 50%, so they can at least try to apply it more often. +/mob/living/simple_animal/hostile/abnormality/censored/Initialize() + if(SSmaptype.maptype == "rcorp") + ability_damage = 120 + ability_cooldown_time = 6 SECONDS + return ..() + +//Nothing There passive healing will only start when they are under 50% health. But, I am increasing that healing by 50%. +/mob/living/simple_animal/hostile/abnormality/nothing_there/Initialize() + if(SSmaptype.maptype == "rcorp") + heal_percent_per_second = 0.01275 + r_corp_regen_start = 0.5 + return ..() diff --git a/_maps/map_files/Event/rcorp.dmm b/_maps/map_files/Event/rcorp.dmm index d36dee4b32cc..7fcbd9762c25 100644 --- a/_maps/map_files/Event/rcorp.dmm +++ b/_maps/map_files/Event/rcorp.dmm @@ -18,6 +18,31 @@ /obj/machinery/telecomms/server/presets/engineering, /turf/open/floor/circuit/telecomms/mainframe, /area/city/outskirts) +"cj" = ( +/obj/structure/closet/crate{ + name = "rcorp explosives"; + color = "#d67200" + }, +/obj/item/grenade/r_corp/pale, +/obj/item/grenade/r_corp/pale, +/obj/item/grenade/r_corp/pale, +/obj/item/grenade/r_corp/pale, +/obj/item/grenade/r_corp/pale, +/obj/item/grenade/r_corp/black, +/obj/item/grenade/r_corp/black, +/obj/item/grenade/r_corp/black, +/obj/item/grenade/r_corp/black, +/obj/item/grenade/r_corp/black, +/obj/item/grenade/r_corp/black, +/obj/item/grenade/r_corp/black, +/obj/item/grenade/r_corp/black, +/obj/effect/turf_decal/box/red, +/obj/item/grenade/r_corp/black, +/obj/item/grenade/r_corp/black, +/obj/item/grenade/r_corp/pale, +/obj/item/grenade/r_corp/pale, +/turf/open/floor/pod/dark, +/area/city/outskirts) "co" = ( /obj/effect/landmark/abno_objectivespawn, /turf/open/floor/plating/asteroid, @@ -273,6 +298,38 @@ /obj/item/clothing/suit/armor/ego_gear/rcorp_officer, /turf/open/floor/pod, /area/city/outskirts) +"nV" = ( +/obj/structure/closet/crate{ + name = "rcorp explosives"; + color = "#d67200" + }, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/effect/turf_decal/box/red, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp/white, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/obj/item/grenade/r_corp, +/turf/open/floor/pod/dark, +/area/city/outskirts) "oi" = ( /turf/closed/indestructible/rock, /area/city/outskirts) @@ -756,6 +813,12 @@ /obj/machinery/telecomms/server/presets/common, /turf/open/floor/circuit/telecomms/mainframe, /area/city/outskirts) +"LX" = ( +/obj/effect/turf_decal/caution/red{ + dir = 8 + }, +/turf/open/floor/pod/light, +/area/city/outskirts) "Mk" = ( /obj/effect/turf_decal/sand, /obj/machinery/sleeper/syndie, @@ -8764,9 +8827,9 @@ aC aC aC UE +LX Hk -Hk -Hk +LX pi aC QY @@ -8966,9 +9029,9 @@ fC RY aC UE +nV Qd -Qd -Qd +cj oj aC aC diff --git a/code/game/objects/items/grenades/r_corp.dm b/code/game/objects/items/grenades/r_corp.dm new file mode 100644 index 000000000000..9ee69341da9b --- /dev/null +++ b/code/game/objects/items/grenades/r_corp.dm @@ -0,0 +1,34 @@ +/obj/item/grenade/r_corp + name = "r-corp red grenade" + desc = "An anti-abnormality grenade, this weapon excels at damaging abnormality using the tech from L-Corp. It deals 90% less damage to humans." + icon_state = "r_corp" + var/explosion_damage_type = RED_DAMAGE + var/explosion_damage = 300 + var/explosion_range = 2 + +/obj/item/grenade/r_corp/detonate(mob/living/lanced_by) + . = ..() + update_mob() + new /obj/effect/temp_visual/explosion(get_turf(src)) + playsound(loc, 'sound/effects/ordeals/steel/gcorp_boom.ogg', 75, TRUE) + for(var/mob/living/simple_animal/H in view(explosion_range, src)) + H.apply_damage(explosion_damage, explosion_damage_type, null, H.run_armor_check(null, RED_DAMAGE)) + for(var/mob/living/carbon/C in view(explosion_range, src)) + C.apply_damage(explosion_damage * 0.1, explosion_damage_type, null, C.run_armor_check(null, RED_DAMAGE)) + qdel(src) + +/obj/item/grenade/r_corp/white + name = "r-corp white grenade" + icon_state = "r_corp_white" + explosion_damage_type = WHITE_DAMAGE + +/obj/item/grenade/r_corp/black + name = "r-corp black grenade" + icon_state = "r_corp_black" + explosion_damage_type = BLACK_DAMAGE + +/obj/item/grenade/r_corp/pale + name = "r-corp pale grenade" + icon_state = "r_corp_pale" + explosion_damage_type = PALE_DAMAGE + explosion_damage = 250 diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm index ac22ed030e12..ab836b7f4e3a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm @@ -58,17 +58,33 @@ var/ability_cooldown var/ability_cooldown_time = 10 SECONDS +/mob/living/simple_animal/hostile/abnormality/censored/Login() + . = ..() + to_chat(src, "

You are CENSORED, A Tank Role Abnormality.


\ + |'CENSORED, CENSORED'|: When you click on a tile outside your melee range, you will trigger your ranged attack.
\ + When you trigger your ranged attack, there will be a short delay before you will send out a 'CENSORED' towards your target tile.
\ + Anyone who is hit by your 'CENSORED' will take BLACK damage and will gain the statues effect 'Overwhelming Fear'
\ + If you don't want to trigger you ranged attack when clicking on a tile, you can hold SHIFT while clicking on a tile to disable it.
\ +
\ + |Overwhelming Fear|: Humans with this statues effect will have their sanity quickly reduce to 30%, And this statues effect lasts for 20 seconds.
\ +
\ + |'...CENSORED?'|: When you attack a dead human, you will convert them into a mini 'CENSORED'.
\ + Each time you convert a human into a mini 'CENSORED' you heal 10% of your max HP.
\ + However, Once a mini 'CENSORED' is killed, all humans around them heal 40% of their SP.
") + + /mob/living/simple_animal/hostile/abnormality/censored/Life() . = ..() if(!.) return // Apply and refresh status effect to all humans nearby - for(var/mob/living/carbon/human/H in view(7, src)) - if(H.stat == DEAD) - continue - if(faction_check_mob(H)) - continue - H.apply_status_effect(STATUS_EFFECT_OVERWHELMING_FEAR) + if(SSmaptype.maptype != "rcorp") + for(var/mob/living/carbon/human/H in view(7, src)) + if(H.stat == DEAD) + continue + if(faction_check_mob(H)) + continue + H.apply_status_effect(STATUS_EFFECT_OVERWHELMING_FEAR) /mob/living/simple_animal/hostile/abnormality/censored/FearEffectText(mob/affected_mob, level = 0) level = num2text(clamp(level, 3, 5)) @@ -183,6 +199,7 @@ for(var/turf/TT in turf_list) for(var/mob/living/L in HurtInTurf(TT, list(), ability_damage, BLACK_DAMAGE, null, TRUE, FALSE, TRUE, hurt_structure = TRUE)) new /obj/effect/temp_visual/dir_setting/bloodsplatter(get_turf(L), pick(GLOB.alldirs)) + L.apply_status_effect(STATUS_EFFECT_OVERWHELMING_FEAR) can_act = TRUE /* Work */ @@ -259,6 +276,7 @@ del_on_death = TRUE density = FALSE var/list/breach_affected = list() + var/recoved_sanity = 0.2 /mob/living/simple_animal/hostile/mini_censored/Initialize() . = ..() @@ -298,6 +316,18 @@ to_chat(H, span_warning("Damn, it's scary.")) return +/mob/living/simple_animal/hostile/mini_censored/death(gibbed) + if(SSmaptype.maptype == "rcorp") + for(var/mob/living/carbon/human/H in view(5, src)) + if(H.stat == DEAD) + continue + if(faction_check_mob(H)) + continue + H.adjustSanityLoss(-(H.getMaxSanity() * recoved_sanity)) + playsound(H, 'sound/abnormalities/voiddream/skill.ogg', 40, TRUE, 2) + to_chat(H, span_nicegreen("Good... It is now dead.")) + return ..() + // Status effect applied by CENSORED /datum/status_effect/overwhelming_fear id = "overwhelming_fear" diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/melting_love.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/melting_love.dm index b1b11cb54e03..7891e8adb549 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/melting_love.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/melting_love.dm @@ -62,6 +62,23 @@ /// Amount of BLACK damage done to all enemies around main target on melee attack. Also includes original target var/radius_damage = 30 +/mob/living/simple_animal/hostile/abnormality/melting_love/Login() + . = ..() + to_chat(src, "

You are Melting Love, A Tank Role Abnormality.


\ + |Absorbing Slime|: RED damage heals you instead of damaging you, The same thing applies to your slime pawns.
\ +
\ + |Sticky Slime|: Some of your abilities will inflict 'SLIMED' on the target.\ + Targets with 'SLIMED' will take BLACK damage over time and will become slowed down for it's duration.
\ +
\ + |Melting Slime|: As you move around, you will leave behind 'Melting Slime' on the turfs you cross. If any non-slime crosses this 'Melting Slime', They will be inflicted with 'SLIMED'.
\ +
\ + |Spreading Love...|: When you attack a dead body, you will convert it into a 'Slime Pawn.' Slime pawns exist for a short amount of time and detonate upon their death.\ + When they detonate, they will deal BLACK damage to nearby humans and spread 'Melting Slime' around them.\ + Also, If you attack your own 'Slime Pawn', You will devor them and heal 20% of your HP.
\ +
\ + |Stay Together...|: When you click on a tile outside your melee range, You will fire a slime projectile towards that tile. The projectile will inflict the target with 'SLIMED' and deal BLACK damage.\ + If the projectile hits a dead body, it will convert it into a slime pawn.
") + /mob/living/simple_animal/hostile/abnormality/melting_love/death(gibbed) density = FALSE animate(src, alpha = 0, time = (5 SECONDS)) @@ -262,6 +279,10 @@ del_on_death = TRUE var/spawn_sound = 'sound/abnormalities/meltinglove/pawn_convert.ogg' var/statuschance = 25 + var/death_damage = 20 + var/death_slime_range = 1 + var/decay_damage = 20 + var/decay_timer = 4 /mob/living/simple_animal/hostile/slime/Initialize() . = ..() @@ -270,10 +291,22 @@ transform *= 0.1 alpha = 25 animate(src, alpha = 255, transform = init_transform, time = 5) + if(SSmaptype.maptype == "rcorp") + addtimer(CALLBACK(src, PROC_REF(decay)), decay_timer SECONDS, TIMER_STOPPABLE) + +/mob/living/simple_animal/hostile/slime/proc/decay() + to_chat(src, span_userdanger("You feel yourself falling apart...")) + src.deal_damage(decay_damage, BLACK_DAMAGE) + addtimer(CALLBACK(src, PROC_REF(decay)), decay_timer SECONDS, TIMER_STOPPABLE) /mob/living/simple_animal/hostile/slime/death() for(var/atom/movable/AM in src) AM.forceMove(get_turf(src)) + if(SSmaptype.maptype == "rcorp") + for(var/turf/open/R in range(death_slime_range, src)) + new /obj/effect/decal/cleanable/melty_slime(R) + for(var/mob/living/L in view(death_slime_range, src)) + L.apply_damage(death_damage, BLACK_DAMAGE, null, L.run_armor_check(null, BLACK_DAMAGE)) ..() /mob/living/simple_animal/hostile/slime/CanAttack(atom/the_target) diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm index ae92d4ed3c71..c8bb3ba58337 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm @@ -75,6 +75,8 @@ var/last_heal_time = 0 var/heal_percent_per_second = 0.0085 + var/regen_on = TRUE + var/r_corp_regen_start = 1 var/datum/looping_sound/nothingthere_ambience/soundloop var/datum/looping_sound/nothingthere_heartbeat/heartbeat @@ -227,10 +229,15 @@ GiveTarget(speaker) say(line) if((last_heal_time + 1 SECONDS) < world.time) // One Second between heals guaranteed - var/heal_amount = ((world.time - last_heal_time)/10)*heal_percent_per_second*maxHealth - if(health <= maxHealth*0.3) - heal_amount *= 2 - adjustBruteLoss(-heal_amount) + if(SSmaptype.maptype == "rcorp") + regen_on = TRUE + if(health > maxHealth * r_corp_regen_start) + regen_on = FALSE + if(regen_on == TRUE) + var/heal_amount = ((world.time - last_heal_time)/10)*heal_percent_per_second*maxHealth + if(health <= maxHealth*0.3) + heal_amount *= 2 + adjustBruteLoss(-heal_amount) last_heal_time = world.time if(next_transform && (world.time > next_transform)) next_stage() diff --git a/code/modules/mob/living/simple_animal/abnormality/he/eris.dm b/code/modules/mob/living/simple_animal/abnormality/he/eris.dm index 3d51c115a9e7..7a5786db90ec 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/eris.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/eris.dm @@ -56,6 +56,18 @@ Hours later, Eris dines with another stranger.
My head is resting on that very same plate." var/girlboss_level = 0 + var/can_heal = TRUE + +/mob/living/simple_animal/hostile/abnormality/eris/Login() + . = ..() + to_chat(src, "

You are Eris, A Tank Role Abnormality.


\ + |Humanoid Disguise|: You are only able to attack humans who only have a very low amount of health, or if they are dead.
\ + If they attack a human who fulfills the above conditions, you will devor them, and gain a stack of 'Girl Boss'
\ +
\ + |Dine with me...|: Every second, you heal ALL targets that you can see if they are bellow half health.
\ + Your healing increases depending on the amount of 'Girl Boss' you have.
\ +
\ + |Elegant Form|: When you are attacked by a human, deal WHITE damage to the attack. This damage is increase depending on your 'Girl Boss' stacks.
") //Okay, but here's the breach on death /mob/living/simple_animal/hostile/abnormality/eris/Initialize() @@ -180,12 +192,17 @@ //Okay, but here's the math /mob/living/simple_animal/hostile/abnormality/eris/proc/healpulse() for(var/mob/living/H in view(10, get_turf(src))) + can_heal = TRUE if(H.stat >= SOFT_CRIT) continue //Shamelessly fucking stolen from risk of rain's teddy bear. Maxes out at 20. - var/healamount = 20 * (TOUGHER_TIMES(girlboss_level)) - H.adjustBruteLoss(-healamount) //Healing for those around. - new /obj/effect/temp_visual/heal(get_turf(H), "#FF4444") + if(SSmaptype.maptype == "rcorp") + if(H.health > H.maxHealth*0.5) + can_heal = FALSE + if (can_heal == TRUE) + var/healamount = 20 * (TOUGHER_TIMES(girlboss_level)) + H.adjustBruteLoss(-healamount) //Healing for those around. + new /obj/effect/temp_visual/heal(get_turf(H), "#FF4444") //Okay but here's the defensive options /mob/living/simple_animal/hostile/abnormality/eris/bullet_act(obj/projectile/Proj) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/greed_king.dm b/code/modules/mob/living/simple_animal/abnormality/waw/greed_king.dm index f0220e03f805..f6e25e918c58 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/greed_king.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/greed_king.dm @@ -77,6 +77,16 @@ /datum/action/innate/abnormality_attack/kog_teleport, ) +/mob/living/simple_animal/hostile/abnormality/greed_king/Login() + . = ..() + to_chat(src, "

You are King of Greed, A Tank Role Abnormality.


\ + |Gilded Cage|: Your size is 3 by 3 tiles wide, however you can still fit in 1 by 1 areas.
\ +
\ + |Endless Hunger|: When you click on a tile outside your melee range, you will start charging into the direction you clicked.
\ + There is a 1.5 second delay before you start charging, once you start charging into a direction you will constantly move in one direction.
\ + If human gets within your melee range while charging, you will instantly gib them. If a abnormality appears in your path, you will deal damage to them.
\ + Your charge ends after you move into a wall, or any dense object. (RHINOS/OTHER ABNORMALITIES WILL STOP YOUR CHARGE)
") + /datum/action/innate/abnormality_attack/kog_dash name = "Ravenous Charge" button_icon_state = "kog_charge" @@ -172,9 +182,35 @@ if(1) var/dir_to_target = get_cardinal_dir(get_turf(src), get_turf(target)) can_act = FALSE + // do particle effect + if (IsCombatMap()) + manual_emote("starts shaking...") + SLEEP_CHECK_DEATH(15) + addtimer(CALLBACK(src, PROC_REF(warning_effect), get_turf(src), dir_to_target, 0, target), 0 SECONDS) charge(dir_to_target, 0, target) return +/obj/effect/temp_visual/cult/sparks/greed + duration = 4 + +/mob/living/simple_animal/hostile/abnormality/greed_king/proc/warning_effect(turf, move_dir, times_ran, target) + var/stop_warning = FALSE + if(times_ran >= dash_num) + stop_warning = TRUE + var/turf/T = get_step(turf, move_dir) + if(!T) + stop_warning = TRUE + return + if(T.density) + stop_warning = TRUE + for(var/obj/machinery/door/D in T.contents) + if(D.density) + stop_warning = TRUE + for(var/turf/open/R in range(1, T)) + new /obj/effect/temp_visual/cult/sparks/greed(R) + if (!stop_warning) + addtimer(CALLBACK(src, PROC_REF(warning_effect), T, move_dir, (times_ran + 1)), 1) + /mob/living/simple_animal/hostile/abnormality/greed_king/proc/charge(move_dir, times_ran, target) setDir(move_dir) var/stop_charge = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/warden.dm b/code/modules/mob/living/simple_animal/abnormality/waw/warden.dm index 8553c393f9c0..52c6dcefe7a3 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/warden.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/warden.dm @@ -54,6 +54,30 @@ var/finishing = FALSE + var/captured_souls = 0 + + var/resistance_decrease = 0.5 + + var/base_red_resistance = 0.7 + var/base_white_resistance = 1.2 + var/base_black_resistance = 0.4 + var/base_pale_resistance = 1.5 + + var/new_red_resistance = 0.7 + var/new_white_resistance = 1.2 + var/new_black_resistance = 0.4 + var/new_pale_resistance = 1.5 + + var/damage_down = 5 + +/mob/living/simple_animal/hostile/abnormality/warden/Login() + . = ..() + to_chat(src, "

You are Warden, A Tank Role Abnormality.


\ + |Soul Guard|: You are immune to all projectiles.
\ +
\ + |Soul Warden|: If you attack a corpse, you will dust it, heal and gain a stack of “Captured Soul”
\ + For each stack of “Captured Soul”, you become faster, deal 10 less melee damage and take 50% more damage.
") + /mob/living/simple_animal/hostile/abnormality/warden/AttackingTarget() . = ..() if(.) @@ -74,11 +98,23 @@ H.dust() // it gets faster. + + if(IsCombatMap()) + captured_souls++ + new_red_resistance = (base_red_resistance + resistance_decrease * captured_souls) + new_white_resistance = (base_white_resistance + resistance_decrease * captured_souls) + new_black_resistance = (base_black_resistance + resistance_decrease * captured_souls) + new_pale_resistance = (base_pale_resistance + resistance_decrease * captured_souls) + ChangeResistances(list(RED_DAMAGE = new_red_resistance, WHITE_DAMAGE = new_white_resistance, BLACK_DAMAGE = new_black_resistance, PALE_DAMAGE = new_pale_resistance)) + to_chat(src, span_warning("As you capture a soul, you feel that you are growing more... Fragile.")) + if(move_to_delay>1) ChangeMoveToDelayBy(0.75, TRUE) if(melee_damage_lower > 30) - melee_damage_lower -=5 - + melee_damage_lower -= damage_down + if(IsCombatMap()) + if(melee_damage_upper > 30) + melee_damage_upper -= damage_down adjustBruteLoss(-(maxHealth*0.2)) // Heals 20% HP, fuck you that's why. Still not as bad as judgement or big bird finishing = FALSE diff --git a/icons/obj/grenade.dmi b/icons/obj/grenade.dmi index ea3c7d9cd3b754aba917ca9ce92a5665d0d3c5f8..fe82626617fe8acf897e8fca75288047f2245c82 100644 GIT binary patch delta 17648 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 MPgg&ebxsLQ0FCubb^rhX delta 16489 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 diff --git a/lobotomy-corp13.dme b/lobotomy-corp13.dme index 23250ba1422f..e8f975c58c21 100644 --- a/lobotomy-corp13.dme +++ b/lobotomy-corp13.dme @@ -1292,6 +1292,7 @@ #include "code\game\objects\items\grenades\grenade.dm" #include "code\game\objects\items\grenades\hypno.dm" #include "code\game\objects\items\grenades\plastic.dm" +#include "code\game\objects\items\grenades\r_corp.dm" #include "code\game\objects\items\grenades\smokebomb.dm" #include "code\game\objects\items\grenades\spawnergrenade.dm" #include "code\game\objects\items\grenades\syndieminibomb.dm"