A long time ago I ask Vim to add a power function so that you can use growth equations. Here is an example of one of the simplest for generating an intoxication bonus that gives you a small bonus at first but grows to around 32 at max intoxication.
Target = getTarget()
growthRate = 1.035
intoxicationBonus = power(growthRate, Player:intoxication)
// example usage
targetIntoxicationBonus = power(growthRate, Target:intoxication)
targetPerversionScore = Target:perversion + targetIntoxicationBonus - Target:masochist
playerSubmissiveScore = Player:masochist + intoxicationBonus
playerPerversionScore = Player:perversion + intoxicationBonus
Now in place of perversion or masochist, you would just use playerPerversionScore or playerSubmissiveScore. You may way to do something like the below for a masochist.
playerMasochistScore = Player:masochist + intoxicationBonus
if Player:masochist < 0
playerMasochistScore = Player:masochist - intoxicationBonus
endif
This would check whether or not the player is a submissive/masochist and have the intoxicationBonus give them a boost in the direction they already are.