package de.tobiyas.racesandclasses.traitcontainer.modifiers;
import de.tobiyas.racesandclasses.playermanagement.player.RaCPlayer;
import de.tobiyas.racesandclasses.traitcontainer.interfaces.markerinterfaces.Trait;
public interface TraitSituationModifier {
/**
* If the Trait can be applied to the Player.
*
* @param player to check if it is appliable.
* @param toModify the parameter to modify.
*
* @return true if applyable.
*/
public boolean canBeApplied(String toModify, RaCPlayer player);
/**
* Applies the Value to the Modifier.
*
* @param player to modify for.
* @param value to modify.
* @param trait that this is called from
*
* @return the modified Value.
*/
public double apply(RaCPlayer player, double value, Trait trait);
/**
* Applies the Value to the Modifier.
*
* @param player to modify for.
* @param value to modify.
* @param trait that this is called from
*
* @return the modified Value.
*/
public int apply(RaCPlayer player, int value, Trait trait);
}