I want to add my thoughts on affinity system. What does it mean the affinity? I understand it as a soul, sincerity. The way how you behave based on your actions.
For example, take 2 guys: first one fucks every girl living around him, and second one is a guy who truly believe in monogamy and love. Both guys can speak with a girl they like with the same approach, and talk with a same nice words. However, girls can determine which one is just sweet talker, and which one is sincere who speaks from the bottom of his heart. It is noticeable on how they talk, how they look into the eyes. It is impossible to show in a video game, but it exists in real life.
The same goes to other parts of actions, if you willingly try to punch a guy, or smoke weed, or just be an asshole to someone who is in trouble, then you are not nice person, even if you consider yourself otherwise. And, it is not necessary for people to witness your bad behaviour, they would just feel that you are not nicest person, even though you do nice things for them.