Exemple #1
0
        private void CheckForWeaponTraining()
        {
            if (AdvancedWeaponTraining.WieldsWeaponFromFighterGroup(base.Owner, WeaponTraining))
            {
                int WeaponTrainingValue = AdvancedWeaponTraining.GetWeaponTrainingRank(base.Owner, WeaponTraining);

                int acBonus = 1;
                if (WeaponTrainingValue >= 4)
                {
                    acBonus += 1;
                }

                int weaponEnhancementBonus = AdvancedWeaponTraining.GetWeaponEnhancementBonus(base.Owner);
                acBonus += weaponEnhancementBonus / 2;

                if (OldValue != acBonus)
                {
                    Deactivate();
                    Activate(acBonus);
                }
            }
            else
            {
                Deactivate();
            }
        }
 private void ManageModifier()
 {
     if (AdvancedWeaponTraining.WieldsWeaponFromFighterGroup(base.Owner, WeaponTraining))
     {
     }
     else
     {
         base.Owner.State.Features.SoloTactics.Release();
     }
 }
 private void CheckWeapons()
 {
     if (AdvancedWeaponTraining.WieldsWeaponFromFighterGroup(base.Owner, WeaponTraining))
     {
         Activate();
     }
     else
     {
         Deactivate();
     }
 }
 public override void OnEventAboutToTrigger(RuleCalculateAttackBonusWithoutTarget evt)
 {
     if (AdvancedWeaponTraining.WieldsWeaponFromFighterGroup(base.Owner, WeaponTraining) && !evt.Weapon.Blueprint.Category.HasSubCategory(WeaponSubCategory.Finessable))
     {
         ModifiableValueAttributeStat stat1 = this.Owner.Stats.GetStat(evt.AttackBonusStat) as ModifiableValueAttributeStat;
         ModifiableValueAttributeStat stat2 = this.Owner.Stats.GetStat(StatType.Dexterity) as ModifiableValueAttributeStat;
         bool flag = stat2 != null && stat1 != null && stat2.Bonus >= stat1.Bonus;
         if (!flag)
         {
             return;
         }
         evt.AttackBonusStat = StatType.Dexterity;
     }
 }
 public override void OnEventAboutToTrigger(RuleSavingThrow evt)
 {
     if (AdvancedWeaponTraining.WieldsWeaponFromFighterGroup(base.Owner, WeaponTraining))
     {
         BlueprintAbility sourceAbility = evt.Reason.Context?.SourceAbility;
         UnitEntityData   maybeCaster   = evt.Reason.Context?.MaybeCaster;
         if (!((UnityEngine.Object)sourceAbility != (Object)null) || !sourceAbility == DazzlingDisplayAction || sourceAbility == PersuasionUseAbility)
         {
             return;
         }
         evt.AddTemporaryModifier(evt.Initiator.Stats.SaveWill.AddModifier(this.IntimidateBonus, (GameLogicComponent)this, ModifierDescriptor.UntypedStackable));
         evt.AddTemporaryModifier(evt.Initiator.Stats.SaveReflex.AddModifier(this.IntimidateBonus, (GameLogicComponent)this, ModifierDescriptor.UntypedStackable));
         evt.AddTemporaryModifier(evt.Initiator.Stats.SaveFortitude.AddModifier(this.IntimidateBonus, (GameLogicComponent)this, ModifierDescriptor.UntypedStackable));
     }
 }
Exemple #6
0
 private void CheckForWeaponTraining()
 {
     if (AdvancedWeaponTraining.WieldsWeaponFromFighterGroup(base.Owner, WeaponTraining))
     {
         int newValue = AdvancedWeaponTraining.GetWeaponTrainingRank(base.Owner, WeaponTraining);
         if (OldValue != newValue)
         {
             Deactivate();
             Activate(newValue);
         }
     }
     else
     {
         Deactivate();
     }
 }
 public override void OnEventAboutToTrigger(RuleCalculateWeaponStats evt)
 {
     if (AdvancedWeaponTraining.WieldsWeaponFromFighterGroup(this.Owner, WeaponFighterGroupFeature) && (
             evt.Weapon.Blueprint.Category.HasSubCategory(WeaponSubCategory.Finessable) ||
             base.Owner.Progression.Features.GetRank(FightersFinesseFeature) > 0))
     {
         ModifiableValueAttributeStat stat1 = this.Owner.Stats.GetStat(evt.Weapon.Blueprint.AttackBonusStat) as ModifiableValueAttributeStat;
         ModifiableValueAttributeStat stat2 = this.Owner.Stats.GetStat(StatType.Dexterity) as ModifiableValueAttributeStat;
         bool flag = stat2 != null && stat1 != null && stat2.Bonus >= stat1.Bonus;
         if (!flag)
         {
             return;
         }
         int value = base.Owner.Progression.Features.GetRank(WeaponFighterGroupFeature);
         evt.AddBonusDamage(value);
     }
 }
Exemple #8
0
 private void ManageModifier()
 {
     if (AdvancedWeaponTraining.WieldsWeaponFromFighterGroup(base.Owner, WeaponTraining))
     {
         int value = AdvancedWeaponTraining.GetWeaponTrainingRank(base.Owner, WeaponTraining);
         if (Modifier == null || Modifier.ModValue != value)
         {
             Deactivate();
             Activate(value);
         }
     }
     else
     {
         if (Modifier != null)
         {
             base.Owner.Stats.SaveReflex.RemoveModifier(Modifier);
         }
     }
 }
            private static bool Prefix(BlueprintAbilityResource __instance, UnitDescriptor unit, ref int __result)
            {
                if (__instance.GetType() == typeof(WarriorSpiritPoolLogic))
                {
                    __result = 0;
                    if (unit.Progression.GetClassLevel(Helpers.fighterClass) >= 5)
                    {
                        int basePool = 1;

                        int weaponTrainingValue = AdvancedWeaponTraining.GetWeaponTrainingRank(unit, ((WarriorSpiritPoolLogic)__instance).WeaponTraining);

                        __result = basePool + weaponTrainingValue;
                    }

                    return(false);
                }

                return(true);
            }