Ejemplo n.º 1
0
 public void CommonInstall()
 {
     MockMessenger        = Substitute.For <IMessageService>();
     MockDamageCalculator = Substitute.For <IDamageCalculator>();
     MockPlayerData       = Substitute.For <IPlayerDataManager>();
     MockBoostUnits       = Substitute.For <ICurrentBoostUnits>();
 }
Ejemplo n.º 2
0
        public GamePlayer(IMessageService i_messenger, ICurrentBoostUnits i_boostUnits, IDamageCalculator i_damageCalculator, IPlayerDataManager i_playerDataManager)
        {
            mDamageCalculator  = i_damageCalculator;
            mPlayerDataManager = i_playerDataManager;
            mBoostUnits        = i_boostUnits;
            Messenger          = i_messenger;

            SetStartingHP();
        }
Ejemplo n.º 3
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="OverkillScorer" /> class.
 /// </summary>
 /// <param name="damageCalculator">
 ///     The damage provider
 /// </param>
 /// <param name="targetSelector">
 ///     The unspecific target selector
 /// </param>
 /// <param name="overkillConfiguration">
 ///     The configuration.
 /// </param>
 public OverkillScorer(
     IDamageCalculator damageCalculator,
     IProvider <Obj_AI_Base> targetSelector,
     OverkillConfiguration overkillConfiguration = null)
 {
     this.damageCalculator = damageCalculator;
     this.targetSelector   = targetSelector;
     this.Configuration    = overkillConfiguration ?? new OverkillConfiguration();
 }
 /// <summary>
 /// Returns a damage action.
 /// </summary>
 public static DamageAction CreateDamageAction(
     IDamageCalculator damageCalculator             = null,
     IActionTargetCalculator actionTargetCalculator = null)
 {
     return(new DamageActionBuilder()
            .WithDamageCalculator(damageCalculator ?? new Mock <IDamageCalculator>().Object)
            .WithActionTargetCalculator(actionTargetCalculator ?? new Mock <IActionTargetCalculator>().Object)
            .Build());
 }
 /// <summary>
 ///     Initializes a new instance of the <see cref="SpellDamageScorer" /> class.
 /// </summary>
 /// <param name="damageCalculator">
 ///     The damage func.
 /// </param>
 /// <param name="targetSelector">
 ///     The unspecific target selector
 /// </param>
 /// <param name="spellDamageConfiguration">
 ///     The spell damage configuration.
 /// </param>
 public SpellDamageScorer(
     IDamageCalculator damageCalculator,
     IProvider <Obj_AI_Base> targetSelector,
     SpellDamageConfiguration spellDamageConfiguration = null)
 {
     this.damageCalculator = damageCalculator;
     this.targetSelector   = targetSelector;
     this.Configuration    = spellDamageConfiguration ?? new SpellDamageConfiguration();
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Sets the built damage action's damage calculator.
        /// </summary>
        /// <param name="damageCalculator">The built damage action's damage calculator.</param>
        public DamageActionBuilder WithDamageCalculator(IDamageCalculator damageCalculator)
        {
            if (damageCalculator is null)
            {
                throw new ArgumentNullException(nameof(damageCalculator));
            }

            _damage.DamageCalculator = damageCalculator;
            _isDamageCalculatorSet   = true;
            return(this);
        }
Ejemplo n.º 7
0
        private void Awake()
        {
            _defaultHealth = _maxHealth;
            _defaultArmor  = _maxArmorModifier;

            DamageCalculator = GetComponent <DamageCalculator>();

            if (DamageCalculator == null)
            {
                throw new NullReferenceException("A component with the IDamageCalculator is required for a Character.");
            }
        }
        public void Attack(Class2 foe, IDamageCalculator damageCalculator)
        {
            /* Exercise !!
             * 1) Refactor
             * 2) Improve to support the use of multiple weapons. E.g. two handed weapons, weapons in both hands, etc
             *    Example:
             *    if (RightHandWeapon)
             *        foe.currentHintPoints -= calculateDamageWithRightHandWeapon()
             *    if (LeftHandWeapon)
             *        foe.currentHitPoints -= calcualteDamageWithLeftHandWeapon() - PenalizationForSecondWeaponUnlessPlayerHasAmbidextrousPerk()
             *
             */
            var foesArmor = new List<Armor>();
            if (foe.head != null) foesArmor.Add(foe.head);
            if (foe.torso != null) foesArmor.Add(foe.torso);
            if (foe.shoulders != null) foesArmor.Add(foe.legs);
            if (foe.shoulders != null) foesArmor.Add(foe.shoulders);
            if (foe.arms != null) foesArmor.Add(foe.arms);
            if (foe.hands != null) foesArmor.Add(foe.hands);

            var damage = damageCalculator.CalculateDamage(rightHandWeapon, foesArmor);
            foe.currentHitPoints -= damage;
        }
Ejemplo n.º 9
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="W" /> class.
 /// </summary>
 /// <param name="ireliaR">The irelia r.</param>
 /// <param name="ireliaQ">The irelia q</param>
 /// <param name="damageCalculator">The damage calculator</param>
 public R(IreliaR ireliaR, IreliaQ ireliaQ, IDamageCalculator damageCalculator)
 {
     this.DamageCalculator = damageCalculator;
     this.ireliaR          = ireliaR;
     this.ireliaQ          = ireliaQ;
 }
 public DefaultAttackStrategy(IDamageCalculator damageCalculator)
 {
     _damageCalculator = damageCalculator;
 }
Ejemplo n.º 11
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="Q" /> class.
 /// </summary>
 /// <param name="ireliaQ">The Q logic</param>
 /// <param name="damageCalculator">The damage calculator</param>
 public Q(IreliaQ ireliaQ, IDamageCalculator damageCalculator)
 {
     this.ireliaQ          = ireliaQ;
     this.damageCalculator = damageCalculator;
 }