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 } public static class DamageClassExtensions { private static readonly ImmutableDictionary> ClassToType = new Dictionary> { {DamageClass.Brute, new List {DamageType.Blunt, DamageType.Piercing}}, {DamageClass.Burn, new List {DamageType.Heat, DamageType.Disintegration}}, {DamageClass.Toxin, new List {DamageType.Cellular, DamageType.DNA}}, {DamageClass.Airloss, new List {DamageType.Asphyxiation}} }.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); } } }