starOfWords/Assets/Scripts/3.5/ModLeaderboard.cs
portakal ecb1c9edea Initial commit: Star of Words Unity project
Snapshot of the existing Unity 6 language-learning word game before any
refactoring. Adds Unity .gitignore and .gitattributes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:31:20 +03:00

71 lines
No EOL
2.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class ModLeaderboard : MonoBehaviour
{
[Header("━━━ UI SLOTS (10 satır) ━━━━━━━━━━━━━━━")]
public TMP_Text[] rows;
[Header("━━━ BUTONLAR ━━━━━━━━━━━━━━━━━━━━━━━━━━")]
public Button mainMenuButton;
[Header("━━━ MOD AYARI ━━━━━━━━━━━━━━━━━━━━━━━━━")]
public string scoreKey = "GalaxyScore";
//
// Her mod için scoreKey değeri:
// ─────────────────────────────
// Galaxy Modu → "GalaxyScore"
// Time Modu → "TimeScore"
// Classic Modu → "ClassicScore"
// Challenge Modu → "ChallengeScore"
private readonly string[] botNames =
{
"ShadowWolf", "CrystalMind", "NightHunter",
"BlueVortex", "IronSoul", "PixelGhost",
"SilverClaw", "MegaCore", "NeonBlade", "DarkNova"
};
class LBEntry
{
public string name;
public int score;
public LBEntry(string n, int s) { name = n; score = s; }
}
void Start()
{
GenerateLeaderboard();
if (mainMenuButton != null)
mainMenuButton.onClick.AddListener(() =>
SceneManager.LoadScene("Anamen"));
}
void GenerateLeaderboard()
{
List<LBEntry> list = new List<LBEntry>();
int botLimit = Mathf.Min(rows.Length - 1, botNames.Length);
for (int i = 0; i < botLimit; i++)
list.Add(new LBEntry(botNames[i], Random.Range(3000, 12000)));
string highKey = scoreKey + "_High";
int lastScore = PlayerPrefs.GetInt(scoreKey, 0);
int highScore = PlayerPrefs.GetInt(highKey, 0);
if (lastScore > highScore)
{
highScore = lastScore;
PlayerPrefs.SetInt(highKey, highScore);
PlayerPrefs.Save();
}
list.Add(new LBEntry("YOU", highScore));
list.Sort((a, b) => b.score.CompareTo(a.score));
for (int i = 0; i < rows.Length; i++)
{
if (i < list.Count)
{
rows[i].text = list[i].name == "YOU"
? $"<color=#00FF00>{i + 1}. {list[i].name} - {list[i].score}</color>"
: $"{i + 1}. {list[i].name} - {list[i].score}";
}
else
{
rows[i].text = $"{i + 1}. ---";
}
}
}
}