using System.Collections.Generic; using System.Collections.Immutable; using Content.Shared.Damage; using JetBrains.Annotations; using Robust.Shared.GameObjects.Systems; namespace Content.Shared.GameObjects.EntitySystems { [UsedImplicitly] public class DamageSystem : EntitySystem { public static ImmutableDictionary> ClassToType { get; } = DefaultClassToType(); public static ImmutableDictionary TypeToClass { get; } = DefaultTypeToClass(); private static ImmutableDictionary> DefaultClassToType() { return new Dictionary> { [DamageClass.Brute] = new List { DamageType.Blunt, DamageType.Slash, DamageType.Piercing }.ToImmutableList(), [DamageClass.Burn] = new List { DamageType.Heat, DamageType.Shock, DamageType.Cold }.ToImmutableList(), [DamageClass.Toxin] = new List { DamageType.Poison, DamageType.Radiation }.ToImmutableList(), [DamageClass.Airloss] = new List { DamageType.Asphyxiation, DamageType.Bloodloss }.ToImmutableList(), [DamageClass.Genetic] = new List { DamageType.Cellular }.ToImmutableList() }.ToImmutableDictionary(); } private static ImmutableDictionary DefaultTypeToClass() { return new Dictionary { {DamageType.Blunt, DamageClass.Brute}, {DamageType.Slash, DamageClass.Brute}, {DamageType.Piercing, DamageClass.Brute}, {DamageType.Heat, DamageClass.Burn}, {DamageType.Shock, DamageClass.Burn}, {DamageType.Cold, DamageClass.Burn}, {DamageType.Poison, DamageClass.Toxin}, {DamageType.Radiation, DamageClass.Toxin}, {DamageType.Asphyxiation, DamageClass.Airloss}, {DamageType.Bloodloss, DamageClass.Airloss}, {DamageType.Cellular, DamageClass.Genetic} }.ToImmutableDictionary(); } } }