private FindHostSettlementResult FindBirthTournamentSettlementsForParent(MBHero parent) { var leaderResult = HeroFinder.FindFactionLeaders(parent, parent.Spouse); if (leaderResult.Failed) { return(FindHostSettlementResult.Failure); } var candidateSettlements = new List <MBSettlement>(); foreach (var leader in leaderResult.AllQualifiedCandidates) { var findOwnedSettlementsResult = FindHostSettlementsOwnedByHero(leader); if (findOwnedSettlementsResult.Succeeded) { candidateSettlements.AddRange(findOwnedSettlementsResult.AllQualifiedCandidates); } } if (candidateSettlements.IsEmpty()) { return(FindHostSettlementResult.Failure); } return(FindHostSettlementResult.Success(candidateSettlements)); }
public FindHostSettlementResult FindForWeddingTournament(MBHero firstWeddedHero, MBHero secondWeddedHero) { var failureResult = FindHostSettlementResult.Failure; var findHostHeroResult = HeroFinder.FindHostsFromWeddedHeroes(firstWeddedHero, secondWeddedHero); if (findHostHeroResult.Failed) { return(failureResult); } var result = FindForFactionLeaderWedding(findHostHeroResult.Nominee); if (result.Failed && findHostHeroResult.HasRunnerUp) { result = FindForFactionLeaderWedding(findHostHeroResult.RunnerUp); } return(result); }