public RHModifier(string name, float initValue, float scaleFactor, RHScaleModifier modifierType, float zeroPoint, RHScaleType scaleType = RHScaleType.ADDITION_FLAT) { m_nameOfModifier = name; m_scaleModifier = modifierType; initialBonusValue = initValue; scaleZeroPoint = zeroPoint; this.scaleFactor = scaleFactor; m_scaleType = scaleType; }
protected virtual float calculateScaleFactor(RHScaleModifier mod, RHConversation c, RHListener l) { switch (mod) { case RHScaleModifier.FAVOR: return(l.GetFavor(c.Speakers[0])); case RHScaleModifier.AUTHORITY: return(l.GetAuthority(c.Speakers[0])); case RHScaleModifier.EMOTIONS: return(l.GetEmotionalIntensity()); case RHScaleModifier.TRUST: return(l.GetTrust(c.Speakers[0]));; case RHScaleModifier.CURRENT_PERSUASION_LEVEL: return(c.Listeners[l]); case RHScaleModifier.INSTANCES_OF_SELF: return(countType(statement.StatementName, c.PreviousStatements)); } return(0f); }