adding in some needed packages

This commit is contained in:
reisenlol 2026-01-02 01:31:54 -08:00
parent 9e739f5dc8
commit aba5310742
No known key found for this signature in database
1012 changed files with 494191 additions and 1 deletions

View file

@ -0,0 +1,39 @@
using Dan.Main;
using UnityEngine;
namespace Dan.Models
{
[System.Serializable]
public struct Entry
{
public string Username;
public int Score;
public ulong Date;
public string Extra;
public int Rank;
[SerializeField] internal string UserGuid;
[field: System.NonSerialized] internal string NewUsername { get; set; }
/// <summary>
/// Returns whether the entry is the current user's entry.
/// </summary>
public bool IsMine() => UserGuid == LeaderboardCreator.UserGuid;
/// <summary>
/// Returns the rank of the entry with its suffix.
/// </summary>
/// <returns>Rank + suffix (e.g. 1st, 2nd, 3rd, 4th, 5th, etc.).</returns>
public string RankSuffix()
{
var rank = Rank;
var lastDigit = rank % 10;
var lastTwoDigits = rank % 100;
var suffix = lastDigit == 1 && lastTwoDigits != 11 ? "st" :
lastDigit == 2 && lastTwoDigits != 12 ? "nd" :
lastDigit == 3 && lastTwoDigits != 13 ? "rd" : "th";
return $"{rank}{suffix}";
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e9f6f4e4968841efa3dc6efbeeffd447
timeCreated: 1660484221

View file

@ -0,0 +1,52 @@
using Dan.Enums;
namespace Dan.Models
{
public struct LeaderboardSearchQuery
{
public int Skip { get; set; }
public int Take { get; set; }
public string Username { get; set; }
public TimePeriodType TimePeriod { get; set; }
private string Query => $"skip={Skip}&take={Take}&username={Username}&timePeriod={(int) TimePeriod}";
public string GetQuery() => "?" + Query;
public string ChainQuery() => "&" + Query;
public static LeaderboardSearchQuery Default => new LeaderboardSearchQuery
{
Skip = 0,
Take = 0,
Username = "",
TimePeriod = TimePeriodType.AllTime
};
public static LeaderboardSearchQuery Paginated(int skip, int take) =>
ByUsernameAndTimePaginated("", TimePeriodType.AllTime, skip, take);
public static LeaderboardSearchQuery ByUsername(string username) =>
ByUsernamePaginated(username, 5, 5);
public static LeaderboardSearchQuery ByUsernamePaginated(string username, int prev, int next) =>
ByUsernameAndTimePaginated(username, TimePeriodType.AllTime, prev, next);
public static LeaderboardSearchQuery ByTimePeriod(TimePeriodType timePeriod) =>
ByTimePeriodPaginated(timePeriod, 0, 0);
public static LeaderboardSearchQuery ByTimePeriodPaginated(TimePeriodType timePeriod, int skip, int take) =>
ByUsernameAndTimePaginated("", timePeriod, skip, take);
public static LeaderboardSearchQuery ByUsernameAndTime(string username, TimePeriodType timePeriod) =>
ByUsernameAndTimePaginated(username, timePeriod, 0, 0);
public static LeaderboardSearchQuery ByUsernameAndTimePaginated(string username, TimePeriodType timePeriod, int skip, int take) => new LeaderboardSearchQuery
{
Skip = skip,
Take = take,
Username = username,
TimePeriod = timePeriod
};
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 29284a0880dd4054ac8294cc917db6f8
timeCreated: 1679736989