Ejemplo n.º 1
0
 /// <summary>
 /// Primary constructor
 /// </summary>
 /// <param name="affectedDistance"></param>
 /// <param name="damage"></param>
 /// <param name="absorbDamage"></param>
 /// <param name="calculationType"></param>
 /// <param name="attackType"></param>
 public PendingDamage(int affectedDistance, int damage, int absorbDamage, DamageCalculationTypes calculationType,
                      AttackTypes attackType)
 {
     AffectedDistance = affectedDistance;
     Damage           = damage;
     AbsorbDamage     = absorbDamage;
     CalculationType  = calculationType;
     AttackType       = attackType;
     DamageType       = DamageTypes.AREA;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Primary constructor
 /// </summary>
 /// <param name="target"></param>
 /// <param name="damage"></param>
 /// <param name="absorbDamage"></param>
 /// <param name="calculationType"></param>
 /// <param name="attackType"></param>
 public PendingDamage(AbstractAttackable target, int damage, int absorbDamage, DamageCalculationTypes calculationType,
                      AttackTypes attackType)
 {
     Target          = target;
     Damage          = damage;
     AbsorbDamage    = absorbDamage;
     CalculationType = calculationType;
     AttackType      = attackType;
     DamageType      = DamageTypes.ENTITY;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Enforcing a damage where the attacker exists
        /// </summary>
        /// <param name="target">Target</param>
        /// <param name="attacker">Attacker</param>
        /// <param name="damage">Damage (if percentage 1-100)</param>
        /// <param name="absorbDamage">Damage absorb = shield transfer (if percentage 1-100)</param>
        /// <param name="calculationType">Calculation type (defined or percentage)</param>
        /// <param name="attackType">Type of attack</param>
        public void EnforceDamage(AbstractAttackable target, AbstractAttacker attacker, int damage, int absorbDamage,
                                  DamageCalculationTypes calculationType, AttackTypes attackType)
        {
            if (target == null)
            {
                Out.QuickLog("Something went wrong enforcing damage, target is null", LogKeys.ERROR_LOG);
                throw new Exception("Target is null, cannot damage");
            }

            if (attacker == null)
            {
                Out.QuickLog("Something went wrong enforcing damage, attacker is null", LogKeys.ERROR_LOG);
                throw new Exception("Attacker is null, cannot damage");
            }

            if (damage == 0 && absorbDamage == 0)
            {
                // damage finished
                return;
            }

            _pendingDamages.Enqueue(new PendingDamage(target, attacker, damage, absorbDamage, calculationType, attackType));
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Secondary constructor
 /// </summary>
 /// <param name="target"></param>
 /// <param name="attacker"></param>
 /// <param name="damage"></param>
 /// <param name="absorbDamage"></param>
 /// <param name="calculationType"></param>
 /// <param name="attackType"></param>
 public PendingDamage(AbstractAttackable target, AbstractAttacker attacker, int damage, int absorbDamage,
                      DamageCalculationTypes calculationType, AttackTypes attackType) :
     this(target, damage, absorbDamage, calculationType, attackType)
 {
     Attacker = attacker;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Secondary constructor
 /// </summary>
 /// <param name="attacker"></param>
 /// <param name="affectedDistance"></param>
 /// <param name="damage"></param>
 /// <param name="absorbDamage"></param>
 /// <param name="calculationType"></param>
 /// <param name="attackType"></param>
 public PendingDamage(AbstractAttacker attacker, int affectedDistance, int damage, int absorbDamage,
                      DamageCalculationTypes calculationType, AttackTypes attackType) : this(affectedDistance, damage, absorbDamage, calculationType, attackType)
 {
     Attacker = attacker;
 }