Ejemplo n.º 1
0
    /// <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() + ")");
        }
    }
Ejemplo n.º 2
0
 public static void ChangeStateByAddingEmotions(EmotionIdeal emotionIdeal, float idealOffset = .5f)
 {
     ChangeStateByAddingEmotions(new EmotionIdeal[] { emotionIdeal }, idealOffset);
 }