Looks like we hijacked Jabberdau's thread. You are no longer in control... resistance is futile!
As far as what I've encountered so far, traits do not accept negative values. I tested this initially by giving spies -32 GoodSpy upon creation, and shortly thereafter 32 GoodSpy. They all came out as +5 due to GoodSpy, meaning they didn't take any negative value of GoodSpy at all. What I'm hazy on is whether or not the game will actually apply as much minus as possible: i.e. if you have 5 points and try to remove 8, I think the game will remove 5 and ignore the rest, though it's possible it ignores the attempt entirely and leaves it at 5. I'll fiddle with it more if I get the chance, in order to figure this out.
Outside of that though, what you just suggested is probably the best way to get this particular job done. Maybe it's slightly optimized to zero the trait every turn and then bump it up based on triggers? Like this:
Affects TradeBonus -99 Chance 100
WhenToTest CharacterTurnStart
Condition Attribute Trading >= 1
Affects TradeBonus 1 Chance 100
WhenToTest CharacterTurnStart
Condition Attribute Trading >= 2
Affects TradeBonus 1 chance 100
...and so on until the condition meets the max value of trading. It does almost the same thing as your code, just removes the need to zero the trait in each of the triggers which should presumably save time.
Bookmarks