static bool Prefix(RuleCalculateAttackBonus __instance, RulebookEventContext context)
        {
            FlankingParameters flankedParameters = new FlankingParameters(typeof(RuleCalculateAttackBonus_OnTrigger_Patch), __instance.Initiator);

            UnitCombatState_get_IsFlanked_Patch.PushFlankingParameters(flankedParameters);
            return(true);
        }
        static bool Prefix(RulePrepareDamage __instance, RulebookEventContext context)
        {
            FlankingParameters flankedParameters = new FlankingParameters(typeof(RulePrepareDamage_OnTrigger_Patch), __instance.Initiator, true, null, null);

            UnitCombatState_get_IsFlanked_Patch.PushFlankingParameters(flankedParameters);
            return(true);
        }
        static bool Prefix(PreciseStrike __instance, RulePrepareDamage evt)
        {
            BlueprintUnitFact preciseStrikeFact = __instance.PreciseStrikeFact;

            Func <UnitEntityData, UnitEntityData, UnitEntityData, bool> hasPreciseStrike =
                (target, owner, flankingPartner) => owner.Descriptor.State.Features.SoloTactics || flankingPartner.Descriptor.HasFact(preciseStrikeFact);

            FlankingParameters flankingParameters = new FlankingParameters(typeof(PreciseStrike_OnEventAboutToTrigger_Patch), __instance.Owner.Unit, hasPreciseStrike);

            UnitCombatState_get_IsFlanked_Patch.PushFlankingParameters(flankingParameters);

            return(true);
        }
Example #4
0
 static bool Prefix(FlankedAttackBonus __instance, RuleCalculateAttackBonus evt)
 {
     Main.Logger?.Write("FlankedAttackBonus event triggered");
     UnitCombatState_get_IsFlanked_Patch.PushFlankingParameters(new FlankingParameters(typeof(FlankedAttackBonus_OnEventAboutToTrigger_Patch), __instance.Owner.Unit));
     return(true);
 }
 static void Postfix(RulePrepareDamage __instance, RulebookEventContext context)
 {
     UnitCombatState_get_IsFlanked_Patch.PopFlankingParametersIfTypeMatches(typeof(RulePrepareDamage_OnTrigger_Patch));
 }
Example #6
0
 static void Postfix(BackToBack __instance, RuleCalculateAC evt)
 {
     UnitCombatState_get_IsFlanked_Patch.PopFlankingParametersIfTypeMatches(typeof(BackToBack_OnEventAboutToTrigger_Patch));
 }
Example #7
0
 static bool Prefix(BackToBack __instance, RuleCalculateAC evt)
 {
     UnitCombatState_get_IsFlanked_Patch.PushFlankingParameters(new FlankingParameters(typeof(BackToBack_OnEventAboutToTrigger_Patch), evt.Initiator));
     return(true);
 }