0
22 || 0 | 27 |APM | 28 |GLOBAL | 29 |0 | 30 |
| 0 | 33 |PPS | 34 |0 | 36 ||
| 0 | 39 |VS | 40 |TOP RANK | 41 |
{username}
12 | 13 |{username}
12 |{achievement}
13 | 14 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Tetrio.Foxhole.Database/Entities/ChallengeCondition.cs: -------------------------------------------------------------------------------- 1 | using Tetrio.Foxhole.Database.Enums; 2 | 3 | namespace Tetrio.Foxhole.Database.Entities; 4 | 5 | public abstract class ChallengeConditionBase : BaseEntity 6 | { 7 | public Guid ChallengeId { get; set; } 8 | public ConditionType Type { get; set; } 9 | public double Value { get; set; } 10 | 11 | public override string ToString() 12 | { 13 | switch (Type) 14 | { 15 | case ConditionType.Height: 16 | return $"REACH {Value} M"; 17 | case ConditionType.Spins: 18 | return $"DO {Value} SPINS"; 19 | case ConditionType.AllClears: 20 | return $"DO {Value} ALL CLEARS"; 21 | case ConditionType.KOs: 22 | return $"DO {Value} KO'S"; 23 | case ConditionType.Quads: 24 | return $"DO {Value} QUADS"; 25 | case ConditionType.Apm: 26 | return $"DO {Value} APM"; 27 | case ConditionType.Pps: 28 | return $"DO {Value} PPS"; 29 | case ConditionType.Vs: 30 | return $"DO {Value} VS"; 31 | case ConditionType.Finesse: 32 | return $"DO {Value} % FINESSE"; 33 | default: 34 | return base.ToString(); 35 | 36 | } 37 | } 38 | } 39 | 40 | public class ChallengeCondition : ChallengeConditionBase 41 | { 42 | public virtual Challenge? Challenge { get; set; } 43 | } 44 | 45 | public class MasteryChallengeCondition : ChallengeConditionBase 46 | { 47 | public bool IsReverse { get; set; } = false; 48 | 49 | public virtual MasteryChallenge? MasteryChallenge { get; set; } 50 | } -------------------------------------------------------------------------------- /Tetrio.Foxhole.Backend.Base/Controllers/BaseController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using Tetrio.Foxhole.Network.Api.Tetrio; 3 | using Tetrio.Foxhole.Network.Api.Tetrio.Models; 4 | 5 | namespace Tetrio.Foxhole.Backend.Base.Controllers; 6 | 7 | public class BaseController(TetrioApi api) : MinBaseController(api) 8 | { 9 | [HttpGet] 10 | [Route("{username}/web")] 11 | public async Task{username}
12 | 13 |{username}
12 | 13 |{username}
12 | 13 |{mode}
27 |{username}
28 |{backgroundColor}
29 |{textColor}
30 |{displayUsername}
31 | 32 | 33 | 74 | -------------------------------------------------------------------------------- /Tetrio.Foxhole.Database/Entities/User.cs: -------------------------------------------------------------------------------- 1 | namespace Tetrio.Foxhole.Database.Entities; 2 | 3 | ///{username}
12 | 13 |0
22 || 0 | 27 |APM | 28 |GLOBAL | 29 |0 | 30 |
| 0 | 33 |PPS | 34 |0 | 36 ||
| 0 | 39 |VS | 40 |TOP RANK | 41 |
{username}
12 |{expert}
13 | 14 |{username}
11 |{username}
46 |{modes}
47 |{backgroundColor}
48 |{textColor}
49 |{displayUsername}
50 | 51 | 52 | 111 | -------------------------------------------------------------------------------- /Tetrio.Foxhole.Database/Migrations/20251214160108_ReverseWOM.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | #nullable disable 4 | 5 | namespace Tetrio.Overlay.Database.Migrations 6 | { 7 | ///