Пример #1
0
    /// <summary>
    /// Returns the players response accuracy.
    /// The perfect accuracy would be 1, most inaccuracy is 0.
    /// </summary>
    protected float GetAccuracy(Trial t, float time)
    {
        AzzaranoData data = sessionData.gameData as AzzaranoData;
        bool         hasResponseTimeLimit = data.ResponseTimeLimit > 0;

        float rTime           = time - data.GuessTimeLimit;
        float totalTimeWindow = hasResponseTimeLimit ?
                                data.ResponseTimeLimit : (t as AzzaranoTrial).duration;

        return(1f - (rTime / (totalTimeWindow - data.GuessTimeLimit)));
    }
Пример #2
0
    /// <summary>
    /// Parses Game specific variables for this Trial from the given XmlElement.
    /// If no parsable attributes are found, or fail, then it will generate some from the given GameData.
    /// Used when parsing a Trial that IS defined in the Session file.
    /// </summary>
    public override void ParseGameSpecificVars(XmlNode n, SessionData session)
    {
        base.ParseGameSpecificVars(n, session);

        AzzaranoData data = (AzzaranoData)(session.gameData);

        if (!XMLUtil.ParseAttribute(n, AzzaranoData.ATTRIBUTE_DURATION, ref duration, true))
        {
            duration = data.GeneratedDuration;
        }

        XMLUtil.ParseAttribute(n, AzzaranoData.ATTRIBUTE_POSITION, ref position);
        XMLUtil.ParseAttribute(n, AzzaranoData.ATTRIBUTE_POSITIONX, ref positionX);
        XMLUtil.ParseAttribute(n, AzzaranoData.ATTRIBUTE_POSITIONY, ref positionY);
        XMLUtil.ParseAttribute(n, AzzaranoData.ATTRIBUTE_RED, ref red, true);
    }
Пример #3
0
    /// <summary>
    /// Returns True if the given response time is considered valid.
    /// </summary>
    protected bool IsValidResponse(float time)
    {
        AzzaranoData data = sessionData.gameData as AzzaranoData;

        return(data.ResponseTimeLimit <= 0 || time < data.ResponseTimeLimit);
    }
Пример #4
0
    /// <summary>
    /// Returns True if the given response time is considered a guess.
    /// </summary>
    protected bool IsGuessResponse(float time)
    {
        AzzaranoData data = sessionData.gameData as AzzaranoData;

        return(data.GuessTimeLimit > 0 && time < data.GuessTimeLimit);
    }