Skip to content

Commit

Permalink
Zombie Rework (#4060)
Browse files Browse the repository at this point in the history
# About the pull request

The goal for this PR is to rework zombies into being a fast and
numerous, but weaker, entity. As it stands a zombie has too many
advantages where a hold against them is essentially a fool's errand.

CURRENT PLAN (Will adjust as needed)
Zombies will be FASTER but much weaker than current iteration, with
weaker attacks. They will be designed around being a foe that can be
taken down quicker but if they close the distance, the threat of
infection spells a death sentence.

# Explain why it's good for the game

This will be hard to balance, and as such will be taking feedback before
I submit this for review. This is current position of Zombies:

- Tough: Extreme (25% ?!) brute modifier, with fire modifier on top,
making them very tanky and requiring clips to take down one
- self-revive: They WILL come back up, coupled with toughness, they are
a feared opponent.
- Strength: Claws inflict superslow at 40 brute damage, one of the
highest damage levels.
- Numerous: They have the numbers to put lesser drones and even entire
hives to shame

Overall, they are very overtuned and makes playing against them not that
fun. My plan is to have it so they are much weaker, with their threat
being from infections.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
balance: Zombie attacks deal less damage and only slow down targets (not
superslow as they currently do)
balance: Zombie resistances have been reduced heavily, making them far
more susceptible to brute damage. Their speed has been doubled to
compensate
balance: Black goo on tiles now requires you to not wear shoes to have
chance for infection
fix: Zombie attacks now only apply effects such as slow and infection if
the attack is valid (if the zombie is able to attack)
/:cl:
  • Loading branch information
Ben10083 committed Aug 17, 2023
1 parent 22bcfe8 commit 1ea79a2
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 11 deletions.
12 changes: 5 additions & 7 deletions code/datums/diseases/black_goo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
icon = 'icons/mob/humans/species/r_zombie.dmi'
icon_state = "claw_l"
flags_item = NODROP|DELONDROP|ITEM_ABSTRACT
force = 40
force = MELEE_FORCE_TIER_6 //slightly higher than normal
w_class = SIZE_MASSIVE
sharp = 1
attack_verb = list("slashed", "torn", "scraped", "gashed", "ripped")
Expand All @@ -135,8 +135,9 @@
return FALSE

. = ..()
if(.)
playsound(loc, 'sound/weapons/bladeslice.ogg', 25, 1, 5)
if(!.)
return FALSE
playsound(loc, 'sound/weapons/bladeslice.ogg', 25, 1, 5)

if(ishuman_strict(target))
var/mob/living/carbon/human/human = target
Expand All @@ -149,10 +150,7 @@
target.AddDisease(new /datum/disease/black_goo)
to_chat(user, SPAN_XENOWARNING("<b>You sense your target is now infected.</b>"))

if(issynth(target))
target.apply_effect(2, SLOW)
else
target.apply_effect(2, SUPERSLOW)
target.apply_effect(2, SLOW)

/obj/item/weapon/zombie_claws/afterattack(obj/O as obj, mob/user as mob, proximity)
if(get_dist(src, O) > 1)
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/effects/decals/cleanable/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@
/obj/effect/decal/cleanable/blackgoo/Crossed(mob/living/carbon/human/H)
if(!istype(H)) return
if(H.species.name == "Human")
if(!H.shoes || prob(25))
if(!H.shoes && prob(50))
H.contract_disease(new /datum/disease/black_goo)


Expand Down
10 changes: 7 additions & 3 deletions code/modules/mob/living/carbon/human/species/zombie.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
// DEFINES
///Time until a zombie rises from the dead
#define ZOMBIE_REVIVE_TIME 1 MINUTES

/datum/species/zombie
group = SPECIES_HUMAN
name = SPECIES_ZOMBIE
name_plural = "Zombies"
slowdown = 1
slowdown = 0.75
blood_color = BLOOD_COLOR_ZOMBIE
icobase = 'icons/mob/humans/species/r_goo_zed.dmi'
deform = 'icons/mob/humans/species/r_goo_zed.dmi'
Expand All @@ -12,7 +16,7 @@
death_message = "seizes up and falls limp..."
flags = NO_BREATHE|NO_CLONE_LOSS|NO_POISON|NO_NEURO|NO_SHRAPNEL
mob_inherent_traits = list(TRAIT_FOREIGN_BIO)
brute_mod = 0.25 //EXTREME BULLET RESISTANCE
brute_mod = 0.6 //Minor bullet resistance
burn_mod = 0.8 //Lowered burn damage since it would 1-shot zombies from 2 to 0.8.
speech_chance = 5
cold_level_1 = -1 //zombies don't mind the cold
Expand Down Expand Up @@ -96,7 +100,7 @@
zombie.play_screen_text("<span class='langchat' style=font-size:16pt;text-align:center valign='top'><u>You are dead...</u></span><br>You will rise again in one minute.", /atom/movable/screen/text/screen_text/command_order, rgb(155, 0, 200))
to_chat(zombie, SPAN_XENOWARNING("You fall... but your body is slowly regenerating itself."))
var/weak_ref = WEAKREF(zombie)
to_revive[weak_ref] = addtimer(CALLBACK(src, PROC_REF(revive_from_death), zombie, "[REF(zombie)]"), 1 MINUTES, TIMER_STOPPABLE|TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_NO_HASH_WAIT)
to_revive[weak_ref] = addtimer(CALLBACK(src, PROC_REF(revive_from_death), zombie, "[REF(zombie)]"), ZOMBIE_REVIVE_TIME, TIMER_STOPPABLE|TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_NO_HASH_WAIT)
revive_times[weak_ref] = world.time + 1 MINUTES
else
if(zombie.client)
Expand Down

0 comments on commit 1ea79a2

Please sign in to comment.