Ejemplo n.º 1
0
        private static void ApplyPerkBonusToRaidHit(MapEvent __instance, float hitDamage)
        {
            var perk = ActivePatch._perk;
            var partyMemberHitDamage = new ExplainedNumber(hitDamage);

            foreach (var party in __instance.AttackerSide.Parties.Where(x => x.MobileParty != null))
            {
                PerkHelper.AddPerkBonusForParty(perk, party.MobileParty, ref partyMemberHitDamage);
            }

            RaidingHelper.SetHitDamage(__instance, partyMemberHitDamage.ResultNumber);
        }
Ejemplo n.º 2
0
 public static void Prefix(ref MapEvent __instance)
 {
     if (RaidingHelper.IsNotRaidingEvent(__instance))
     {
         return;
     }
     if (RaidingHelper.IsTheRaidHitNotHappeningNow(__instance, out var damageAccumulated))
     {
         return;
     }
     ApplyPerkBonusToRaidHit(__instance, damageAccumulated);
 }
        private static void ApplyPerkExtraRewardBonusToRaidHit(MapEvent __instance, float hitDamage)
        {
            var perk = ActivePatch._perk;
            var partyMemberHitDamage = new ExplainedNumber(hitDamage);

            foreach (var party in __instance.AttackerSide.Parties.Where(x => x.MobileParty != null))
            {
                PerkHelper.AddPerkBonusForParty(perk, party.MobileParty, ref partyMemberHitDamage);
            }

            var damageBonus = partyMemberHitDamage.ResultNumber - partyMemberHitDamage.BaseNumber;

            RaidingHelper.SetHitDamage(__instance, partyMemberHitDamage.ResultNumber);
            RaidingHelper.IncreaseSettlementHitPoints(__instance, damageBonus);
        }