Example #1
0
        /// <summary>
        /// Grab all the combat targets that could be affected by the style and weapon
        /// </summary>
        /// <param name="rStyle">AttackStyle that defines the field-of-attack</param>
        /// <param name="rWeapon">Weapon that is currently being used</param>
        /// <param name="rCombatTargets">List of CombatTargets we will fill with the results</param>
        /// <param name="rIgnore">Combatant to ignore. Typically this is the character asking for the query.</param>
        /// <returns></returns>
        public virtual int QueryCombatTargets(AttackStyle rAttackStyle, IWeaponCore rWeapon, List <CombatTarget> rCombatTargets, Transform rIgnore)
        {
            IWeaponCore lWeapon = (rWeapon != null ? rWeapon : mPrimaryWeapon);

            CombatFilter lFilter = new CombatFilter(rAttackStyle);

            lFilter.MinDistance = (rAttackStyle.MinRange > 0f ? rAttackStyle.MinRange : _MinMeleeReach + lWeapon.MinRange);
            lFilter.MaxDistance = (rAttackStyle.MaxRange > 0f ? rAttackStyle.MaxRange : _MaxMeleeReach + lWeapon.MaxRange);

            rCombatTargets.Clear();
            int lTargetCount = CombatManager.QueryCombatTargets(_Transform, CombatOrigin, lFilter, rCombatTargets, rIgnore);

            return(lTargetCount);
        }
Example #2
0
        /// <summary>
        /// AttackStyle constructor
        /// </summary>
        /// <param name="rStyle"></param>
        public CombatFilter(AttackStyle rStyle)
        {
            RequireCombatant = false;

            MinDistance = 0.5f;

            MaxDistance = 3f;

            HorizontalFOA = rStyle.HorizontalFOA;

            VerticalFOA = rStyle.VerticalFOA;

            Layers = -1;

            Tag = null;
        }
Example #3
0
        /// <summary>
        /// Copy constructor
        /// </summary>
        /// <param name="rSource">Source to copy from</param>
        public AttackStyle(AttackStyle rSource)
        {
            if (rSource == null)
            {
                return;
            }

            _Name            = rSource._Name;
            _ParameterID     = rSource._ParameterID;
            _Style           = rSource._Style;
            _IsInterruptible = rSource._IsInterruptible;
            _Forward         = rSource._Forward;
            _HorizontalFOA   = rSource._HorizontalFOA;
            _VerticalFOA     = rSource._VerticalFOA;
            _MinRange        = rSource._MinRange;
            _MaxRange        = rSource._MaxRange;
            _DamageModifier  = rSource._DamageModifier;
        }
Example #4
0
        /// <summary>
        /// Copy constructor
        /// </summary>
        /// <param name="rSource">Source to copy from</param>
        public AttackStyle(AttackStyle rSource)
        {
            if (rSource == null)
            {
                return;
            }

            _Name = rSource._Name;
            // CDL 07/01/2018  -_Form was missing
            _Form        = rSource._Form;
            _ParameterID = rSource._ParameterID;
            _Style       = rSource._Style;
            // CDL 07/01/2018 also missing : _Delay
            _Delay           = rSource._Delay;
            _IsInterruptible = rSource._IsInterruptible;
            _Forward         = rSource._Forward;
            _HorizontalFOA   = rSource._HorizontalFOA;
            _VerticalFOA     = rSource._VerticalFOA;
            _MinRange        = rSource._MinRange;
            _MaxRange        = rSource._MaxRange;
            _DamageModifier  = rSource._DamageModifier;
        }
Example #5
0
 /// <summary>
 /// Grab all the combat targets that could be affected by the style and the primary weapon
 /// </summary>
 /// <param name="rStyle">AttackStyle that defines the field-of-attack</param>
 /// <param name="rCombatTargets">List of CombatTargets we will fill with the results</param>
 /// <returns></returns>
 public virtual int QueryCombatTargets(AttackStyle rStyle, List <CombatTarget> rCombatTargets)
 {
     return(QueryCombatTargets(rStyle, null, rCombatTargets, _Transform));
 }