private void RegisterDeclareWarCooldown(IFaction faction1, IFaction faction2) { Kingdom kingdom1, kingdom2; kingdom1 = faction1 as Kingdom; kingdom2 = faction2 as Kingdom; if (kingdom1 != null && kingdom2 != null) { FormNonAggressionPactAction.Apply(kingdom1, kingdom2, bypassCosts: true, customDurationInDays: Settings.Instance.DeclareWarCooldownInDays, queryPlayer: false); } }
private void RegisterDeclareWarCooldown(IFaction faction1, IFaction faction2) { if (faction1 is Kingdom kingdom1 && faction2 is Kingdom kingdom2) { LogFactory.Get <CooldownBehavior>() .LogTrace($"[{CampaignTime.Now}] {kingdom1.Name} got a war declaration cooldown with {kingdom2.Name}."); FormNonAggressionPactAction.Apply(kingdom1, kingdom2, bypassCosts: true, customDurationInDays: Settings.Instance !.DeclareWarCooldownInDays, queryPlayer: false); } }
private void ConsiderNonAggressionPact(Kingdom proposingKingdom) { if (MBRandom.RandomFloat < 0.05f) { Kingdom proposedKingdom = Kingdom.All.Except(new Kingdom[] { proposingKingdom })? .Where(kingdom => NonAggressionPactConditions.Instance.CanApply(proposingKingdom, kingdom)) .Where(kingdom => NonAggressionPactScoringModel.Instance.ShouldFormBidirectional(proposingKingdom, kingdom)) .OrderByDescending(kingdom => kingdom.GetExpansionism()).FirstOrDefault(); if (proposedKingdom != null) { FormNonAggressionPactAction.Apply(proposingKingdom, proposedKingdom); } } }
private void ConsiderNonAggressionPact(Kingdom proposingKingdom) { if (MBRandom.RandomFloat < 0.05f) { var proposedKingdom = Kingdom.All .Except(new Kingdom[] { proposingKingdom })? .Where(kingdom => NonAggressionPactConditions.Instance.CanApply(proposingKingdom, kingdom)) .Where(kingdom => NonAggressionPactScoringModel.Instance.ShouldFormBidirectional(proposingKingdom, kingdom)) .OrderByDescending(kingdom => kingdom.GetExpansionism()).FirstOrDefault(); if (proposedKingdom is not null) { LogFactory.Get <DiplomaticAgreementBehavior>() .LogTrace($"[{CampaignTime.Now}] {proposingKingdom.Name} decided to form a NAP with {proposedKingdom.Name}."); FormNonAggressionPactAction.Apply(proposingKingdom, proposedKingdom); } } }
protected void ProposeNonAggressionPact() { FormNonAggressionPactAction.Apply(this.Faction1 as Kingdom, this.Faction2 as Kingdom, true); this.UpdateDiplomacyProperties(); }