Sexytimes object
Pros: presentation, encapsulation
Cons: serialization
Motor property
Pros: extendibility, in more than one way
Cons: presentation
With a Sexytimes object, a couple can be presented as a single tile, flashing between two participants with a <3 inbetween, like stacked characters in DF. Everything about it can be kept separate from the whole. But Sexytimes requires more trouble in serialization.
With a motor property, a couple can be presented as a single tile only if one occupies the same tile as the other, and they can’t flash between the two of them. On the other hand, the motor property is already serialized and the exact state can be done as tokens. Also, there is theoretically no limit on the amount of participants: a female character can be taken from behind as she gives head to a third person if we’re careful about tracking what each participant is up to. If this is done on the individual body part level, having multiple genitals on a single body becomes somewhat easier as we no longer have to write special Sexytimes states for it.
The motor property would be a rename of and extension to the Movement property, enum MoveMode:
public enum MoveMode { Stand, Wander, WanderSector } public enum Motor { Stand, Wander, WanderSector, Hunt, Sexytimes, ...}