This one is interesting. Got one of them saves? Can't find them in your last one.
Origin for them is this:
V.activeSlave.career = jsEither(["a businessman", "a lawyer", "a stockbroker"]);V.activeSlave.origin = `You purchased $his life at a prison sale. $He was ${V.activeSlave.career} convicted of blackmail against a sorority of university students, forcing them to do sexual favors.`;
convertCareer() will modify the slave career so it shows "businesswoman" but it seems to be used only for display. What I need to test is how to use that safely here.
edit: This is a sticky one. We could embed <<= convertCareer(V.activeSlave)>> but that hardcodes both SC and activeSlave so I hate it. Another option is to have a function that can scan on BC or genderchange and update career and origin. @svornost, any thoughts on this?
Oof. Embedding the career into the origin like that is something else.
Origin strings are supposed to be gender neutral. Slave gender may change during the course of a game. So it has to be changed at the point of display...but obviously you can't run convertCareer on it that late, since it's been interpolated in.
I dunno. Need to think about it. Might end up needing a displayOrigin(slave) function that dynamically swaps out a "$career" element, and then just put that in the origin string.
Or just don't ever generate "businessman" there. Lawyer and stockbroker are both gender neutral. If we used "a business owner" instead (which is also in the career list), we'd avoid the problem for future slaves ;)
Also, the career list has "a businessman" but convertCareer assumes that the neutral form is "a businesswoman", and will convert it into a businessman. That seems pretty wrong (and it's backwards from, say, "a fisherwoman".
Is anything really lost by just removing that entirely?
V.activeSlave.origin = `You purchased $his life at a prison sale. $He was SNIP! convicted of blackmail against a sorority of university students, forcing them to do sexual favors.`;