/// <summary> /// Returns the vector representation of a given emotional ideal /// </summary> /// <param name="emotionIdeal">The emotional ideal to get a vec2 for</param> /// <param name="idealOffset">How much further the ideal is away from the unit circle. 0.5 by default</param> /// <returns>A vector representing the ideal</returns> private Vector2 GetEmoVector(EmotionIdeal emotionIdeal, float idealOffset = .5f) { float inBetweenScalar = (1f + idealOffset) / Mathf.Sqrt(2); switch (emotionIdeal) { case EmotionIdeal.Active: return(new Vector2(0, 1f + idealOffset)); case EmotionIdeal.Bored: return(new Vector2(-inBetweenScalar, -inBetweenScalar)); case EmotionIdeal.Content: return(new Vector2(inBetweenScalar, -inBetweenScalar)); case EmotionIdeal.Deactive: return(new Vector2(0, -1 - idealOffset)); case EmotionIdeal.Excited: return(new Vector2(inBetweenScalar, inBetweenScalar)); case EmotionIdeal.Panic: return(new Vector2(-inBetweenScalar, inBetweenScalar)); case EmotionIdeal.Pleasant: return(new Vector2(1 + idealOffset, 0)); case EmotionIdeal.Unpleasant: return(new Vector2(-1 - idealOffset, 0)); default: throw new System.Exception("Invalid Emotional Vector given for GetEmoVector(" + emotionIdeal.ToString() + ")"); } }
public static void ChangeStateByAddingEmotions(EmotionIdeal emotionIdeal, float idealOffset = .5f) { ChangeStateByAddingEmotions(new EmotionIdeal[] { emotionIdeal }, idealOffset); }