Originally Posted by
Jurand of Cracow
Indeed, my question is: how did you make your army leaders not going below 4 loyalty when they're far, far, far, far, far, far, far, far away from the capital. They should have 0 loyalty much in advance. You've explained it to me once and I've even made a fix for FarLoyalty on your hack, but I've forgotten the mechanics...
sigh, I'm assuming it was related to this, though as when you asked, I am still only guessing as I didn't know about this until long after using the generals.
Code:
Trigger Far_Loyalty_trigger1
WhenToTest CharacterTurnEnd
Condition IsGeneral
and not IsFactionHeir
and not IsFactionLeader
and DistanceCapital > 60
and Trait Far_Loyalty <= 4
and FactionIsLocal
Affects Far_Loyalty 1 Chance 10
;------------------------------------------
Trigger Far_Loyalty_trigger2
WhenToTest CharacterTurnEnd
Condition IsGeneral
and not IsFactionHeir
and not IsFactionLeader
and DistanceCapital > 60
and Trait Far_Loyalty >= 4
and Trait Far_Loyalty <= 10
and Attribute Loyalty < 4
and FactionIsLocal
Affects Far_Loyalty 1 Chance 10
Your Far-Loyalty trait will not accumulate if you reach 5 points and they're at 4+ loyalty, is what I guess you're referring to.
We could also check the requirements for discontentgeneral I guess. But it seems if you're a dread general, executing prisoners and occupying (or worse) settlements doesn't harm loyalty the way it would if you're a chivalrous general. Similar for dreadFL-dreadGeneral
Code:
Trigger Loyalty_Check_LostBattle
WhenToTest PostBattle
Condition IsGeneral
and not IsFactionLeader
and not WonBattle
and BattleSuccess >= average
and I_ConflictType Normal
and BattleOdds > 0.75
and not Trait Near_Loyalty > 0
Affects DiscontentGeneral 1 Chance 50
;------------------------------------------
Trigger Loyalty_Check_Prisoners1
WhenToTest GeneralPrisonersRansomedCaptor
Condition RansomType execute
and not IsFactionLeader
and NumCapturedSoldiers > 50
and Attribute Chivalry >= 4
and not Trait Near_Loyalty > 0
Affects DiscontentGeneral 1 Chance 33
;------------------------------------------
Trigger Loyalty_Check_Prisoners2
WhenToTest ExterminatePopulation
Condition Attribute Chivalry >= 4
and not IsFactionLeader
and not Trait Near_Loyalty > 0
Affects DiscontentGeneral 1 Chance 50
;------------------------------------------
Trigger Loyalty_Check_Piety
WhenToTest CharacterTurnEnd
Condition FactionExcommunicated
and not IsFactionLeader
and IsGeneral
and Attribute Piety >= 4
and not Trait Near_Loyalty > 0
Affects DiscontentGeneral 1 Chance 50
;------------------------------------------
Trigger Loyalty_Check_Buildings1
WhenToTest CharacterTurnEnd
Condition EndedInSettlement
and not IsFactionLeader
and not GovernorBuildingExists >= stone_wall
and not GovernorBuildingExists >= castle
and Attribute Command > 4
and DistanceCapital > 75
and not Trait Near_Loyalty > 0
Affects DiscontentGeneral 1 Chance 5
;------------------------------------------
Trigger Loyalty_Check_Adoption
WhenToTest BrotherAdopted
Condition not IsFactionHeir
and not Trait Near_Loyalty > 0
Affects DiscontentGeneral 1 Chance 33
;------------------------------------------
Trigger Loyalty_Check_Oppossed_Attributes
WhenToTest CharacterTurnEnd
Condition IsGeneral
and not IsFactionLeader
and Attribute Chivalry >= 3
and FactionLeaderAttribute Chivalry <= -3
and not Trait Near_Loyalty > 0
Affects DiscontentGeneral 1 Chance 5
So you can see bypassing DiscontentGeneral points is not too hard... if you're using Dread army leaders. You can also stack ContentGeneral which adds loyalty, helping you to stay above the critical threshold for the Far_Loyalty.
Now I'm sure you've already modified it (since well, you said so) so who knows what that looks like. Though in the first case, loyalty is fairly binary so most of my playthrough I never thought about it in the first place, so it's hardly a hack the way farming Masters Thieves guilds or flanking with crossbowmen is.