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)); }
private void PayTournamentFee(MBHero payor, MBSettlement settlement) { var tournamentCost = Settings.TournamentCost; payor.ChangeHeroGold(-tournamentCost); settlement.Town.ChangeGold(tournamentCost); }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node != null) { int index = treeView1.Nodes.IndexOf(e.Node); selectedHero = heroes.Heroes[index]; SelectHeroChanged?.Invoke(heroes.Heroes[index], index); } }
private void UcHeroList_SelectHeroChanged(MBHero selectedHero, int selectedIndex) { this.selectedHero = selectedHero; this.selectedIndex = selectedIndex; SelectedHeroChanged?.Invoke(selectedHero, selectedIndex, state); if (selectedHero != null) { btnDelete.Enabled = true; btnModify.Enabled = true; } }
private void AddOrUpdateTournamentRecord(MBSettlement settlement, MBHero initiatingHero, TournamentType type) { var record = new TournamentRecord() { hostSettlementStringId = settlement.StringId, initiatingHeroStringId = initiatingHero.IsNull ? null : initiatingHero.StringId, tournamentType = type }; ModState.TournamentRecords.AddOrUpdate(record); }
public void SetUp(bool isHeroActive, bool canHeroAffordCost) { _sut = new BasicHeroHostRequirementsComparerImpl(); _mockSettings = MockRepository.Create <Settings>(); _mockSettings.SetupGet(settings => settings.TournamentCost) .Returns(Default.TournamentCost); _sut.Settings = _mockSettings.Object; _mockHero = MockRepository.Create <MBHero>(); _mockHero.SetupGet(hero => hero.IsActive).Returns(isHeroActive); _mockHero.SetupGet(hero => hero.Gold).Returns(canHeroAffordCost ? Default.TournamentCost : 0); _hero = _mockHero.Object; }
private void btnAdd_Click(object sender, EventArgs e) { state = AddEditState.Add; ucHeroList.Enabled = false; btnAdd.Enabled = false; btnDelete.Enabled = false; btnModify.Enabled = false; MBHero hero = new MBHero(); SelectedHeroChanged?.Invoke(hero, -1, state); }
public void SetUp(bool doesHeroMeetBaseRequirements, bool IsHeroFactionLeader) { _sut = new FactionLeaderHostComparerImpl(); _mockSettings = MockRepository.Create <Settings>(); _mockSettings.SetupGet(settings => settings.TournamentCost) .Returns(Default.TournamentCost); _sut.Settings = _mockSettings.Object; _mockHero = MockRepository.Create <MBHero>(); _mockHero.SetupGet(hero => hero.IsFactionLeader).Returns(IsHeroFactionLeader); _mockHero.SetupGet(hero => hero.IsActive).Returns(doesHeroMeetBaseRequirements); _mockHero.SetupGet(hero => hero.Gold).Returns(Default.TournamentCost); _hero = _mockHero.Object; }
private FindHostSettlementResult FindHostSettlementsOwnedByHero(MBHero hero) { var options = new FindHostSettlementOptions() { Candidates = hero.Clan.Settlements, Comparers = new IComparer <MBSettlement>[] { new InitiatingHeroOwnershipComparer(hero), } }; return(Find(options)); }
public void SetUp(bool doesHeroMeetBaseRequirements, bool isHeroInClanFaction) { _sut = new ClanLeaderHostComparerImpl(); _mockSettings = MockRepository.Create <Settings>(); _mockSettings.SetupGet(settings => settings.TournamentCost) .Returns(Default.TournamentCost); _sut.Settings = _mockSettings.Object; _mockHero = MockRepository.Create <MBHero>(); _mockFaction = MockRepository.Create <IMBFaction>(); _mockFaction.SetupGet(faction => faction.IsClan).Returns(isHeroInClanFaction); _mockHero.SetupGet(hero => hero.IsFactionLeader).Returns(doesHeroMeetBaseRequirements); _mockHero.SetupGet(hero => hero.MapFaction).Returns(_mockFaction.Object); _mockHero.SetupGet(hero => hero.IsActive).Returns(true); _mockHero.SetupGet(hero => hero.Gold).Returns(Default.TournamentCost); _hero = _mockHero.Object; }
public CreateTournamentResult TryCreateWeddingTournament(MBHero firstWeddedHero, MBHero secondWeddedHero) { var findSettlementResult = SettlementFinder.FindForWeddingTournament(firstWeddedHero, secondWeddedHero); if (findSettlementResult.Failed) { return(CreateTournamentResult.Failure); } var options = new CreateTournamentOptions() { Settlement = findSettlementResult.Nominee, Type = TournamentType.Wedding }; return(CreateTournament(options)); }
public CreateTournamentResult TryMakeBirthTournament(MBHero mother) { var findSettlementResult = SettlementFinder.FindForBirthTournament(mother); if (findSettlementResult.Failed) { return(CreateTournamentResult.Failure); } var createTournamentOptions = new CreateTournamentOptions() { InitiatingHero = findSettlementResult.InitiatingHero, Settlement = findSettlementResult.Nominee, Type = TournamentType.Peace }; return(CreateTournament(createTournamentOptions)); }
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); }
public FindHostSettlementResult FindForBirthTournament(MBHero mother) { var findCandidateSettlementResults = FindBirthTournamentSettlementsForParent(mother); if (findCandidateSettlementResults.Failed) { return(FindHostSettlementResult.Failure); } var options = new FindHostSettlementOptions() { Candidates = findCandidateSettlementResults.AllQualifiedCandidates, Comparers = new IComparer <MBSettlement>[] { ProsperityComparer.Instance }, }; return(Find(options)); }
private void UcCultureList_SelectHeroChanged(ModdingFiles.MBHero hero, int index) { SelectedHero = hero; }
protected SettlementComparerBase(MBHero initiatingHero = null) : base(initiatingHero) { }
protected ComparerBase(MBHero initiatingHero = null) { InitiatingHero = initiatingHero ?? MBHero.Null; }
public virtual bool IsWorthyTournamentPrizeForMainHero() { return(IsTournamentPrize() && UnwrappedObject.Tier == MBHero.GetMainHeroTournamentRewardTier()); }
protected override bool MeetsRequirements(MBHero hero) => base.MeetsRequirements(hero) && hero.MapFaction.IsClan;
protected ExistingTournamentComparer(bool canOverrideExisting = false, MBHero initiatingHero = null) : base(initiatingHero) { CanOverrideExisting = canOverrideExisting; }
protected ProsperityComparer(bool hasProsperityRequirement = false, bool canOverrideExisting = false, MBHero initiatingHero = null) : base(canOverrideExisting, initiatingHero) { RequireMinProsperity = hasProsperityRequirement; }
public new bool MeetsRequirements(MBHero Hero) => base.MeetsRequirements(Hero);
protected override bool MeetsRequirements(MBHero hero) => hero.IsActive && hero.Gold >= Settings.TournamentCost;
public new static FindHostSettlementResult Success(List <MBSettlement> nominees, MBHero initiatingHero) => new FindHostSettlementResult() { Status = ResultStatus.Success, AllQualifiedCandidates = nominees, InitiatingHero = initiatingHero };
protected BasicKingdomHostRequirementsComparer(MBHero initiatingHero = null) : base(initiatingHero) { }
protected FactionLeaderHostComparer(MBHero initiatingHero = null) : base(initiatingHero) { }
protected override bool MeetsRequirements(MBHero hero) => base.MeetsRequirements(hero) && hero.IsFactionLeader;
protected KingdomComparerBase(MBHero initiatingHero = null) : base(initiatingHero) { }
private bool PayorMeetsRequirements(MBHero payor) { var result = HeroFinder.FindHostsThatMeetBasicRequirements(payor); return(result.Succeeded); }
protected ClanComparerBase(MBHero initiatingHero = null) : base(initiatingHero) { }