Hmm. Ok, so here's my dilemma:
I have a rules entry that checks whether a player has a commission with the faction and then, if they do, gives a dialogue option for commission-giving npcs to also set the player faction's portraits to that faction's portraits (immersion feature).
The first time this happens you get some rep (usually just for npc but I think if you take a commission at "welcoming" it might bump faction rep too) since its a show of loyalty, but you can always change your mind and go back to "stock" player portraits in your faction by talking to any commission-giving npc again and choosing the appropriate dialogue to change your mind. This doesn't reduce rep, but if you change your mind
again and choose that faction's portraits, they are less impressed and rep isn't affected.
That's the context of what I am trying to do and it all works except:
When you lose your commission from hostile action or rep loss of any kind if will remove the dialogue option from the npc but obviously won't run the rule command to change the player faction's portraits back to stock. So it would lock the player into whatever their choice is until they can get a commission back so the dialogue shows up again. That's obviously not ideal.
Potential solutions:
1) So I could just make the "change back" dialogue always populate if your portraits are locked no matter if you have a commission or not, but that doesn't really make sense from a logical standpoint since if they were mad enough to annul your commission they certainly aren't going to keep sending you officers until you kindly ask them not to.
2) Or I can figure out how to run the rule command each time the commission is annulled. The optimal solution for immersion.
Sorry it took so long to get here, but I really wanted the context to be fleshed out.
Important Part:If I created a class that extended FactionCommissionIntel and overrides methods like createResignedCommissionResult() or endMission(InteractionDialogAPI dialog) and just added in the rule command to it I wonder if that would work.
Any potential ideas from anyone?