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)); } }
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); } }
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); } } }