using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using Robust.Shared.Serialization; namespace Content.Shared.Damage { [Serializable, NetSerializable] public enum DamageClass { Brute, Burn, Toxin, Airloss, Genetic } public static class DamageClassExtensions { private static readonly ImmutableDictionary> ClassToType = new Dictionary> { {DamageClass.Brute, new List {DamageType.Blunt, DamageType.Slash, DamageType.Piercing}}, {DamageClass.Burn, new List {DamageType.Heat, DamageType.Shock, DamageType.Cold}}, {DamageClass.Toxin, new List {DamageType.Poison, DamageType.Radiation}}, {DamageClass.Airloss, new List {DamageType.Asphyxiation, DamageType.Bloodloss}}, {DamageClass.Genetic, new List {DamageType.Cellular}} }.ToImmutableDictionary(); public static List ToTypes(this DamageClass @class) { return ClassToType[@class]; } public static Dictionary ToDictionary() { return Enum.GetValues(typeof(DamageClass)) .Cast() .ToDictionary(@class => @class, type => 0); } } }