Yes, that's it, but it doesn't seem to output anything in 9.4.
- if person.dailyevents.count([i]) + rand_range(0,2) >= globals.fetishopinion.find(person.fetish[i])*2:
- if person.fetish[i] != globals.fetishopinion.back():
- person.fetish[i] = globals.fetishopinion[globals.fetishopinion.find(person.fetish[i])+1]
If a topic is taboo, any fetish check will make it dirty the next day which isn't wanted in this case. This isn't handled yet as I didn't want to put in too many workarounds for things you may modify in the future anyway.
Code already includes some workarounds for the checkfetish function because we want to use fetish to modify the experience, without necessary modifying their fetish. It's called a lot during the snail experience, and the built-in increase chance made things weird. You'd fail the fetish check, have an awful time, then be more ok with the fetish. Makes sense to have a check function that doesn't add to daily events.
For daily events, some of this is down to personal taste. I would put in chances to increase a fetish for each successful check, and maybe chances to decrease it for each failed check, both weighted by the check difficulty. (e.g. succeeding a very difficult fetish check would have a high chance for increase).