How would you even do that? Like, how would an event save all traits one has, then compare, and notify of changes?
The event could run continuously and check if the player had a certain trait. The event would have two flags for each trait of interest -
has_<traitname> and
had_<traitname>. Every cycle the event would first set
had_<traitname> to whatever the value is for
has_<traitname>, then it would check if they have the trait now and if yes the flag would be set to true, otherwise it would be set to false. The final step would be to check
has_ and
had_ and if they are different then it would pause the game with a pop up.
Example
Flag
has_greedy starts the game set to false,
had_greedy also start set to false. The event checks on game start and discovers that character does in fact have the Greedy trait, so
had_greedy is immediately set to whatever
has_greedy currently is (false) and is thus unchanged, but
has_greedy is set to true because the character DOES have the trait. In the next and all future cycles the character still has the Greedy trait so both flags get set to true -
has_greedy = true and
had_greedy = true.
During the course of play the character loses the Greedy trait. On the next check cycle
has_greedy is suddenly flipped to false, so on this cycle only the event will return
had_greedy = true and
has_greedy = false so it will run the pop up ("Your character has lost the Greedy trait !"). The next cycle comes around and both
has_ and
had_ are now false so the pop up does not fire nor will it until the character gains and then loses it again.
As I mentioned this event is very tedious to write and CPU heavy to run but if it only ran on the player's character and was limited to say the top 30-40 traits of interest to the player then it shouldn't be TOO hard to write nor laggy to run. But would it be worth it ?