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 ea3c7d9cd3b7..fe82626617fe 100644
Binary files a/icons/obj/grenade.dmi and b/icons/obj/grenade.dmi differ
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"