package am2.api;
import am2.api.spell.enums.Affinity;
public interface IAffinityData {
/**
* Gets the depth of the specified affinity as a percentage.
*/
float getAffinityDepth(Affinity affinity);
/**
* Gets the factor at which affinity gains are currently reduced.
*/
float getDiminishingReturnsFactor();
/**
* Directly sets an affinity. Does not take into account oppositions. Use sparingly.
* @param affinity The affinity to set
* @param depth The depth to set
*/
void setAffinityAndDepth(Affinity affinity, float depth);
/**
* Increments the affinity by the specified amount, and decrements other affinities by an amount related to
* how much in opposition they are to the specified affinity.
* @param affinity The affinity to increase
* @param amt The amount to increase the affinity by
*/
void incrementAffinity(Affinity affinity, float amt);
}