When adjusting accordance traits for Gossip actors I noticed something interesting happening in the Actor editor.
As you switch between actors the values you set for their core personality traits is updated in the editor but the values for the corresponding accordance traits is not updated if the core trait’s Make Visible checkbox is checked, i.e. set to True.
This is by design since the showActor() code in ActorEditor.java sets the slider value only if Make Visible is unchecked.
for(TraitType tt:AUX_TRAIT_TYPES) for(FloatTrait t:dk.getActorTraits()) if (!t.isVisible()) ((Swat.Slider)(JComponent)boxes.get(tt).get(t)).getComponent(1)).mSetValue(toSlider(mActor.get(tt,t)));
The fourth line is where the trait slider’s accordance and weight values are updated if Make Visible is unchecked (the test for this is on the third line of code).
The help text associated with Make Visible says “If this is checked, then actors will perceive this trait in other actors every time they meet.” The More Special Operators page in the original SWAT tutorial talks about the Make Visible checkbox a bit more.
“Unclick the check box to the right of the trait. This means the trait is not readily detectable when two Actors meet (an example of a visible/detectable trait would be Short_Tall. An example of an invisible or non-detectable trait would be Cowardly_Courageous).”
So as I understand it you would uncheck the Make Visible checkbox for a trait like False_Honest, a trait that is not immediately apparent when one actor meets another actor, so the actors would have to use their perceived and confidence values of False_Honest that the hold for the other actor to determine how False_Honest one thinks the other is. For a visible trait like height or weight, a trait that can be visibly assessed, Make Visible should be checked (I am assuming that somewhere in the Storytron engine there is some code that uses Make Visible’s value in some way).
I can understand the logic behind that for “physical” traits. What I don’t understand is why the Make Visible flag is tied to the update of specific actor’s accordance and weight trait values in the Actor editor.
For False_Honest, the accordFalse_Honest and weightFalse_Honest traits are tied to a specific actor and are internal to that actor. Updating or not updating these traits in the editor based on the primary trait’s Make Visible value, especially while you are trying to set them for that particular actor, seems to be a design flaw.
For now I am going to uncheck Make Visible for any “mental” traits so I can see the changes in accordance and weight from actor to actor but it might make a code change to always update accordance and weight in the future.
Update: Chris Conley posted that the reason accordance and weight traits are tied to Make Visible is probably because of the physicality of the trait, no actor would have a different perception of another actor’s height or weight. It’s a good explanation. I don’t know why I didn’t think of it (probably just didn’t think it through to its final connection).