Beispiel #1
0
 public void SetDamage(float min, float max, ResistanceTypes res)
 {
     if (d_i < damages.Length)
     {
         damages[d_i].Min    = min;
         damages[d_i].Max    = max;
         damages[d_i].School = (int)res;
         d_i++;
     }
 }
Beispiel #2
0
        public void IsImmune_Test(ResistanceTypes type, bool expectedValue)
        {
            _ch.Immunity = _ch.Immunity.SetBit(type);

            Assert.That(_ch.IsImmune(type), Is.EqualTo(expectedValue));
        }
 public ResistanceHolder(ResistanceTypes resistanceType, int value)
 {
     ResistanceType = resistanceType;
     Value          = value;
 }
Beispiel #4
0
        /// <summary>
        /// Make adjustments to saving throw based on RIS (resistance)
        /// </summary>
        public static int ModifySavingThrowWithResistance(this CharacterInstance ch, int chance, ResistanceTypes ris)
        {
            var modifier = 10;

            if (ch.Immunity.IsSet(ris))
            {
                modifier -= 10;
            }
            if (ch.Resistance.IsSet(ris))
            {
                modifier -= 2;
            }
            if (ch.Susceptibility.IsSet(ris))
            {
                if (ch.IsNpc() && ch.Immunity.IsSet(ris))
                {
                    modifier += 0;
                }
                else
                {
                    modifier += 2;
                }
            }
            if (modifier <= 0)
            {
                return(1000);
            }
            if (modifier == 10)
            {
                return(chance);
            }
            return(chance * modifier / 10);
        }
Beispiel #5
0
        public static int ModifyDamageWithResistance(this CharacterInstance ch, int dam, ResistanceTypes ris)
        {
            var modifier = 10;

            if (ch.Immunity.IsSet(ris) && !ch.NoImmunity.IsSet(ris))
            {
                modifier -= 10;
            }
            if (ch.Resistance.IsSet(ris) && !ch.NoResistance.IsSet(ris))
            {
                modifier -= 2;
            }
            if (ch.Susceptibility.IsSet(ris) && !ch.NoSusceptibility.IsSet(ris))
            {
                if (ch.IsNpc() && ch.Immunity.IsSet(ris))
                {
                    modifier += 0;
                }
                else
                {
                    modifier += 2;
                }
            }
            if (modifier <= 0)
            {
                return(-1);
            }
            if (modifier == 10)
            {
                return(dam);
            }
            return(dam * modifier / 10);
        }
Beispiel #6
0
 public void SetDamage(float min, float max, ResistanceTypes res)
 {
     if(d_i < damages.Length) {
         damages[d_i].Min = min;
         damages[d_i].Max = max;
         damages[d_i].School = (int)res;
         d_i++;
     }
 }