Beispiel #1
0
    public static float Progress(this PPIDailyRewards.Day @this, PPIPlayerStats.TransientData stats)
    {
        switch (@this.Condition.Type)
        {
        case PPIDailyRewards.E_ConditionType.None:
            return(1.0f);

        case PPIDailyRewards.E_ConditionType.GainExperience:
            return(Mathf.Min(@this.Condition.Value > 0 ? stats.Experience / (float)@this.Condition.Value : 1.0f, 1.0f));

        case PPIDailyRewards.E_ConditionType.PlayNumberOfMatches:
            return(Mathf.Min(@this.Condition.Value > 0 ? stats.GamesFinished / (float)@this.Condition.Value : 1.0f, 1.0f));

        case PPIDailyRewards.E_ConditionType.WinNumberOfMatches:
            return(Mathf.Min(@this.Condition.Value > 0 ? stats.GamesWon / (float)@this.Condition.Value : 1.0f, 1.0f));

        default:
            throw new System.IndexOutOfRangeException();
        }
    }
Beispiel #2
0
    public static bool IsAccomplished(this PPIDailyRewards.Day @this, PPIPlayerStats.TransientData stats)
    {
        switch (@this.Condition.Type)
        {
        case PPIDailyRewards.E_ConditionType.None:
            return(true);

        case PPIDailyRewards.E_ConditionType.GainExperience:
            return(stats.Experience >= @this.Condition.Value);

        case PPIDailyRewards.E_ConditionType.PlayNumberOfMatches:
            return(stats.GamesFinished >= @this.Condition.Value);

        case PPIDailyRewards.E_ConditionType.WinNumberOfMatches:
            return(stats.GamesWon >= @this.Condition.Value);

        default:
            throw new System.IndexOutOfRangeException();
        }
    }