public float this[BuffPropMult mul] { get { return GetFlagMult( mul ); } }
public float GetFlagMult( BuffPropMult mul ) { return list.Aggregate( 1f, ( current, buff ) => current * buff[mul] ); }
public Mult( BuffPropMult prop, float value = 1f ) { this.prop = prop; this.value = value; }
public float this[BuffPropMult mul] { get { return GetMultiplier( mul ); } }
public abstract float GetMultiplier( BuffPropMult prop );
public override sealed float GetMultiplier( BuffPropMult prop ) { return 1f; }
public override float GetMultiplier( BuffPropMult prop ) { return multProps.Where( mul => mul.prop == prop ).Aggregate( 1f, ( current, mul ) => current * mul.value ); }