private static void Postfix( DefaultTargetScoreCalculatingModel __instance, Settlement settlement, MobileParty mobileParty, ref float __result) { PartyOrder partyOrder; if (mobileParty == null) { partyOrder = (PartyOrder)null; } else { Hero leaderHero = mobileParty.LeaderHero; partyOrder = leaderHero != null?leaderHero.getOrder() : (PartyOrder)null; } if (partyOrder == null) { return; } PartyOrder order = mobileParty.LeaderHero.getOrder(); if (settlement.OwnerClan == mobileParty.LeaderHero.Clan) { __result *= order.OwnClanVillagesScoreMultiplier; } else { __result *= order.FriendlyVillagesScoreMultiplier; } }
private static void Postfix( DefaultTargetScoreCalculatingModel __instance, Settlement targetSettlement, Army.ArmyTypes missionType, MobileParty mobileParty, float ourStrength, ref float __result) { if (mobileParty.LeaderHero == null) { return; } switch (missionType) { case Army.ArmyTypes.Besieger: if (targetSettlement.OwnerClan != null) { float num = Math.Max(Math.Min((float)targetSettlement.OwnerClan.Leader.GetRelation(mobileParty.LeaderHero) / 20f, 1f), -1f); __result *= (float)(1.0 - (double)num * ((double)num > 0.0 ? 1.0 - (double)Config.Value.RelationSiegingPositiveMultMin : (double)Config.Value.RelationSiegingNegativeMultMax - 1.0)); } if (targetSettlement.Culture != mobileParty.MapFaction.Culture) { break; } __result *= Config.Value.SameCultureSiegingMult; break; case Army.ArmyTypes.Raider: if (targetSettlement.OwnerClan != null) { float num = Math.Max(Math.Min((float)targetSettlement.OwnerClan.Leader.GetRelation(mobileParty.LeaderHero) / 20f, 1f), -1f); __result *= (float)(1.0 - (double)num * ((double)num > 0.0 ? 1.0 - (double)Config.Value.RelationRaidingPositiveMultMin : (double)Config.Value.RelationRaidingNegativeMultMax - 1.0)); } if (targetSettlement.Culture != mobileParty.LeaderHero.Culture && targetSettlement.Culture != mobileParty.MapFaction.Culture) { break; } __result *= Config.Value.SameCultureRaidingMult; break; } }