using Content.Shared.Roles; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Zombies { [RegisterComponent, NetworkedComponent] public sealed class ZombieComponent : Component { /// /// The coefficient of the damage reduction applied when a zombie /// attacks another zombie. longe name /// [ViewVariables] public float OtherZombieDamageCoefficient = 0.25f; /// /// The baseline infection chance you have if you are completely nude /// [ViewVariables(VVAccess.ReadWrite)] public float MaxZombieInfectionChance = 0.50f; /// /// The minimum infection chance possible. This is simply to prevent /// being invincible by bundling up. /// [ViewVariables(VVAccess.ReadWrite)] public float MinZombieInfectionChance = 0.05f; [ViewVariables(VVAccess.ReadWrite)] public float ZombieMovementSpeedDebuff = 0.75f; /// /// The skin color of the zombie /// [DataField("skinColor")] public Color SkinColor = new(0.45f, 0.51f, 0.29f); /// /// The eye color of the zombie /// [DataField("eyeColor")] public Color EyeColor = new(0.96f, 0.13f, 0.24f); /// /// The base layer to apply to any 'external' humanoid layers upon zombification. /// [DataField("baseLayerExternal")] public string BaseLayerExternal = "MobHumanoidMarkingMatchSkin"; /// /// The attack arc of the zombie /// [DataField("attackArc", customTypeSerializer: typeof(PrototypeIdSerializer))] public string AttackAnimation = "WeaponArcBite"; /// /// The role prototype of the zombie antag role /// [DataField("zombieRoleId", customTypeSerializer: typeof(PrototypeIdSerializer))] public readonly string ZombieRoleId = "Zombie"; } }