Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 5
0
 protected void ProposeNonAggressionPact()
 {
     FormNonAggressionPactAction.Apply(this.Faction1 as Kingdom, this.Faction2 as Kingdom, true);
     this.UpdateDiplomacyProperties();
 }