/// <summary>
 /// Initializes a DamageType with Weight and Modifier.
 /// </summary>
 /// <param name="weight">This is how much weighted this IDamageType is in comparison to possibly others.</param>
 /// <param name="modifier">This the function that given another type defines how damage is modified compared to this type.</param>
 protected DamageTypeTemplate(double weight, IDamageType.ModifierDelegate modifier = null)
 {
     Weight   = weight;
     Modifier = modifier ?? StandardModifier;
 }
 /// <summary>
 /// Initializes a DamageType with Weight and Modifier.
 /// </summary>
 /// <param name="weight">This is how much weighted this IDamageType is in comparison to possibly others.</param>
 /// <param name="modifier">This the function that given another type defines how damage is modified compared to this type.</param>
 public RangeDamageType(double weight = 1, IDamageType.ModifierDelegate modifier = null) : base(weight, modifier)
 {
 }
 /// <summary>
 /// Initializes a DamageType with Weight and Modifier.
 /// </summary>
 /// <param name="weight">This is how much weighted this IDamageType is in comparison to possibly others.</param>
 /// <param name="modifier">This the function that given another type defines how damage is modified compared to this type.</param>
 public FireDamageType(double weight = 1, IDamageType.ModifierDelegate modifierMethod = null) : base(weight, modifierMethod)
 {
 }