示例#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();
        }
    }
示例#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();
        }
    }
示例#3
0
        GuiPopupDailyRewards.E_Status ModifyStatus(GuiPopupDailyRewards.E_Status status, PPIDailyRewards.Day day)
        {
            switch (status)
            {
            case GuiPopupDailyRewards.E_Status.Current:
                return(day.Received == true ? GuiPopupDailyRewards.E_Status.Gained : GuiPopupDailyRewards.E_Status.Idle);

            case GuiPopupDailyRewards.E_Status.Gained:
                return(day.Received == true ? GuiPopupDailyRewards.E_Status.Gained : GuiPopupDailyRewards.E_Status.Missed);

            default:
                return(status);
            }
        }
示例#4
0
 GuiPopupDailyRewards.E_Status ModifyStatus(GuiPopupDailyRewards.E_Status status, DateTime date, PPIDailyRewards.Day day)
 {
     if (status != GuiPopupDailyRewards.E_Status.Current)
     {
         return(status);
     }
     if (date != CloudDateTime.UtcNow.Date)
     {
         return(status);
     }
     return(GuiPopupDailyRewards.E_Status.Gained);
 }