From 585ef2e621ec0e88e3237d544e4b2debeafa2c8c Mon Sep 17 00:00:00 2001 From: RedTerror <37833085+RedTerrorDark@users.noreply.github.com> Date: Sat, 23 Nov 2024 01:35:38 +0700 Subject: [PATCH] Zombie buff (#44) * big buff zombie * big buff zombie v0.2 * big buff zombie v0.3 --- .../Zombies/ZombieSystem.Transform.cs | 18 +++++++++++++-- .../Zombies/PendingZombieComponent.cs | 7 +++--- Content.Shared/Zombies/ZombieComponent.cs | 23 ++++++++++--------- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/Content.Server/Zombies/ZombieSystem.Transform.cs b/Content.Server/Zombies/ZombieSystem.Transform.cs index 798d9585dfe..ed5d119bfa7 100644 --- a/Content.Server/Zombies/ZombieSystem.Transform.cs +++ b/Content.Server/Zombies/ZombieSystem.Transform.cs @@ -36,6 +36,7 @@ using Content.Shared.Traits.Assorted; using Robust.Shared.Audio.Systems; using Content.Shared.Ghost.Roles.Components; +using Content.Shared.Damage.Components; namespace Content.Server.Zombies; @@ -106,6 +107,7 @@ public void ZombifyEntity(EntityUid target, MobStateComponent? mobState = null) RemComp(target); RemComp(target); RemComp(target); + RemComp(target); //funny voice var accentType = "zombie"; @@ -170,8 +172,8 @@ public void ZombifyEntity(EntityUid target, MobStateComponent? mobState = null) DamageDict = new() { { "Slash", 13 }, - { "Piercing", 7 }, - { "Structural", 10 } + { "Piercing", 8 }, + { "Structural", 20 } } }; melee.Damage = dspec; @@ -183,6 +185,18 @@ public void ZombifyEntity(EntityUid target, MobStateComponent? mobState = null) pryComp.Force = true; Dirty(target, pryComp); + + // Humanoid zombie now deals stamina damage! ye. + AddComp(target); + var staminDamage = EnsureComp(target); + staminDamage.Damage = 25f; + + Dirty(target, staminDamage); + + var staminaHp = EnsureComp(target); + staminaHp.CritThreshold = 200f; + + Dirty(target, staminaHp); } Dirty(target, melee); diff --git a/Content.Shared/Zombies/PendingZombieComponent.cs b/Content.Shared/Zombies/PendingZombieComponent.cs index 0fb61c84df1..d1eedbe7a07 100644 --- a/Content.Shared/Zombies/PendingZombieComponent.cs +++ b/Content.Shared/Zombies/PendingZombieComponent.cs @@ -17,7 +17,8 @@ public sealed partial class PendingZombieComponent : Component { DamageDict = new () { - { "Poison", 0.2 }, + { "Poison", 0.5 }, + { "Cellular", 0.2 }, } }; @@ -25,7 +26,7 @@ public sealed partial class PendingZombieComponent : Component /// A multiplier for applied when the entity is in critical condition. /// [DataField("critDamageMultiplier")] - public float CritDamageMultiplier = 10f; + public float CritDamageMultiplier = 15f; [DataField("nextTick", customTypeSerializer:typeof(TimeOffsetSerializer))] public TimeSpan NextTick; @@ -40,7 +41,7 @@ public sealed partial class PendingZombieComponent : Component /// The minimum amount of time initial infected have before they start taking infection damage. /// [DataField] - public TimeSpan MinInitialInfectedGrace = TimeSpan.FromMinutes(12.5f); + public TimeSpan MinInitialInfectedGrace = TimeSpan.FromMinutes(6f); /// /// The maximum amount of time initial infected have before they start taking damage. diff --git a/Content.Shared/Zombies/ZombieComponent.cs b/Content.Shared/Zombies/ZombieComponent.cs index 94e1e5afec4..1ebea84c435 100644 --- a/Content.Shared/Zombies/ZombieComponent.cs +++ b/Content.Shared/Zombies/ZombieComponent.cs @@ -20,17 +20,17 @@ public sealed partial class ZombieComponent : Component /// The baseline infection chance you have if you are completely nude /// [ViewVariables(VVAccess.ReadWrite)] - public float MaxZombieInfectionChance = 0.80f; + public float MaxZombieInfectionChance = 0.90f; /// /// The minimum infection chance possible. This is simply to prevent /// being invincible by bundling up. /// [ViewVariables(VVAccess.ReadWrite)] - public float MinZombieInfectionChance = 0.25f; + public float MinZombieInfectionChance = 0.40f; [ViewVariables(VVAccess.ReadWrite)] - public float ZombieMovementSpeedDebuff = 0.70f; + public float ZombieMovementSpeedDebuff = 0.80f; /// /// The skin color of the zombie @@ -99,11 +99,11 @@ public sealed partial class ZombieComponent : Component { DamageDict = new () { - { "Blunt", -0.4 }, - { "Slash", -0.2 }, - { "Piercing", -0.2 }, - { "Heat", -0.02 }, - { "Shock", -0.02 } + { "Blunt", -0.8 }, + { "Slash", -0.4 }, + { "Piercing", -0.4 }, + { "Heat", -0.05 }, + { "Shock", -0.05 } } }; @@ -121,9 +121,10 @@ public sealed partial class ZombieComponent : Component { DamageDict = new() { - { "Blunt", -2 }, - { "Slash", -2 }, - { "Piercing", -2 } + { "Blunt", -5 }, + { "Slash", -5 }, + { "Piercing", -5 }, + { "Heat", -2 } } };