Exemplo n.º 1
0
 public void UpdateDamageRow(DamageClasses damageClass, byte[] modifiers)
 {
     for (byte i = 0; i < (byte)DistanceTypes.COUNT; i++)
     {
         _damageTable[(byte)damageClass, i] = modifiers[i];
     }
 }
Exemplo n.º 2
0
        public uint GetRadiusDamageTo(DamageClasses typeOfDamage, uint explosionModifier)
        {
            uint   totalDamage           = 0;
            double explosionMuliplier    = explosionModifier; // (ranges from 100 to 0)
            double vulnerabilityModifier = _damageTable[(byte)typeOfDamage, 1];

            explosionModifier     = explosionModifier / 100;
            vulnerabilityModifier = vulnerabilityModifier / 100;

            totalDamage = (uint)Math.Round(RawPower * explosionModifier * vulnerabilityModifier);

            totalDamage = (totalDamage > 1000) ? 1000 : totalDamage;

            return(totalDamage);
        }
Exemplo n.º 3
0
        public uint GetDamageTo(DamageClasses typeOfDamage, DamageLocations location, DistanceTypes distance)
        {
            uint totalDamage = 0;

            double vulnerabilityModifier = _damageTable[(byte)typeOfDamage, (byte)distance]; //gets the modifier based on distance and type of entity attacked: ie ship, or player
            double locationModifier      = (uint)location;

            locationModifier      = locationModifier / 100;
            vulnerabilityModifier = vulnerabilityModifier / 100;

            totalDamage = (uint)Math.Round(RawPower * vulnerabilityModifier * locationModifier);

            totalDamage = (totalDamage > 1000) ? 1000 : totalDamage;

            return(totalDamage);
        }