game: BASICALLY DONE
This commit is contained in:
parent
18c91a7393
commit
75890d0b87
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Firebase;
|
using Firebase;
|
||||||
using Firebase.Auth;
|
using Firebase.Auth;
|
||||||
|
@ -584,9 +585,13 @@ public void GetRecentScores(Action<TransactionResult, List<LocalPlayerData.Score
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// .OrderByChild("timestamp")
|
||||||
|
// .LimitToLast(LocalPlayerData.MaxBestScores)
|
||||||
|
|
||||||
|
// firstly, get the user's scores
|
||||||
_db.Child("scores")
|
_db.Child("scores")
|
||||||
.OrderByChild("timestamp")
|
.OrderByChild("userId")
|
||||||
.LimitToLast(LocalPlayerData.MaxBestScores)
|
.EqualTo(_user.UserId)
|
||||||
.GetValueAsync()
|
.GetValueAsync()
|
||||||
.ContinueWithOnMainThread(task =>
|
.ContinueWithOnMainThread(task =>
|
||||||
{
|
{
|
||||||
|
@ -597,20 +602,23 @@ public void GetRecentScores(Action<TransactionResult, List<LocalPlayerData.Score
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var scores = new List<LocalPlayerData.Score>();
|
// then sort them by timestamp
|
||||||
foreach (var child in task.Result.Children)
|
try
|
||||||
try
|
{
|
||||||
{
|
var sortedScores = task.Result.Children.Select(
|
||||||
var score = new LocalPlayerData.Score(child.Value as Dictionary<string, object>);
|
score => new LocalPlayerData.Score(score.Value as Dictionary<string, object>)
|
||||||
scores.Add(score);
|
)
|
||||||
}
|
.OrderByDescending(score => score.Timestamp)
|
||||||
catch (Exception e)
|
.Take(LocalPlayerData.MaxRecentScores);
|
||||||
{
|
|
||||||
Debug.LogError($"{e}\n{child.GetRawJsonValue()}");
|
|
||||||
}
|
|
||||||
|
|
||||||
callback(TransactionResult.Ok, scores);
|
callback(TransactionResult.Ok, sortedScores.ToList());
|
||||||
GameManager.Instance.FireLocalPlayerDataChangeCallbacks(GameManager.Instance.Data);
|
GameManager.Instance.FireLocalPlayerDataChangeCallbacks(GameManager.Instance.Data);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"error while sorting scores by timestamp: {e}");
|
||||||
|
callback(TransactionResult.Error, new List<LocalPlayerData.Score>(0));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -631,9 +639,40 @@ private void GetBestScores(Action<TransactionResult, List<LocalPlayerData.Score>
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// old code
|
||||||
|
// _db.Child("scores")
|
||||||
|
// .OrderByChild("avgPerceivedAccuracy")
|
||||||
|
// .LimitToLast(LocalPlayerData.MaxBestScores)
|
||||||
|
// .GetValueAsync()
|
||||||
|
// .ContinueWithOnMainThread(task =>
|
||||||
|
// {
|
||||||
|
// if (!task.IsCompletedSuccessfully)
|
||||||
|
// {
|
||||||
|
// Debug.LogError(task.Exception);
|
||||||
|
// callback(TransactionResult.Error, new List<LocalPlayerData.Score>(0));
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// var scores = new List<LocalPlayerData.Score>();
|
||||||
|
// foreach (var child in task.Result.Children)
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// var score = new LocalPlayerData.Score(child.Value as Dictionary<string, object>);
|
||||||
|
// scores.Add(score);
|
||||||
|
// }
|
||||||
|
// catch (Exception e)
|
||||||
|
// {
|
||||||
|
// Debug.LogError(e);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// callback(TransactionResult.Ok, scores);
|
||||||
|
// GameManager.Instance.FireLocalPlayerDataChangeCallbacks(GameManager.Instance.Data);
|
||||||
|
// });
|
||||||
|
|
||||||
|
// firstly, get the user's scores
|
||||||
_db.Child("scores")
|
_db.Child("scores")
|
||||||
.OrderByChild("avgPerceivedAccuracy")
|
.OrderByChild("userId")
|
||||||
.LimitToLast(LocalPlayerData.MaxBestScores)
|
.EqualTo(_user.UserId)
|
||||||
.GetValueAsync()
|
.GetValueAsync()
|
||||||
.ContinueWithOnMainThread(task =>
|
.ContinueWithOnMainThread(task =>
|
||||||
{
|
{
|
||||||
|
@ -644,20 +683,27 @@ private void GetBestScores(Action<TransactionResult, List<LocalPlayerData.Score>
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var scores = new List<LocalPlayerData.Score>();
|
// then sort them by how good they are
|
||||||
foreach (var child in task.Result.Children)
|
// (dL + dC + dh + de) / 4d
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var score = new LocalPlayerData.Score(child.Value as Dictionary<string, object>);
|
var sortedScores = task.Result.Children.Select(
|
||||||
scores.Add(score);
|
score => new LocalPlayerData.Score(score.Value as Dictionary<string, object>)
|
||||||
}
|
)
|
||||||
catch (Exception e)
|
.OrderByDescending(score =>
|
||||||
{
|
(score.AvgLightnessAccuracy + score.AvgChromaAccuracy + score.AvgHueAccuracy +
|
||||||
Debug.LogError(e);
|
score.AvgPerceivedAccuracy) / 4d
|
||||||
}
|
)
|
||||||
|
.Take(LocalPlayerData.MaxBestScores);
|
||||||
|
|
||||||
callback(TransactionResult.Ok, scores);
|
callback(TransactionResult.Ok, sortedScores.ToList());
|
||||||
GameManager.Instance.FireLocalPlayerDataChangeCallbacks(GameManager.Instance.Data);
|
GameManager.Instance.FireLocalPlayerDataChangeCallbacks(GameManager.Instance.Data);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"error while sorting scores by timestamp: {e}");
|
||||||
|
callback(TransactionResult.Error, new List<LocalPlayerData.Score>(0));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -680,7 +726,7 @@ private void GetBestScores(Action<TransactionResult, List<LocalPlayerData.Score>
|
||||||
|
|
||||||
_db.Child("scores")
|
_db.Child("scores")
|
||||||
.Push()
|
.Push()
|
||||||
.SetValueAsync(score.ToDictionary())
|
.SetValueAsync(score.ToDictionary(_user.UserId))
|
||||||
.ContinueWithOnMainThread(task =>
|
.ContinueWithOnMainThread(task =>
|
||||||
{
|
{
|
||||||
if (task.IsCompletedSuccessfully)
|
if (task.IsCompletedSuccessfully)
|
||||||
|
@ -784,6 +830,8 @@ private void GetBestScores(Action<TransactionResult, List<LocalPlayerData.Score>
|
||||||
public void GetLeaderboard(
|
public void GetLeaderboard(
|
||||||
Action<TransactionResult, List<LeaderboardEntry>> callback)
|
Action<TransactionResult, List<LeaderboardEntry>> callback)
|
||||||
{
|
{
|
||||||
|
Debug.Log("getting leaderboard");
|
||||||
|
|
||||||
_db.Child("users")
|
_db.Child("users")
|
||||||
.OrderByChild("rating")
|
.OrderByChild("rating")
|
||||||
.LimitToLast(LeaderboardUI.MaxEntries)
|
.LimitToLast(LeaderboardUI.MaxEntries)
|
||||||
|
@ -796,7 +844,7 @@ private void GetBestScores(Action<TransactionResult, List<LocalPlayerData.Score>
|
||||||
callback(TransactionResult.Error, new List<LeaderboardEntry>(0));
|
callback(TransactionResult.Error, new List<LeaderboardEntry>(0));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var entries = new List<LeaderboardEntry>();
|
var entries = new List<LeaderboardEntry>();
|
||||||
foreach (var child in task.Result.Children)
|
foreach (var child in task.Result.Children)
|
||||||
try
|
try
|
||||||
|
|
|
@ -210,8 +210,9 @@ public void SignalGameEnd(List<Gameplay.RoundInfo> playedRounds)
|
||||||
historicalChromaAcc /= historicalGames;
|
historicalChromaAcc /= historicalGames;
|
||||||
historicalHueAcc /= historicalGames;
|
historicalHueAcc /= historicalGames;
|
||||||
historicalPerceivedAcc /= historicalGames;
|
historicalPerceivedAcc /= historicalGames;
|
||||||
|
|
||||||
Debug.Log($"historical averages: L={historicalLightnessAcc:F2}, C={historicalChromaAcc:F2}, h={historicalHueAcc:F2}, dE={historicalPerceivedAcc:F2}");
|
Debug.Log(
|
||||||
|
$"historical averages: L={historicalLightnessAcc:F2}, C={historicalChromaAcc:F2}, h={historicalHueAcc:F2}, dE={historicalPerceivedAcc:F2}");
|
||||||
|
|
||||||
// calculate round averages
|
// calculate round averages
|
||||||
var gameLightnessAcc = 0d;
|
var gameLightnessAcc = 0d;
|
||||||
|
|
|
@ -73,6 +73,7 @@ public Gameplay(VisualElement ui)
|
||||||
public void StartGame()
|
public void StartGame()
|
||||||
{
|
{
|
||||||
Round = 0;
|
Round = 0;
|
||||||
|
_playedRounds.Clear();
|
||||||
AdvanceToNextRound();
|
AdvanceToNextRound();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ public class LeaderboardUI : MonoBehaviour
|
||||||
/// reference to the leaderboard scroll view
|
/// reference to the leaderboard scroll view
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private ScrollView _leaderboardScrollView;
|
private ScrollView _leaderboardScrollView;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// register callbacks
|
/// register callbacks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -38,7 +38,7 @@ private void OnEnable()
|
||||||
{
|
{
|
||||||
if (newState == UIManager.DisplayState.LeaderboardView) LoadLeaderboardData();
|
if (newState == UIManager.DisplayState.LeaderboardView) LoadLeaderboardData();
|
||||||
});
|
});
|
||||||
|
|
||||||
_leaderboardScrollView = UIManager.Instance.UI.Q<ScrollView>("LeaderboardListContent");
|
_leaderboardScrollView = UIManager.Instance.UI.Q<ScrollView>("LeaderboardListContent");
|
||||||
if (_leaderboardScrollView == null)
|
if (_leaderboardScrollView == null)
|
||||||
throw new NullReferenceException("leaderboard scroll view not found in the UI");
|
throw new NullReferenceException("leaderboard scroll view not found in the UI");
|
||||||
|
@ -75,7 +75,10 @@ private void LoadLeaderboardData()
|
||||||
/// render leaderboard data in the UI
|
/// render leaderboard data in the UI
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="message">message to display in the leaderboard in lieu of actual data</param>
|
/// <param name="message">message to display in the leaderboard in lieu of actual data</param>
|
||||||
/// <exception cref="NullReferenceException">thrown when the leaderboard scroll view is missing or when the leaderboard entry</exception>
|
/// <exception cref="NullReferenceException">
|
||||||
|
/// thrown when the leaderboard scroll view is missing or when the leaderboard
|
||||||
|
/// entry
|
||||||
|
/// </exception>
|
||||||
private void RenderLeaderboardData(string message = "")
|
private void RenderLeaderboardData(string message = "")
|
||||||
{
|
{
|
||||||
_leaderboardScrollView.Clear();
|
_leaderboardScrollView.Clear();
|
||||||
|
@ -88,7 +91,8 @@ private void RenderLeaderboardData(string message = "")
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.Log($"rendering {_leaderboardData.Count} leaderboard entries");
|
Debug.Log($"rendering {_leaderboardData.Count} leaderboard entries");
|
||||||
foreach (var (entry, index) in _leaderboardData.Take(MaxEntries).Reverse().Select((entry, index) => (entry, index)))
|
foreach (var (entry, index) in _leaderboardData.Take(MaxEntries).Reverse()
|
||||||
|
.Select((entry, index) => (entry, index)))
|
||||||
_leaderboardScrollView.Add(BuildEntryElement((index + 1).ToString(), entry.Username, $"{entry.Rating:F3}"));
|
_leaderboardScrollView.Add(BuildEntryElement((index + 1).ToString(), entry.Username, $"{entry.Rating:F3}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,7 +137,7 @@ public LeaderboardEntry(Dictionary<string, object> data)
|
||||||
{
|
{
|
||||||
if (!data.ContainsKey("username") || data["username"] is not string username)
|
if (!data.ContainsKey("username") || data["username"] is not string username)
|
||||||
throw new ArgumentException("data['username'] not found or invalid");
|
throw new ArgumentException("data['username'] not found or invalid");
|
||||||
|
|
||||||
Username = username;
|
Username = username;
|
||||||
Rating = LocalPlayerData.GetFloatyKey(data, "rating");
|
Rating = LocalPlayerData.GetFloatyKey(data, "rating");
|
||||||
}
|
}
|
||||||
|
|
|
@ -186,29 +186,21 @@ public float CalculateUserRating()
|
||||||
var recentScores = RecentOnlineScores.Count > 0 ? RecentOnlineScores : RecentLocalScores;
|
var recentScores = RecentOnlineScores.Count > 0 ? RecentOnlineScores : RecentLocalScores;
|
||||||
var bestScores = BestOnlineScores;
|
var bestScores = BestOnlineScores;
|
||||||
|
|
||||||
var scores = 0;
|
|
||||||
var totalRating = 0d;
|
var totalRating = 0d;
|
||||||
|
|
||||||
foreach (var score in recentScores.Take(10))
|
foreach (var score in recentScores.Take(MaxRecentScores))
|
||||||
{
|
|
||||||
totalRating += (score.AvgLightnessAccuracy + score.AvgChromaAccuracy + score.AvgHueAccuracy +
|
totalRating += (score.AvgLightnessAccuracy + score.AvgChromaAccuracy + score.AvgHueAccuracy +
|
||||||
score.AvgPerceivedAccuracy) / 4d;
|
score.AvgPerceivedAccuracy) / 4d;
|
||||||
scores++;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var score in bestScores.Take(20))
|
foreach (var score in bestScores.Take(MaxBestScores))
|
||||||
{
|
|
||||||
totalRating += (score.AvgLightnessAccuracy + score.AvgChromaAccuracy + score.AvgHueAccuracy +
|
totalRating += (score.AvgLightnessAccuracy + score.AvgChromaAccuracy + score.AvgHueAccuracy +
|
||||||
score.AvgPerceivedAccuracy) / 4d;
|
score.AvgPerceivedAccuracy) / 4d;
|
||||||
scores++;
|
|
||||||
}
|
|
||||||
|
|
||||||
var rating = UserRatingScalingF(totalRating /= Math.Max(1, scores));
|
var rating = UserRatingScalingF(totalRating /= MaxRecentScores + MaxBestScores);
|
||||||
Debug.Log($"locally calculated user rating: lin: {totalRating} -> exp: {rating}");
|
Debug.Log($"locally calculated user rating: lin: {totalRating} -> exp: {rating}");
|
||||||
|
|
||||||
return (float)rating;
|
return (float)rating;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// safely get a float value from a dictionary
|
/// safely get a float value from a dictionary
|
||||||
|
@ -217,7 +209,7 @@ public float CalculateUserRating()
|
||||||
/// <param name="key">the key to get the value from</param>
|
/// <param name="key">the key to get the value from</param>
|
||||||
/// <returns>the float value</returns>
|
/// <returns>the float value</returns>
|
||||||
/// <exception cref="ArgumentException">thrown if the key is not found, or the value is not a valid float</exception>
|
/// <exception cref="ArgumentException">thrown if the key is not found, or the value is not a valid float</exception>
|
||||||
public static float GetFloatyKey(Dictionary<string, object> data, string key)
|
public static float GetFloatyKey(Dictionary<string, object> data, string key)
|
||||||
{
|
{
|
||||||
if (!data.TryGetValue(key, out var possibleFloat)) throw new ArgumentException($"{key} not found");
|
if (!data.TryGetValue(key, out var possibleFloat)) throw new ArgumentException($"{key} not found");
|
||||||
return possibleFloat switch
|
return possibleFloat switch
|
||||||
|
@ -292,9 +284,9 @@ public Score(Dictionary<string, object> data)
|
||||||
// for each value, if it's not found, or not a valid value, throw an exception
|
// for each value, if it's not found, or not a valid value, throw an exception
|
||||||
|
|
||||||
if (!data.ContainsKey("timestamp") || data["timestamp"] is not long timestamp)
|
if (!data.ContainsKey("timestamp") || data["timestamp"] is not long timestamp)
|
||||||
throw new ArgumentException("timestamp not found or invalid");
|
throw new ArgumentException("data['timestamp'] not found or invalid");
|
||||||
if (!data.ContainsKey("noOfRounds") || data["noOfRounds"] is not long noOfRounds)
|
if (!data.ContainsKey("noOfRounds") || data["noOfRounds"] is not long noOfRounds)
|
||||||
throw new ArgumentException("noOfRounds not found or invalid");
|
throw new ArgumentException("data['noOfRounds'] not found or invalid");
|
||||||
|
|
||||||
var avgLightnessAccuracy = GetFloatyKey(data, "avgLightnessAccuracy");
|
var avgLightnessAccuracy = GetFloatyKey(data, "avgLightnessAccuracy");
|
||||||
var avgChromaAccuracy = GetFloatyKey(data, "avgChromaAccuracy");
|
var avgChromaAccuracy = GetFloatyKey(data, "avgChromaAccuracy");
|
||||||
|
@ -325,5 +317,23 @@ public Score(Dictionary<string, object> data)
|
||||||
{ "avgPerceivedAccuracy", AvgPerceivedAccuracy }
|
{ "avgPerceivedAccuracy", AvgPerceivedAccuracy }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// converts the score struct to a dictionary safe for the backend
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public Dictionary<string, object> ToDictionary(string userId)
|
||||||
|
{
|
||||||
|
return new Dictionary<string, object>
|
||||||
|
{
|
||||||
|
{ "userId", userId },
|
||||||
|
{ "timestamp", new DateTimeOffset(Timestamp).ToUnixTimeSeconds() },
|
||||||
|
{ "noOfRounds", NoOfRounds },
|
||||||
|
{ "avgLightnessAccuracy", AvgLightnessAccuracy },
|
||||||
|
{ "avgChromaAccuracy", AvgChromaAccuracy },
|
||||||
|
{ "avgHueAccuracy", AvgHueAccuracy },
|
||||||
|
{ "avgPerceivedAccuracy", AvgPerceivedAccuracy }
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -94,7 +94,7 @@ public void RegisterOnDisplayStateChangeCallback(Action<DisplayState, DisplaySta
|
||||||
{
|
{
|
||||||
_onDisplayStateChangeCallbacks.Add(callback);
|
_onDisplayStateChangeCallbacks.Add(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FireOnDisplayStateChange(DisplayState oldState, DisplayState newState)
|
private void FireOnDisplayStateChange(DisplayState oldState, DisplayState newState)
|
||||||
{
|
{
|
||||||
foreach (var callback in _onDisplayStateChangeCallbacks)
|
foreach (var callback in _onDisplayStateChangeCallbacks)
|
||||||
|
@ -187,7 +187,7 @@ public void SetDisplayState(DisplayState newDisplayState)
|
||||||
UI.Q<VisualElement>("AccountSection").style.display = DisplayStyle.Flex;
|
UI.Q<VisualElement>("AccountSection").style.display = DisplayStyle.Flex;
|
||||||
UI.Q<VisualElement>("ConnectionStatus").style.display = DisplayStyle.Flex;
|
UI.Q<VisualElement>("ConnectionStatus").style.display = DisplayStyle.Flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
FireOnDisplayStateChange(state, newDisplayState);
|
FireOnDisplayStateChange(state, newDisplayState);
|
||||||
state = newDisplayState;
|
state = newDisplayState;
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,8 +127,7 @@ #AccountButtons > Button {
|
||||||
|
|
||||||
#LeaderboardEntry Label,
|
#LeaderboardEntry Label,
|
||||||
#LeaderboardEntryReference Label,
|
#LeaderboardEntryReference Label,
|
||||||
#LeaderboardEntryHeader Label
|
#LeaderboardEntryHeader Label {
|
||||||
{
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-size: 26px;
|
font-size: 26px;
|
||||||
|
@ -149,7 +148,6 @@ #LeaderboardEntryHeader {
|
||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#LeaderboardEntryHeader
|
#LeaderboardEntryHeader {
|
||||||
{
|
|
||||||
border-top-width: 1px;
|
border-top-width: 1px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,149 +1,271 @@
|
||||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
<ui:UXML xmlns:ui="UnityEngine.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
<Style src="project://database/Assets/UI/GameUI.uss?fileID=7433441132597879392&guid=2c7ff79f21a3e8e408e76d75944d575b&type=3#GameUI" />
|
engine="UnityEngine.UIElements" editor="UnityEditor.UIElements"
|
||||||
<ui:VisualElement name="Root" style="flex-grow: 1; background-color: rgb(208, 152, 194); justify-content: space-around; align-items: stretch; align-self: stretch; flex-direction: row;">
|
noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
||||||
<ui:VisualElement name="SideView" style="flex-grow: 0; background-color: rgb(15, 13, 27); flex-shrink: 0; width: 25%; justify-content: space-between;">
|
<Style src="project://database/Assets/UI/GameUI.uss?fileID=7433441132597879392&guid=2c7ff79f21a3e8e408e76d75944d575b&type=3#GameUI"/>
|
||||||
<ui:VisualElement name="Header" style="flex-grow: 0; margin-top: 10%; margin-right: 10%; margin-bottom: 0; margin-left: 10%; justify-content: space-between; align-items: flex-start; flex-direction: column;">
|
<ui:VisualElement name="Root"
|
||||||
<ui:Label tabindex="-1" text="Colour Me OK" parse-escape-sequences="true" display-tooltip-when-elided="true" name="Name" style="color: rgb(208, 152, 194); -unity-font-style: bold; font-size: 58px; white-space: normal;" />
|
style="flex-grow: 1; background-color: rgb(208, 152, 194); justify-content: space-around; align-items: stretch; align-self: stretch; flex-direction: row;">
|
||||||
<ui:Label tabindex="-1" text="Color Me OK is a colour-matching game using the coordinates of the OKLCh colour model on the OKLab perceptually uniform colour space." parse-escape-sequences="true" display-tooltip-when-elided="true" name="Description" style="font-size: 16px; white-space: normal; text-overflow: clip; color: rgb(208, 152, 194);" />
|
<ui:VisualElement name="SideView"
|
||||||
|
style="flex-grow: 0; background-color: rgb(15, 13, 27); flex-shrink: 0; width: 25%; justify-content: space-between;">
|
||||||
|
<ui:VisualElement name="Header"
|
||||||
|
style="flex-grow: 0; margin-top: 10%; margin-right: 10%; margin-bottom: 0; margin-left: 10%; justify-content: space-between; align-items: flex-start; flex-direction: column;">
|
||||||
|
<ui:Label tabindex="-1" text="Colour Me OK" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="Name"
|
||||||
|
style="color: rgb(208, 152, 194); -unity-font-style: bold; font-size: 58px; white-space: normal;"/>
|
||||||
|
<ui:Label tabindex="-1"
|
||||||
|
text="Color Me OK is a colour-matching game using the coordinates of the OKLCh colour model on the OKLab perceptually uniform colour space."
|
||||||
|
parse-escape-sequences="true" display-tooltip-when-elided="true" name="Description"
|
||||||
|
style="font-size: 16px; white-space: normal; text-overflow: clip; color: rgb(208, 152, 194);"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="Content" style="flex-grow: 0; padding-right: 10%; padding-bottom: 10%; padding-left: 10%;">
|
<ui:VisualElement name="Content"
|
||||||
<ui:Button text="Play ↗" parse-escape-sequences="true" display-tooltip-when-elided="true" name="PlayButton" style="display: none;" />
|
style="flex-grow: 0; padding-right: 10%; padding-bottom: 10%; padding-left: 10%;">
|
||||||
<ui:Button text="Leaderboard ↗" parse-escape-sequences="true" display-tooltip-when-elided="true" name="LeaderboardButton" style="display: none;" />
|
<ui:Button text="Play ↗" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
<ui:Button text="Account ↗" parse-escape-sequences="true" display-tooltip-when-elided="true" name="AccountButton" style="display: none;" />
|
name="PlayButton" style="display: none;"/>
|
||||||
<ui:VisualElement name="AccountSection" style="flex-grow: 0; border-top-color: rgb(208, 152, 194); margin-top: 0; border-top-width: 1px; margin-right: 0; margin-bottom: 0; margin-left: 0; border-bottom-color: rgb(208, 152, 194); padding-bottom: 12px; border-bottom-width: 1px; display: flex;">
|
<ui:Button text="Leaderboard ↗" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
<ui:VisualElement name="PlayerDetails" style="flex-grow: 1; flex-direction: row; align-items: stretch; justify-content: space-between; font-size: 10px; align-self: stretch;">
|
name="LeaderboardButton" style="display: none;"/>
|
||||||
|
<ui:Button text="Account ↗" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
|
name="AccountButton" style="display: none;"/>
|
||||||
|
<ui:VisualElement name="AccountSection"
|
||||||
|
style="flex-grow: 0; border-top-color: rgb(208, 152, 194); margin-top: 0; border-top-width: 1px; margin-right: 0; margin-bottom: 0; margin-left: 0; border-bottom-color: rgb(208, 152, 194); padding-bottom: 12px; border-bottom-width: 1px; display: flex;">
|
||||||
|
<ui:VisualElement name="PlayerDetails"
|
||||||
|
style="flex-grow: 1; flex-direction: row; align-items: stretch; justify-content: space-between; font-size: 10px; align-self: stretch;">
|
||||||
<ui:VisualElement name="PlayerNameDetail" style="flex-grow: 1;">
|
<ui:VisualElement name="PlayerNameDetail" style="flex-grow: 1;">
|
||||||
<ui:Label tabindex="-1" text="Player" parse-escape-sequences="true" display-tooltip-when-elided="true" name="PlayerHeader" style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-left;" />
|
<ui:Label tabindex="-1" text="Player" parse-escape-sequences="true"
|
||||||
<ui:Label tabindex="-1" text="Not Signed In" parse-escape-sequences="true" display-tooltip-when-elided="true" name="PlayerText" style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; text-overflow: clip;" />
|
display-tooltip-when-elided="true" name="PlayerHeader"
|
||||||
|
style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-left;"/>
|
||||||
|
<ui:Label tabindex="-1" text="Not Signed In" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="PlayerText"
|
||||||
|
style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; text-overflow: clip;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="PlayerRatingDetail" style="flex-grow: 0;">
|
<ui:VisualElement name="PlayerRatingDetail" style="flex-grow: 0;">
|
||||||
<ui:Label tabindex="-1" text="Rating" parse-escape-sequences="true" display-tooltip-when-elided="true" name="RatingHeader" style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-right;" />
|
<ui:Label tabindex="-1" text="Rating" parse-escape-sequences="true"
|
||||||
<ui:Label tabindex="-1" text="00.00%" parse-escape-sequences="true" display-tooltip-when-elided="true" name="RatingText" style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; -unity-text-align: upper-right; text-overflow: ellipsis;" />
|
display-tooltip-when-elided="true" name="RatingHeader"
|
||||||
|
style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-right;"/>
|
||||||
|
<ui:Label tabindex="-1" text="00.00%" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="RatingText"
|
||||||
|
style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; -unity-text-align: upper-right; text-overflow: ellipsis;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="AccuracyDetails" style="flex-grow: 1; flex-direction: row; align-items: stretch; justify-content: space-between; font-size: 10px; align-self: stretch; padding-top: 4px;">
|
<ui:VisualElement name="AccuracyDetails"
|
||||||
|
style="flex-grow: 1; flex-direction: row; align-items: stretch; justify-content: space-between; font-size: 10px; align-self: stretch; padding-top: 4px;">
|
||||||
<ui:VisualElement name="LightnessAccuracyDetail" style="flex-grow: 0;">
|
<ui:VisualElement name="LightnessAccuracyDetail" style="flex-grow: 0;">
|
||||||
<ui:Label tabindex="-1" text="Lightness Accuracy" parse-escape-sequences="true" display-tooltip-when-elided="true" name="LightnessAccuracyHeader" style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-left; padding-top: 0;" />
|
<ui:Label tabindex="-1" text="Lightness Accuracy" parse-escape-sequences="true"
|
||||||
<ui:Label tabindex="-1" text="00.0%" parse-escape-sequences="true" display-tooltip-when-elided="true" name="LightnessAccuracyText" style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; padding-bottom: 0;" />
|
display-tooltip-when-elided="true" name="LightnessAccuracyHeader"
|
||||||
|
style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-left; padding-top: 0;"/>
|
||||||
|
<ui:Label tabindex="-1" text="00.0%" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="LightnessAccuracyText"
|
||||||
|
style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; padding-bottom: 0;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ChromaAccuracyDetail" style="flex-grow: 0;">
|
<ui:VisualElement name="ChromaAccuracyDetail" style="flex-grow: 0;">
|
||||||
<ui:Label tabindex="-1" text="Chroma Accuracy" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ChromaAccuracyHeader" style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-center; padding-top: 0;" />
|
<ui:Label tabindex="-1" text="Chroma Accuracy" parse-escape-sequences="true"
|
||||||
<ui:Label tabindex="-1" text="00.0%" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ChromaAccuracyText" style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; -unity-text-align: upper-center; padding-bottom: 0;" />
|
display-tooltip-when-elided="true" name="ChromaAccuracyHeader"
|
||||||
|
style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-center; padding-top: 0;"/>
|
||||||
|
<ui:Label tabindex="-1" text="00.0%" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ChromaAccuracyText"
|
||||||
|
style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; -unity-text-align: upper-center; padding-bottom: 0;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="HueAccuracyDetail" style="flex-grow: 0;">
|
<ui:VisualElement name="HueAccuracyDetail" style="flex-grow: 0;">
|
||||||
<ui:Label tabindex="-1" text="Hue Accuracy" parse-escape-sequences="true" display-tooltip-when-elided="true" name="HueAccuracyHeader" style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-right; padding-top: 0;" />
|
<ui:Label tabindex="-1" text="Hue Accuracy" parse-escape-sequences="true"
|
||||||
<ui:Label tabindex="-1" text="00.0%" parse-escape-sequences="true" display-tooltip-when-elided="true" name="HueAccuracyText" style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; -unity-text-align: upper-right; padding-bottom: 0;" />
|
display-tooltip-when-elided="true" name="HueAccuracyHeader"
|
||||||
|
style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-right; padding-top: 0;"/>
|
||||||
|
<ui:Label tabindex="-1" text="00.0%" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="HueAccuracyText"
|
||||||
|
style="-unity-font-style: normal; font-size: 18px; padding-top: 6px; -unity-text-align: upper-right; padding-bottom: 0;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ConnectionStatus" style="flex-grow: 0; border-top-color: rgb(208, 152, 194); margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; border-bottom-color: rgb(208, 152, 194); padding-bottom: 12px; display: flex; border-bottom-width: 1px;">
|
<ui:VisualElement name="ConnectionStatus"
|
||||||
<ui:Label tabindex="-1" text="Status: Unknown" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ConnectionStatusText" style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-left; display: flex;" />
|
style="flex-grow: 0; border-top-color: rgb(208, 152, 194); margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; border-bottom-color: rgb(208, 152, 194); padding-bottom: 12px; display: flex; border-bottom-width: 1px;">
|
||||||
|
<ui:Label tabindex="-1" text="Status: Unknown" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ConnectionStatusText"
|
||||||
|
style="-unity-font-style: normal; font-size: 14px; padding-bottom: 0; -unity-text-align: lower-left; display: flex;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="MainView" style="flex-grow: 0; flex-shrink: 0; width: 75%; justify-content: space-between;">
|
<ui:VisualElement name="MainView"
|
||||||
<ui:VisualElement name="DefaultView" style="flex-grow: 0; justify-content: space-around; height: 100%; align-self: stretch; display: none;">
|
style="flex-grow: 0; flex-shrink: 0; width: 75%; justify-content: space-between;">
|
||||||
<ui:VisualElement name="DemoResponseColour" style="flex-grow: 1; background-color: rgb(0, 0, 0); align-self: stretch; justify-content: center;">
|
<ui:VisualElement name="DefaultView"
|
||||||
<ui:VisualElement name="DemoResponseSliderContainer" style="flex-grow: 0; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; padding-top: 2%; padding-right: 2%; padding-bottom: 2%; padding-left: 2%; border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; background-color: rgb(208, 152, 194);">
|
style="flex-grow: 0; justify-content: space-around; height: 100%; align-self: stretch; display: none;">
|
||||||
<ui:Slider label="Lightness" high-value="100" name="DemoResponseLightnessSlider" class="lch-slider" />
|
<ui:VisualElement name="DemoResponseColour"
|
||||||
<ui:Slider label="Chroma" high-value="0.5" name="DemoResponseChromaSlider" class="lch-slider" />
|
style="flex-grow: 1; background-color: rgb(0, 0, 0); align-self: stretch; justify-content: center;">
|
||||||
<ui:Slider label="Hue" high-value="360" name="DemoResponseHueSlider" class="lch-slider" />
|
<ui:VisualElement name="DemoResponseSliderContainer"
|
||||||
|
style="flex-grow: 0; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; padding-top: 2%; padding-right: 2%; padding-bottom: 2%; padding-left: 2%; border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; background-color: rgb(208, 152, 194);">
|
||||||
|
<ui:Slider label="Lightness" high-value="100" name="DemoResponseLightnessSlider"
|
||||||
|
class="lch-slider"/>
|
||||||
|
<ui:Slider label="Chroma" high-value="0.5" name="DemoResponseChromaSlider" class="lch-slider"/>
|
||||||
|
<ui:Slider label="Hue" high-value="360" name="DemoResponseHueSlider" class="lch-slider"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="GameView" style="flex-grow: 0; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; justify-content: space-between; height: 100%; align-self: stretch; display: none;">
|
<ui:VisualElement name="GameView"
|
||||||
<ui:VisualElement name="GameHeader" style="flex-grow: 0; flex-direction: row; justify-content: space-between; align-self: stretch;">
|
style="flex-grow: 0; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; justify-content: space-between; height: 100%; align-self: stretch; display: none;">
|
||||||
<ui:Label tabindex="-1" text="1/5" parse-escape-sequences="true" display-tooltip-when-elided="true" name="RoundText" style="font-size: 58px; -unity-font-style: normal;" />
|
<ui:VisualElement name="GameHeader"
|
||||||
<ui:Label tabindex="-1" text="0.00s" parse-escape-sequences="true" display-tooltip-when-elided="true" name="TimeText" style="-unity-text-align: lower-right; font-size: 58px;" />
|
style="flex-grow: 0; flex-direction: row; justify-content: space-between; align-self: stretch;">
|
||||||
|
<ui:Label tabindex="-1" text="1/5" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
|
name="RoundText" style="font-size: 58px; -unity-font-style: normal;"/>
|
||||||
|
<ui:Label tabindex="-1" text="0.00s" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="TimeText"
|
||||||
|
style="-unity-text-align: lower-right; font-size: 58px;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ColourPreview" style="flex-grow: 0; height: 50%; background-color: rgb(255, 255, 255); border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; flex-direction: row; padding-top: 2%; padding-right: 2%; padding-bottom: 2%; padding-left: 2%; justify-content: space-between;">
|
<ui:VisualElement name="ColourPreview"
|
||||||
<ui:VisualElement name="TemplatePreview" style="flex-grow: 0; flex-shrink: 0; height: 100%; width: 49%;">
|
style="flex-grow: 0; height: 50%; background-color: rgb(255, 255, 255); border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; flex-direction: row; padding-top: 2%; padding-right: 2%; padding-bottom: 2%; padding-left: 2%; justify-content: space-between;">
|
||||||
<ui:Label tabindex="-1" text="Template" parse-escape-sequences="true" display-tooltip-when-elided="true" name="TemplateText" style="margin-bottom: 12px; margin-top: 0; -unity-font-style: normal;" />
|
<ui:VisualElement name="TemplatePreview"
|
||||||
<ui:VisualElement name="TemplateColour" style="flex-grow: 1; border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; background-color: rgb(0, 0, 0);" />
|
style="flex-grow: 0; flex-shrink: 0; height: 100%; width: 49%;">
|
||||||
|
<ui:Label tabindex="-1" text="Template" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="TemplateText"
|
||||||
|
style="margin-bottom: 12px; margin-top: 0; -unity-font-style: normal;"/>
|
||||||
|
<ui:VisualElement name="TemplateColour"
|
||||||
|
style="flex-grow: 1; border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; background-color: rgb(0, 0, 0);"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ResponsePreview" style="flex-grow: 0; flex-shrink: 0; height: 100%; width: 49%;">
|
<ui:VisualElement name="ResponsePreview"
|
||||||
<ui:Label tabindex="-1" text="Response" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ResponseText" style="margin-bottom: 12px; margin-top: 0; -unity-font-style: normal; -unity-text-align: upper-right;" />
|
style="flex-grow: 0; flex-shrink: 0; height: 100%; width: 49%;">
|
||||||
<ui:VisualElement name="ResponseColour" style="flex-grow: 1; border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; background-color: rgb(0, 0, 0);" />
|
<ui:Label tabindex="-1" text="Response" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ResponseText"
|
||||||
|
style="margin-bottom: 12px; margin-top: 0; -unity-font-style: normal; -unity-text-align: upper-right;"/>
|
||||||
|
<ui:VisualElement name="ResponseColour"
|
||||||
|
style="flex-grow: 1; border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; background-color: rgb(0, 0, 0);"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ResponseSliders" style="flex-grow: 0; display: flex;">
|
<ui:VisualElement name="ResponseSliders" style="flex-grow: 0; display: flex;">
|
||||||
<ui:Slider label="Lightness" high-value="100" name="ResponseLightnessSlider" class="lch-slider" />
|
<ui:Slider label="Lightness" high-value="100" name="ResponseLightnessSlider" class="lch-slider"/>
|
||||||
<ui:Slider label="Chroma" high-value="0.5" name="ResponseChromaSlider" class="lch-slider" />
|
<ui:Slider label="Chroma" high-value="0.5" name="ResponseChromaSlider" class="lch-slider"/>
|
||||||
<ui:Slider label="Hue" high-value="360" name="ResponseHueSlider" class="lch-slider" />
|
<ui:Slider label="Hue" high-value="360" name="ResponseHueSlider" class="lch-slider"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ResultsView" style="flex-grow: 1; display: none; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; justify-content: space-between;">
|
<ui:VisualElement name="ResultsView"
|
||||||
<ui:VisualElement name="ColourShowcase" style="flex-grow: 1; background-color: rgb(255, 255, 255); border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; padding-top: 2%; padding-right: 2%; padding-bottom: 2%; padding-left: 2%; margin-bottom: 2%; margin-top: 0; margin-right: 0; margin-left: 0;">
|
style="flex-grow: 1; display: none; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; justify-content: space-between;">
|
||||||
<ui:Label tabindex="-1" text="Templates" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ShowcaseTemplatesText" style="-unity-text-align: upper-center; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 2%; padding-left: 0;" />
|
<ui:VisualElement name="ColourShowcase"
|
||||||
|
style="flex-grow: 1; background-color: rgb(255, 255, 255); border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; padding-top: 2%; padding-right: 2%; padding-bottom: 2%; padding-left: 2%; margin-bottom: 2%; margin-top: 0; margin-right: 0; margin-left: 0;">
|
||||||
|
<ui:Label tabindex="-1" text="Templates" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ShowcaseTemplatesText"
|
||||||
|
style="-unity-text-align: upper-center; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 2%; padding-left: 0;"/>
|
||||||
<ui:VisualElement name="Gallery" style="flex-grow: 1; flex-direction: row;">
|
<ui:VisualElement name="Gallery" style="flex-grow: 1; flex-direction: row;">
|
||||||
<ui:VisualElement name="ShowcasePair1" style="flex-grow: 1;">
|
<ui:VisualElement name="ShowcasePair1" style="flex-grow: 1;">
|
||||||
<ui:VisualElement name="ShowcasePair1TemplateColour" style="flex-grow: 1; background-color: rgb(15, 13, 27); border-top-left-radius: 8px; border-bottom-left-radius: 8px;" />
|
<ui:VisualElement name="ShowcasePair1TemplateColour"
|
||||||
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ShowcasePair1Info" style="-unity-text-align: upper-center; font-size: 18px;" />
|
style="flex-grow: 1; background-color: rgb(15, 13, 27); border-top-left-radius: 8px; border-bottom-left-radius: 8px;"/>
|
||||||
<ui:VisualElement name="ShowcasePair1ResponseColour" style="flex-grow: 1; border-bottom-left-radius: 8px; border-left-color: rgb(26, 22, 40); border-right-color: rgb(26, 22, 40); border-top-color: rgb(26, 22, 40); border-bottom-color: rgb(26, 22, 40); background-color: rgb(26, 22, 40); border-top-left-radius: 8px;" />
|
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ShowcasePair1Info"
|
||||||
|
style="-unity-text-align: upper-center; font-size: 18px;"/>
|
||||||
|
<ui:VisualElement name="ShowcasePair1ResponseColour"
|
||||||
|
style="flex-grow: 1; border-bottom-left-radius: 8px; border-left-color: rgb(26, 22, 40); border-right-color: rgb(26, 22, 40); border-top-color: rgb(26, 22, 40); border-bottom-color: rgb(26, 22, 40); background-color: rgb(26, 22, 40); border-top-left-radius: 8px;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ShowcasePair2" style="flex-grow: 1;">
|
<ui:VisualElement name="ShowcasePair2" style="flex-grow: 1;">
|
||||||
<ui:VisualElement name="ShowcasePair2TemplateColour" style="flex-grow: 1; background-color: rgb(42, 33, 56);" />
|
<ui:VisualElement name="ShowcasePair2TemplateColour"
|
||||||
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ShowcasePair2Info" style="-unity-text-align: upper-center; font-size: 18px;" />
|
style="flex-grow: 1; background-color: rgb(42, 33, 56);"/>
|
||||||
<ui:VisualElement name="ShowcasePair2ResponseColour" style="flex-grow: 1; background-color: rgb(63, 48, 76);" />
|
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ShowcasePair2Info"
|
||||||
|
style="-unity-text-align: upper-center; font-size: 18px;"/>
|
||||||
|
<ui:VisualElement name="ShowcasePair2ResponseColour"
|
||||||
|
style="flex-grow: 1; background-color: rgb(63, 48, 76);"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ShowcasePair3" style="flex-grow: 1;">
|
<ui:VisualElement name="ShowcasePair3" style="flex-grow: 1;">
|
||||||
<ui:VisualElement name="ShowcasePair3TemplateColour" style="flex-grow: 1; background-color: rgb(63, 48, 76);" />
|
<ui:VisualElement name="ShowcasePair3TemplateColour"
|
||||||
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ShowcasePair3Info" style="-unity-text-align: upper-center; font-size: 18px;" />
|
style="flex-grow: 1; background-color: rgb(63, 48, 76);"/>
|
||||||
<ui:VisualElement name="ShowcasePair3ResponseColour" style="flex-grow: 1; background-color: rgb(89, 67, 100);" />
|
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ShowcasePair3Info"
|
||||||
|
style="-unity-text-align: upper-center; font-size: 18px;"/>
|
||||||
|
<ui:VisualElement name="ShowcasePair3ResponseColour"
|
||||||
|
style="flex-grow: 1; background-color: rgb(89, 67, 100);"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ShowcasePair4" style="flex-grow: 1;">
|
<ui:VisualElement name="ShowcasePair4" style="flex-grow: 1;">
|
||||||
<ui:VisualElement name="ShowcasePair4TemplateColour" style="flex-grow: 1; background-color: rgb(89, 67, 100);" />
|
<ui:VisualElement name="ShowcasePair4TemplateColour"
|
||||||
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ShowcasePair4Info" style="-unity-text-align: upper-center; font-size: 18px;" />
|
style="flex-grow: 1; background-color: rgb(89, 67, 100);"/>
|
||||||
<ui:VisualElement name="ShowcasePair4ResponseColour" style="flex-grow: 1; background-color: rgb(122, 90, 126);" />
|
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ShowcasePair4Info"
|
||||||
|
style="-unity-text-align: upper-center; font-size: 18px;"/>
|
||||||
|
<ui:VisualElement name="ShowcasePair4ResponseColour"
|
||||||
|
style="flex-grow: 1; background-color: rgb(122, 90, 126);"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="ShowcasePair5" style="flex-grow: 1;">
|
<ui:VisualElement name="ShowcasePair5" style="flex-grow: 1;">
|
||||||
<ui:VisualElement name="ShowcasePair5TemplateColour" style="flex-grow: 1; background-color: rgb(162, 118, 158); border-top-right-radius: 8px; border-bottom-right-radius: 8px;" />
|
<ui:VisualElement name="ShowcasePair5TemplateColour"
|
||||||
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ShowcasePair5Info" style="-unity-text-align: upper-center; font-size: 18px;" />
|
style="flex-grow: 1; background-color: rgb(162, 118, 158); border-top-right-radius: 8px; border-bottom-right-radius: 8px;"/>
|
||||||
<ui:VisualElement name="ShowcasePair5ResponseColour" style="flex-grow: 1; background-color: rgb(208, 152, 194); border-top-right-radius: 8px; border-bottom-right-radius: 8px;" />
|
<ui:Label tabindex="-1" text="100% 100% 100% (100%)" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ShowcasePair5Info"
|
||||||
|
style="-unity-text-align: upper-center; font-size: 18px;"/>
|
||||||
|
<ui:VisualElement name="ShowcasePair5ResponseColour"
|
||||||
|
style="flex-grow: 1; background-color: rgb(208, 152, 194); border-top-right-radius: 8px; border-bottom-right-radius: 8px;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:Label tabindex="-1" text="Responses" parse-escape-sequences="true" display-tooltip-when-elided="true" name="ShowcaseResponsesText" style="-unity-text-align: upper-center; padding-top: 1.5%; padding-right: 0; padding-bottom: 0; padding-left: 0; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;" />
|
<ui:Label tabindex="-1" text="Responses" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="ShowcaseResponsesText"
|
||||||
|
style="-unity-text-align: upper-center; padding-top: 1.5%; padding-right: 0; padding-bottom: 0; padding-left: 0; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:Label tabindex="-1" text="Over n rounds, you were 100.00% accurate. Lightness was 100.00% accurate. (+100.00% from your average) Chroma was 100.00% accurate. (+100.00% from your average) Hue was 100.00% accurate. (+100.00% from your average) Your RATING has increased by 100.00%." parse-escape-sequences="true" display-tooltip-when-elided="true" name="ResultsText" style="flex-grow: 0; margin-top: 2%; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0;" />
|
<ui:Label tabindex="-1"
|
||||||
|
text="Over n rounds, you were 100.00% accurate. Lightness was 100.00% accurate. (+100.00% from your average) Chroma was 100.00% accurate. (+100.00% from your average) Hue was 100.00% accurate. (+100.00% from your average) Your RATING has increased by 100.00%."
|
||||||
|
parse-escape-sequences="true" display-tooltip-when-elided="true" name="ResultsText"
|
||||||
|
style="flex-grow: 0; margin-top: 2%; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="LeaderboardView" style="flex-grow: 1; display: flex; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; flex-direction: column; justify-content: space-between;">
|
<ui:VisualElement name="LeaderboardView"
|
||||||
<ui:Label tabindex="-1" text="Leaderboard" parse-escape-sequences="true" display-tooltip-when-elided="true" name="LeaderboardHeader" style="font-size: 58px; -unity-font-style: normal;" />
|
style="flex-grow: 1; display: flex; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; flex-direction: column; justify-content: space-between;">
|
||||||
|
<ui:Label tabindex="-1" text="Leaderboard" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="LeaderboardHeader"
|
||||||
|
style="font-size: 58px; -unity-font-style: normal;"/>
|
||||||
<ui:VisualElement name="LeaderboardContent" style="height: 80%; flex-direction: column;">
|
<ui:VisualElement name="LeaderboardContent" style="height: 80%; flex-direction: column;">
|
||||||
<ui:VisualElement name="LeaderboardEntryHeader">
|
<ui:VisualElement name="LeaderboardEntryHeader">
|
||||||
<ui:Label tabindex="-1" text="Rank" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EntryRankPosition" style="white-space: nowrap; width: 10%;" />
|
<ui:Label tabindex="-1" text="Rank" parse-escape-sequences="true"
|
||||||
<ui:Label tabindex="-1" text="Username" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EntryNameText" style="white-space: nowrap; width: 70%;" />
|
display-tooltip-when-elided="true" name="EntryRankPosition"
|
||||||
<ui:Label tabindex="-1" text="Rating" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EntryRatingText" style="white-space: nowrap; width: 20%; -unity-text-align: upper-right;" />
|
style="white-space: nowrap; width: 10%;"/>
|
||||||
|
<ui:Label tabindex="-1" text="Username" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="EntryNameText"
|
||||||
|
style="white-space: nowrap; width: 70%;"/>
|
||||||
|
<ui:Label tabindex="-1" text="Rating" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="EntryRatingText"
|
||||||
|
style="white-space: nowrap; width: 20%; -unity-text-align: upper-right;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:ScrollView name="LeaderboardListContent" vertical-scroller-visibility="Hidden" horizontal-scroller-visibility="Hidden">
|
<ui:ScrollView name="LeaderboardListContent" vertical-scroller-visibility="Hidden"
|
||||||
|
horizontal-scroller-visibility="Hidden">
|
||||||
<ui:VisualElement name="LeaderboardEntryReference" style="display: flex;">
|
<ui:VisualElement name="LeaderboardEntryReference" style="display: flex;">
|
||||||
<ui:Label tabindex="-1" text="#1" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EntryRankPosition" style="white-space: nowrap; width: 10%;" />
|
<ui:Label tabindex="-1" text="#1" parse-escape-sequences="true"
|
||||||
<ui:Label tabindex="-1" text="Jitomi Monoe" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EntryNameText" style="white-space: nowrap; width: 70%;" />
|
display-tooltip-when-elided="true" name="EntryRankPosition"
|
||||||
<ui:Label tabindex="-1" text="000.000" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EntryRatingText" style="white-space: nowrap; width: 20%; -unity-text-align: upper-right;" />
|
style="white-space: nowrap; width: 10%;"/>
|
||||||
|
<ui:Label tabindex="-1" text="Jitomi Monoe" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="EntryNameText"
|
||||||
|
style="white-space: nowrap; width: 70%;"/>
|
||||||
|
<ui:Label tabindex="-1" text="000.000" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="EntryRatingText"
|
||||||
|
style="white-space: nowrap; width: 20%; -unity-text-align: upper-right;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:ScrollView>
|
</ui:ScrollView>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="AccountView" style="flex-grow: 1; display: none; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; flex-direction: column; justify-content: space-between;">
|
<ui:VisualElement name="AccountView"
|
||||||
<ui:Label tabindex="-1" text="You are not signed in." parse-escape-sequences="true" display-tooltip-when-elided="true" name="AccountHeader" style="font-size: 58px; -unity-font-style: normal;" />
|
style="flex-grow: 1; display: none; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; margin-top: 3.25%; margin-right: 3.25%; margin-bottom: 3.25%; margin-left: 3.25%; flex-direction: column; justify-content: space-between;">
|
||||||
|
<ui:Label tabindex="-1" text="You are not signed in." parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="AccountHeader"
|
||||||
|
style="font-size: 58px; -unity-font-style: normal;"/>
|
||||||
<ui:VisualElement name="AccountFields" style="flex-grow: 0;">
|
<ui:VisualElement name="AccountFields" style="flex-grow: 0;">
|
||||||
<ui:VisualElement name="UsernameContainer" style="flex-grow: 1; flex-direction: row; justify-content: space-between;">
|
<ui:VisualElement name="UsernameContainer"
|
||||||
<ui:TextField picking-mode="Ignore" label="Username" name="UsernameField" />
|
style="flex-grow: 1; flex-direction: row; justify-content: space-between;">
|
||||||
<ui:Button text="Update" parse-escape-sequences="true" display-tooltip-when-elided="true" name="UsernameUpdateButton" />
|
<ui:TextField picking-mode="Ignore" label="Username" name="UsernameField"/>
|
||||||
|
<ui:Button text="Update" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
|
name="UsernameUpdateButton"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="EmailContainer" style="flex-grow: 1; flex-direction: row; justify-content: space-between;">
|
<ui:VisualElement name="EmailContainer"
|
||||||
<ui:TextField picking-mode="Ignore" label="Email" name="EmailField" keyboard-type="EmailAddress" />
|
style="flex-grow: 1; flex-direction: row; justify-content: space-between;">
|
||||||
<ui:Button text="Update" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EmailUpdateButton" />
|
<ui:TextField picking-mode="Ignore" label="Email" name="EmailField"
|
||||||
|
keyboard-type="EmailAddress"/>
|
||||||
|
<ui:Button text="Update" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
|
name="EmailUpdateButton"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="PasswordContainer" style="flex-grow: 1; flex-direction: row; justify-content: space-between;">
|
<ui:VisualElement name="PasswordContainer"
|
||||||
<ui:TextField picking-mode="Ignore" label="Password" name="PasswordField" password="true" />
|
style="flex-grow: 1; flex-direction: row; justify-content: space-between;">
|
||||||
<ui:Button text="Update" parse-escape-sequences="true" display-tooltip-when-elided="true" name="PasswordUpdateButton" />
|
<ui:TextField picking-mode="Ignore" label="Password" name="PasswordField" password="true"/>
|
||||||
|
<ui:Button text="Update" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
|
name="PasswordUpdateButton"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:Label tabindex="-1" text="A verification email has been sent. Check your inbox." parse-escape-sequences="true" display-tooltip-when-elided="true" name="AccompanyingText" style="padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; margin-top: 1.5%; margin-right: 0; margin-bottom: 0.75%; margin-left: 0; -unity-text-align: upper-left; display: none;" />
|
<ui:Label tabindex="-1" text="A verification email has been sent. Check your inbox."
|
||||||
|
parse-escape-sequences="true" display-tooltip-when-elided="true" name="AccompanyingText"
|
||||||
|
style="padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; margin-top: 1.5%; margin-right: 0; margin-bottom: 0.75%; margin-left: 0; -unity-text-align: upper-left; display: none;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
<ui:VisualElement name="AccountButtons" style="flex-grow: 0; align-items: flex-start;">
|
<ui:VisualElement name="AccountButtons" style="flex-grow: 0; align-items: flex-start;">
|
||||||
<ui:Button text="Primary Action Button →" parse-escape-sequences="true" display-tooltip-when-elided="true" name="PrimaryActionButton" style="-unity-text-align: middle-center; margin-bottom: 1%; margin-right: 1%; margin-top: 1%; -unity-font-style: bold;" />
|
<ui:Button text="Primary Action Button →" parse-escape-sequences="true"
|
||||||
<ui:Button text="Secondary Action Button →" parse-escape-sequences="true" display-tooltip-when-elided="true" name="SecondaryActionButton" style="-unity-text-align: middle-center; margin-bottom: 1%; margin-right: 1%; margin-top: 1%; -unity-font-style: bold;" />
|
display-tooltip-when-elided="true" name="PrimaryActionButton"
|
||||||
<ui:Button text="Tertiary Action Button →" parse-escape-sequences="true" display-tooltip-when-elided="true" name="TertiaryActionButton" style="margin-top: 1%; margin-right: 1%; -unity-font-style: bold;" />
|
style="-unity-text-align: middle-center; margin-bottom: 1%; margin-right: 1%; margin-top: 1%; -unity-font-style: bold;"/>
|
||||||
|
<ui:Button text="Secondary Action Button →" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="SecondaryActionButton"
|
||||||
|
style="-unity-text-align: middle-center; margin-bottom: 1%; margin-right: 1%; margin-top: 1%; -unity-font-style: bold;"/>
|
||||||
|
<ui:Button text="Tertiary Action Button →" parse-escape-sequences="true"
|
||||||
|
display-tooltip-when-elided="true" name="TertiaryActionButton"
|
||||||
|
style="margin-top: 1%; margin-right: 1%; -unity-font-style: bold;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
|
|
|
@ -1,8 +1,13 @@
|
||||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
<ui:UXML xmlns:ui="UnityEngine.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
<Style src="project://database/Assets/UI/GameUI.uss?fileID=7433441132597879392&guid=2c7ff79f21a3e8e408e76d75944d575b&type=3#GameUI" />
|
engine="UnityEngine.UIElements" editor="UnityEditor.UIElements"
|
||||||
|
noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
||||||
|
<Style src="project://database/Assets/UI/GameUI.uss?fileID=7433441132597879392&guid=2c7ff79f21a3e8e408e76d75944d575b&type=3#GameUI"/>
|
||||||
<ui:VisualElement name="LeaderboardEntryReference" style="display: flex;">
|
<ui:VisualElement name="LeaderboardEntryReference" style="display: flex;">
|
||||||
<ui:Label tabindex="-1" text="#1" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EntryRankPosition" style="white-space: nowrap; width: 10%;" />
|
<ui:Label tabindex="-1" text="#1" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
<ui:Label tabindex="-1" text="Jitomi Monoe" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EntryNameText" style="white-space: nowrap; width: 70%;" />
|
name="EntryRankPosition" style="white-space: nowrap; width: 10%;"/>
|
||||||
<ui:Label tabindex="-1" text="000.000" parse-escape-sequences="true" display-tooltip-when-elided="true" name="EntryRatingText" style="white-space: nowrap; width: 20%; -unity-text-align: upper-right;" />
|
<ui:Label tabindex="-1" text="Jitomi Monoe" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
|
name="EntryNameText" style="white-space: nowrap; width: 70%;"/>
|
||||||
|
<ui:Label tabindex="-1" text="000.000" parse-escape-sequences="true" display-tooltip-when-elided="true"
|
||||||
|
name="EntryRatingText" style="white-space: nowrap; width: 20%; -unity-text-align: upper-right;"/>
|
||||||
</ui:VisualElement>
|
</ui:VisualElement>
|
||||||
</ui:UXML>
|
</ui:UXML>
|
||||||
|
|
Reference in a new issue