public EncyclopediaHeroPageVMExtensionVM(EncyclopediaPageArgs args) : base(args) { _grantFiefInterface = new GrantFiefInterface(); _hero = (Obj as Hero) !; _sendMessengerCost = DiplomacyCostCalculator.DetermineCostForSendingMessenger(); SendMessengerCost = (int)_sendMessengerCost.Value; SendMessengerActionName = new TextObject("{=cXfcwzPp}Send Messenger").ToString(); GrantFiefActionName = new TextObject("{=LpoyhORp}Grant Fief").ToString(); RefreshValues(); }
private void UpdateActionAvailability() { this.IsMessengerAvailable = MessengerManager.CanSendMessengerWithCost(Faction2Leader.Hero, DiplomacyCostCalculator.DetermineCostForSendingMessenger()); this.IsOptionAvailable = MakePeaceConditions.Instance.CanApplyExceptions(this, true).IsEmpty(); string makePeaceException = MakePeaceConditions.Instance.CanApplyExceptions(this, true).FirstOrDefault()?.ToString(); this.ActionHint = makePeaceException != null ? new HintViewModel(makePeaceException) : new HintViewModel(); }
protected virtual void UpdateActionAvailability() { this.IsMessengerAvailable = MessengerManager.CanSendMessengerWithCost(Faction2Leader.Hero, DiplomacyCostCalculator.DetermineCostForSendingMessenger()); this.IsOptionAvailable = DeclareWarConditions.Instance.CanApplyExceptions(this, true).IsEmpty(); string allianceException = FormAllianceConditions.Instance.CanApplyExceptions(this, true).FirstOrDefault()?.ToString(); this.IsAllianceAvailable = allianceException == null; string declareWarException = DeclareWarConditions.Instance.CanApplyExceptions(this, true).FirstOrDefault()?.ToString(); this.ActionHint = declareWarException != null ? new HintViewModel(declareWarException) : new HintViewModel(); this.AllianceHint = allianceException != null ? new HintViewModel(allianceException) : new HintViewModel(); string nonAggressionPactException = NonAggressionPactConditions.Instance.CanApplyExceptions(this, true).FirstOrDefault()?.ToString(); this.IsNonAggressionPactAvailable = nonAggressionPactException == null; this.NonAggressionPactHint = nonAggressionPactException != null ? new HintViewModel(nonAggressionPactException) : new HintViewModel(); HybridCost allianceCost = DiplomacyCostCalculator.DetermineCostForFormingAlliance(Faction1 as Kingdom, Faction2 as Kingdom, true); this.AllianceInfluenceCost = (int)allianceCost.InfluenceCost.Value; this.AllianceGoldCost = (int)allianceCost.GoldCost.Value; HybridCost nonAggressionPactCost = DiplomacyCostCalculator.DetermineCostForFormingNonAggressionPact(Faction1 as Kingdom, Faction2 as Kingdom, true); this.NonAggressionPactInfluenceCost = (int)nonAggressionPactCost.InfluenceCost.Value; this.NonAggressionPactGoldCost = (int)nonAggressionPactCost.GoldCost.Value; this.AllianceScoreHint = this.UpdateDiplomacyTooltip(AllianceScoringModel.Instance.GetScore(Faction2 as Kingdom, Faction1 as Kingdom, new StatExplainer())); this.NonAggressionPactScoreHint = this.UpdateDiplomacyTooltip(NonAggressionPactScoringModel.Instance.GetScore(Faction2 as Kingdom, Faction1 as Kingdom, new StatExplainer())); }
private void OnMessengerSent(Hero hero) { _messengerManager.SendMessengerWithCost(hero, DiplomacyCostCalculator.DetermineCostForSendingMessenger()); }