Page 1 of 1

Deed aggression bug

Posted: Fri Jul 30, 2021 12:05 am
by mengliang010800
look the pic,When I set up aggression<0,the dominance<0,is right
1627617197(1).jpg
1627617197(1).jpg (314.19 KiB) Viewed 3559 times
but ,When I set up aggression<0,the dominance< too?
1627617343(1).jpg
1627617343(1).jpg (307.93 KiB) Viewed 3559 times
I don’t understand,Because I'm insulted, I should not dominance

Re: Deed aggression bug

Posted: Fri Jul 30, 2021 9:58 am
by Tony Li
Hi,

Page 70 of the manual explains how Love/Hate computes dominance.

"Δdominance" is the change in dominance. It's based on the sign (+/-) of the deed's impact, the sign of the FactionMember's affinity to the deed's target, the aggression, and the affinity to the deed's actor:

Δdominance = sign(rumor-impact) X sign(affinity-to-target) X |aggression| X |Δaffinity-to-actor|

Any of these things can flip the change in dominance between negative and positive. This way of compuating the change in dominance may not seem intuitive at first, but it works well for games such as action games where the witness will feel stronger or weaker (more or less dominance) based on what actions it sees.

If you want to compute dominance differently, you can assign your own delegate function to FactionMember.EvaluateRumor. This allows you to provide your own function to replace FactionMember.DefaultEvaluateRumor, which is on line 852 of FactionMember.cs.

Re: Deed aggression bug

Posted: Sat Jul 31, 2021 7:57 am
by mengliang010800
OK,I got it,Thanks Tony,Because I want to achieve a real social system, So there are more questions to think about,Perhaps I could explain my needs with the explanations below
Δdominance = sign(rumor-impact) X sign(affinity-to-target) X aggression X |Δaffinity-to-actor|
This is a simple revision of your explanations,the aggression ,aggression does not use absolute values

Re: Deed aggression bug

Posted: Sat Jul 31, 2021 8:08 am
by Tony Li
Hi,

In version 1.10.19, I'll add a separate delegate that you can assign to replace the Δdominance function by itself. This will make it easier to change it to remove the absolute value.