Implement Arch and some additional changes
This commit is contained in:
@@ -707,7 +707,7 @@ namespace KernelPanic.UI
|
||||
|
||||
private static int GetDistroStars(DistroDefinition unit)
|
||||
{
|
||||
return 4;
|
||||
return unit != null && string.Equals(unit.Id, "arch", StringComparison.OrdinalIgnoreCase) ? 5 : 4;
|
||||
}
|
||||
|
||||
private static Color GetLanguageColor(Language language)
|
||||
@@ -2024,6 +2024,8 @@ namespace KernelPanic.UI
|
||||
PackageEffectKind.JavaScriptFlatDamage => $"+{amount} JavaScript damage",
|
||||
PackageEffectKind.WaveThresholdRestore => $"restore {amount} Uptime after wave {effect.Threshold}",
|
||||
PackageEffectKind.DnfFedoraPassive => "Fedora passive can trigger twice",
|
||||
PackageEffectKind.FirstCThisTurnDamageMultiplier => $"first C card each turn deals {amount}% damage",
|
||||
PackageEffectKind.TurnStartGenerateLanguageCard => amount > 0 ? "turn start: generate C/Rust card at -1c" : "turn start: generate common C/Rust card",
|
||||
_ => amount > 0 ? $"+{amount} package effect" : "package effect"
|
||||
};
|
||||
}
|
||||
|
||||
@@ -607,7 +607,7 @@ namespace KernelPanic.UI
|
||||
IReadOnlyList<string> ids = _gachaService.BeginnerState.guaranteedDistroIds;
|
||||
string first = ids.Count > 0 ? ids[0] : "--";
|
||||
string second = ids.Count > 1 ? ids[1] : "--";
|
||||
return $"20={first}, 40={second}, 50=future standard 5-star";
|
||||
return $"20={first}, 40={second}, 50=guaranteed 5-star";
|
||||
}
|
||||
|
||||
private static VisualElement BuildInfoLine(string key, string value)
|
||||
|
||||
@@ -517,12 +517,16 @@ namespace KernelPanic.UI
|
||||
}
|
||||
}
|
||||
|
||||
if (saveData.starterChosen && gacha.BannerPool.Count == 0)
|
||||
if (saveData.starterChosen)
|
||||
{
|
||||
IReadOnlyList<DistroDefinition> distros = distroDatabase.AllDistros;
|
||||
for (int i = 0; i < distros.Count; i++)
|
||||
{
|
||||
gacha.AddToBannerPool(distros[i]);
|
||||
DistroDefinition distro = distros[i];
|
||||
if (GachaService.IsBeginnerInstallMediaDistro(distro))
|
||||
{
|
||||
gacha.AddToBannerPool(distro);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -707,7 +707,7 @@ namespace KernelPanic.UI
|
||||
|
||||
if (_saveData.starterChosen)
|
||||
{
|
||||
AddAllFourStarDistrosToBeginnerBannerPool();
|
||||
AddBeginnerInstallMediaDistrosToBannerPool();
|
||||
}
|
||||
|
||||
if (_gachaService.BeginnerState.guaranteedDistroIds.Count == 0 && _saveData.bannerPoolIds.Count > 0)
|
||||
@@ -730,7 +730,7 @@ namespace KernelPanic.UI
|
||||
}
|
||||
}
|
||||
|
||||
private void AddAllFourStarDistrosToBeginnerBannerPool()
|
||||
private void AddBeginnerInstallMediaDistrosToBannerPool()
|
||||
{
|
||||
if (distroDatabase == null)
|
||||
{
|
||||
@@ -740,7 +740,11 @@ namespace KernelPanic.UI
|
||||
IReadOnlyList<DistroDefinition> distros = distroDatabase.AllDistros;
|
||||
for (int i = 0; i < distros.Count; i++)
|
||||
{
|
||||
_gachaService.AddToBannerPool(distros[i]);
|
||||
DistroDefinition distro = distros[i];
|
||||
if (GachaService.IsBeginnerInstallMediaDistro(distro))
|
||||
{
|
||||
_gachaService.AddToBannerPool(distro);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -806,7 +810,7 @@ namespace KernelPanic.UI
|
||||
private void HandleStarterConfirmed(DistroDefinition picked, IReadOnlyList<DistroDefinition> remaining)
|
||||
{
|
||||
_playerCollection.Add(picked, 1);
|
||||
AddAllFourStarDistrosToBeginnerBannerPool();
|
||||
AddBeginnerInstallMediaDistrosToBannerPool();
|
||||
_gachaService.SetBeginnerGuaranteedDistros(remaining);
|
||||
_saveData.starterChosen = true;
|
||||
SaveCurrentState();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using KernelPanic.Data;
|
||||
using KernelPanic.Meta;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
@@ -196,7 +197,24 @@ namespace KernelPanic.UI
|
||||
return false;
|
||||
}
|
||||
|
||||
starters = allDistros;
|
||||
List<DistroDefinition> starterDistros = new();
|
||||
for (int i = 0; i < allDistros.Count; i++)
|
||||
{
|
||||
DistroDefinition distro = allDistros[i];
|
||||
if (GachaService.IsBeginnerStarterDistro(distro))
|
||||
{
|
||||
starterDistros.Add(distro);
|
||||
}
|
||||
}
|
||||
|
||||
if (starterDistros.Count < StarterCount)
|
||||
{
|
||||
starters = Array.Empty<DistroDefinition>();
|
||||
error = $"DistroDatabase needs at least {StarterCount} starter distros (found {starterDistros.Count})";
|
||||
return false;
|
||||
}
|
||||
|
||||
starters = starterDistros;
|
||||
error = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user