edit: okay, yeah, it’s definitely something weird with the if else, else, can’t fall into, etc. I’m not sure exactly what’s causing it, but i was able to replicate, even retyping from scratch
Here’s a subroutine that should work fine. It’s a lot of lines but not much code, and if it does break it should be easier to troubleshoot than all the nested *if statements
*label findtrait
*temp tvalue 0
*temp tname "unknown"
*temp mixedflag 0
*if dom_personality = "true"
*if (tvalue = adaptable)
*set mixedflag 1
*if (tvalue < adaptable)
*set tvalue adaptable
*set tname "adaptable"
*set mixedflag 0
*if (tvalue = aggressive)
*set mixedflag 1
*if (tvalue < aggressive)
*set tvalue aggressive
*set tname "aggressive"
*set mixedflag 0
*if (tvalue = benevolent)
*set mixedflag 1
*if (tvalue < benevolent)
*set tvalue benevolent
*set tname "benevolent"
*set mixedflag 0
*if (tvalue = charming)
*set mixedflag 1
*if (tvalue < charming)
*set tvalue charming
*set tname "charming"
*set mixedflag 0
*if (tvalue = cruel)
*set mixedflag 1
*if (tvalue < cruel)
*set tvalue cruel
*set tname "cruel"
*set mixedflag 0
*if (tvalue = deceptive)
*set mixedflag 1
*if (tvalue < deceptive)
*set tvalue deceptive
*set tname "deceptive"
*set mixedflag 0
*if (tvalue = diplomatic)
*set mixedflag 1
*if (tvalue < diplomatic)
*set tvalue diplomatic
*set tname "diplomatic"
*set mixedflag 0
*if (tvalue = emotional)
*set mixedflag 1
*if (tvalue < emotional)
*set tvalue emotional
*set tname "emotional"
*set mixedflag 0
*if (tvalue = honest)
*set mixedflag 1
*if (tvalue < honest)
*set tvalue honest
*set tname "honest"
*set mixedflag 0
*if (tvalue = reserved)
*set mixedflag 1
*if (tvalue < reserved)
*set tvalue reserved
*set tname "reserved"
*set mixedflag 0
*if (tvalue = stoic)
*set mixedflag 1
*if (tvalue < stoic)
*set tvalue stoic
*set tname "stoic"
*set mixedflag 0
*if (tvalue = stubborn)
*set mixedflag 1
*if (tvalue < stubborn)
*set tvalue stubborn
*set tname "stubborn"
*set mixedflag 0
*if (mixedflag = 1)
*set dom_trait "mixed"
*set dom_value tvalue
*return
*set dom_trait tname
*set dom_value tvalue
*return