implement scaling rewards per wave completed in combat mode

This commit is contained in:
2026-07-07 12:56:02 +02:00
parent 28486bff8c
commit 30db1e1108
7 changed files with 155 additions and 67 deletions
@@ -11,9 +11,13 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="4222a6b8-add3-4f43-9c42-fd6bb5a76169" name="Changes" comment=""> <list default="true" id="4222a6b8-add3-4f43-9c42-fd6bb5a76169" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/Assets/Data/Cards/Languages/JavaScriptDeck.asset" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/.idea.linuxdistrosbuttheyarebreedable/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.linuxdistrosbuttheyarebreedable/.idea/workspace.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Data/Cards/Languages/LanguageDeckDatabase.asset" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/Scripts/Combat/CombatTuning.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Combat/CombatTuning.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Data/Cards/Languages/PythonDeck.asset" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/Scripts/Meta/GachaService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Meta/GachaService.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Run/RunManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Run/RunManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/CombatSceneController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/CombatSceneController.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/GachaScreenController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/GachaScreenController.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/MainMenuController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/MainMenuController.cs" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -21,7 +25,7 @@
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="EmbeddingIndexingInfo"> <component name="EmbeddingIndexingInfo">
<option name="cachedIndexableFilesCount" value="33" /> <option name="cachedIndexableFilesCount" value="41" />
<option name="fileBasedEmbeddingIndicesEnabled" value="true" /> <option name="fileBasedEmbeddingIndicesEnabled" value="true" />
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
@@ -45,12 +49,15 @@
} }
}</component> }</component>
<component name="HighlightingSettingsPerFile"> <component name="HighlightingSettingsPerFile">
<setting file="file://$PROJECT_DIR$/Assets/Data/Cards/Fedora/CargoBuildRelease.asset" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Data/Cards/Languages/Python/PyPrint.asset" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Data/Cards/Languages/Python/PyPrint.asset" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Data/Cards/Ubuntu/AskUbuntu.asset" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Data/Cards/Ubuntu/AskUbuntu.asset" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Data/Distros/Fedora.asset" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Data/Distros/Fedora.asset" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Data/Distros/Mint.asset" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Data/Distros/Mint.asset" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Data/Distros/Ubuntu.asset" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Data/LanguageDeckDatabase.cs" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Scripts/Data/LanguageDeckDatabase.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/UI.meta" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Scripts/UI.meta" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/UI/MainMenuPanelSettings.asset" root0="FORCE_HIGHLIGHTING" />
</component> </component>
<component name="KubernetesApiPersistence">{}</component> <component name="KubernetesApiPersistence">{}</component>
<component name="KubernetesApiProvider">{ <component name="KubernetesApiProvider">{
@@ -63,61 +70,61 @@
<component name="MetaFilesCheckinStateConfiguration" checkMetaFiles="true" /> <component name="MetaFilesCheckinStateConfiguration" checkMetaFiles="true" />
<component name="NextEditCompletionFeaturesState"> <component name="NextEditCompletionFeaturesState">
<decayedCancelled> <decayedCancelled>
<entry key="MS100" value="1.784784067864928E-26" /> <entry key="MS100" value="1.6593257874423712" />
<entry key="MS500" value="3.179349927770215E-5" /> <entry key="MS500" value="4.690994084349008" />
<entry key="S2" value="0.43593725248136195" /> <entry key="S2" value="14.465357308970995" />
<entry key="S5" value="3.124386400783043" /> <entry key="S5" value="30.992381303472097" />
<entry key="S10" value="6.569899662232147" /> <entry key="S10" value="48.5846958827385" />
<entry key="S30" value="11.963623430727672" /> <entry key="S30" value="71.76833898022443" />
<entry key="S60" value="15.501468038302548" /> <entry key="S60" value="80.15161397083796" />
<entry key="M2" value="29.60252956274459" /> <entry key="M2" value="84.87531446244894" />
<entry key="M5" value="98.8756653359035" /> <entry key="M5" value="87.90107930582121" />
<entry key="M10" value="201.15994289875957" /> <entry key="M10" value="89.36799351143095" />
<entry key="M15" value="275.3309920207401" /> <entry key="M15" value="93.16275126446527" />
<entry key="M30" value="403.9815566407741" /> <entry key="M30" value="133.51634266577747" />
<entry key="H1" value="517.0208145699735" /> <entry key="H1" value="278.73000832894314" />
<entry key="H2" value="663.1575441578198" /> <entry key="H2" value="556.4819305444627" />
<entry key="H4" value="922.5738450699231" /> <entry key="H4" value="958.972222388022" />
<entry key="D1" value="1631.0806053070532" /> <entry key="D1" value="2009.2210985288775" />
<entry key="W1" value="1869.6129372560254" /> <entry key="W1" value="2381.8392808733556" />
</decayedCancelled> </decayedCancelled>
<decayedSelected> <decayedSelected>
<entry key="MS100" value="1.0" /> <entry key="MS100" value="0.0" />
<entry key="MS500" value="1.0" /> <entry key="MS500" value="0.0" />
<entry key="S2" value="1.0" /> <entry key="S2" value="0.0" />
<entry key="S5" value="1.0" /> <entry key="S5" value="0.0" />
<entry key="S10" value="1.0" /> <entry key="S10" value="0.0" />
<entry key="S30" value="1.0" /> <entry key="S30" value="3.081765536046895E-110" />
<entry key="S60" value="1.0" /> <entry key="S60" value="1.7554958091795295E-55" />
<entry key="M2" value="1.0" /> <entry key="M2" value="4.189863731888548E-28" />
<entry key="M5" value="1.0" /> <entry key="M5" value="1.1191285094720122E-11" />
<entry key="M10" value="1.0" /> <entry key="M10" value="3.3453378147386345E-6" />
<entry key="M15" value="1.0000000000000346" /> <entry key="M15" value="2.2367974199991652E-4" />
<entry key="M30" value="1.000000322205145" /> <entry key="M30" value="0.014955931470204738" />
<entry key="H1" value="1.000983110716185" /> <entry key="H1" value="0.12241465504527704" />
<entry key="H2" value="1.054306989668889" /> <entry key="H2" value="0.36869769063784513" />
<entry key="H4" value="1.403633276713779" /> <entry key="H4" value="0.8300520405421339" />
<entry key="D1" value="3.1474941717089755" /> <entry key="D1" value="2.883634496098765" />
<entry key="W1" value="3.8600914950029614" /> <entry key="W1" value="3.8121106294007556" />
</decayedSelected> </decayedSelected>
<decayedShown> <decayedShown>
<entry key="MS100" value="6.749216540579623E-23" /> <entry key="MS100" value="1.6056852423710548" />
<entry key="MS500" value="6.833290904012429E-5" /> <entry key="MS500" value="4.655592836166669" />
<entry key="S2" value="0.5126847819760673" /> <entry key="S2" value="14.436328275205241" />
<entry key="S5" value="3.4812993492551785" /> <entry key="S5" value="30.967614820111674" />
<entry key="S10" value="7.166748957937481" /> <entry key="S10" value="48.565252560398456" />
<entry key="S30" value="12.805275153135156" /> <entry key="S30" value="71.75871155917086" />
<entry key="S60" value="16.4187386974579" /> <entry key="S60" value="80.14622622688532" />
<entry key="M2" value="30.559497092661907" /> <entry key="M2" value="84.872458348968" />
<entry key="M5" value="99.85455357262376" /> <entry key="M5" value="87.89989521451953" />
<entry key="M10" value="202.1455652503959" /> <entry key="M10" value="89.36739411138522" />
<entry key="M15" value="276.3195647949743" /> <entry key="M15" value="93.16255011580246" />
<entry key="M30" value="404.9743868417376" /> <entry key="M30" value="133.530877068796" />
<entry key="H1" value="518.0176759781034" /> <entry key="H1" value="278.8516097409327" />
<entry key="H2" value="664.2095490638119" /> <entry key="H2" value="556.8495610944027" />
<entry key="H4" value="923.9761056260575" /> <entry key="H4" value="959.8012838755719" />
<entry key="D1" value="1634.2277376809302" /> <entry key="D1" value="2012.1043621012425" />
<entry key="W1" value="1873.4729697848259" /> <entry key="W1" value="2385.651327343784" />
</decayedShown> </decayedShown>
</component> </component>
<component name="ProjectColorInfo">{ <component name="ProjectColorInfo">{
@@ -206,6 +213,7 @@
<workItem from="1783330590375" duration="18451000" /> <workItem from="1783330590375" duration="18451000" />
<workItem from="1783371975450" duration="26000" /> <workItem from="1783371975450" duration="26000" />
<workItem from="1783372397891" duration="989000" /> <workItem from="1783372397891" duration="989000" />
<workItem from="1783410502976" duration="5821000" />
</task> </task>
<task id="LOCAL-00001" summary="implement main screen"> <task id="LOCAL-00001" summary="implement main screen">
<option name="closed" value="true" /> <option name="closed" value="true" />
@@ -319,7 +327,15 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1783373303668</updated> <updated>1783373303668</updated>
</task> </task>
<option name="localTasksCounter" value="15" /> <task id="LOCAL-00015" summary="Implement too many changes to list">
<option name="closed" value="true" />
<created>1783417593908</created>
<option name="number" value="00015" />
<option name="presentableId" value="LOCAL-00015" />
<option name="project" value="LOCAL" />
<updated>1783417593908</updated>
</task>
<option name="localTasksCounter" value="16" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@@ -348,7 +364,8 @@
<MESSAGE value="finish implementing main menu" /> <MESSAGE value="finish implementing main menu" />
<MESSAGE value="finish implementing main" /> <MESSAGE value="finish implementing main" />
<MESSAGE value="fix some stuff" /> <MESSAGE value="fix some stuff" />
<option name="LAST_COMMIT_MESSAGE" value="fix some stuff" /> <MESSAGE value="Implement too many changes to list" />
<option name="LAST_COMMIT_MESSAGE" value="Implement too many changes to list" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
+4
View File
@@ -32,6 +32,10 @@ namespace KernelPanic.Combat
public const int NewCardOfferCost = 2; public const int NewCardOfferCost = 2;
public const int UpgradeOfferCost = 2; public const int UpgradeOfferCost = 2;
public const int StatUpgradeCost = 3; public const int StatUpgradeCost = 3;
public const int BandwidthBase = 10;
public const int BandwidthPerWaveStep = 5;
public const int EntropyStartWave = 5;
public const int EntropyPerWave = 3;
public const int StatUpgradeMaxCycles = 1; public const int StatUpgradeMaxCycles = 1;
public const int StatUpgradeMaxUptime = 4; public const int StatUpgradeMaxUptime = 4;
public const int StatUpgradeHeal = 5; public const int StatUpgradeHeal = 5;
+1 -1
View File
@@ -274,7 +274,7 @@ namespace KernelPanic.Meta
return currencyType switch return currencyType switch
{ {
GachaCurrencyType.LimitedPull => "Compute Credits", GachaCurrencyType.LimitedPull => "Compute Credits",
_ => "Commits" _ => "Bandwidth"
}; };
} }
+40
View File
@@ -26,7 +26,11 @@ namespace KernelPanic.Run
private int maxUptimeBonus; private int maxUptimeBonus;
private int maxCyclesBonus; private int maxCyclesBonus;
private int ramBonus; private int ramBonus;
private int wavesCleared;
private int accruedBandwidth;
private int accruedEntropy;
private bool repositoryVisitActive; private bool repositoryVisitActive;
private bool rewardsSettled;
public int CurrentWaveNumber => currentWaveNumber; public int CurrentWaveNumber => currentWaveNumber;
public bool IsRunActive => isRunActive; public bool IsRunActive => isRunActive;
@@ -40,6 +44,10 @@ namespace KernelPanic.Run
public int MaxUptimeBonus => maxUptimeBonus; public int MaxUptimeBonus => maxUptimeBonus;
public int MaxCyclesBonus => maxCyclesBonus; public int MaxCyclesBonus => maxCyclesBonus;
public int RamBonus => ramBonus; public int RamBonus => ramBonus;
public int WavesCleared => wavesCleared;
public int AccruedBandwidth => accruedBandwidth;
public int AccruedEntropy => accruedEntropy;
public bool RewardsSettled => rewardsSettled;
public event Action RepositoryChanged; public event Action RepositoryChanged;
@@ -66,6 +74,10 @@ namespace KernelPanic.Run
maxUptimeBonus = 0; maxUptimeBonus = 0;
maxCyclesBonus = 0; maxCyclesBonus = 0;
ramBonus = 0; ramBonus = 0;
wavesCleared = 0;
accruedBandwidth = 0;
accruedEntropy = 0;
rewardsSettled = false;
InitializeRunDeck(config); InitializeRunDeck(config);
StartCombat(); StartCombat();
} }
@@ -172,8 +184,25 @@ namespace KernelPanic.Run
return Mathf.Max(1, (CurrentConfig?.Distro?.BaseCyclesPerTurn ?? 1) + maxCyclesBonus); return Mathf.Max(1, (CurrentConfig?.Distro?.BaseCyclesPerTurn ?? 1) + maxCyclesBonus);
} }
public bool TrySettleRunRewards(out int bandwidth, out int entropy)
{
bandwidth = accruedBandwidth;
entropy = accruedEntropy;
if (rewardsSettled)
{
return false;
}
rewardsSettled = true;
return bandwidth > 0 || entropy > 0;
}
private void HandleWaveCleared(WaveClearedEvent payload) private void HandleWaveCleared(WaveClearedEvent payload)
{ {
int clearedWave = Mathf.Max(1, payload.WaveNumber);
wavesCleared = Mathf.Max(wavesCleared, clearedWave);
accruedBandwidth += CalculateBandwidthReward(clearedWave);
accruedEntropy += CalculateEntropyReward(clearedWave);
currentWaveNumber = Mathf.Max(currentWaveNumber + 1, payload.WaveNumber + 1); currentWaveNumber = Mathf.Max(currentWaveNumber + 1, payload.WaveNumber + 1);
repositoryOffers.Clear(); repositoryOffers.Clear();
rerollsThisVisit = 0; rerollsThisVisit = 0;
@@ -196,6 +225,17 @@ namespace KernelPanic.Run
RepositoryChanged?.Invoke(); RepositoryChanged?.Invoke();
} }
private static int CalculateBandwidthReward(int waveNumber)
{
int safeWave = Mathf.Max(1, waveNumber);
return Mathf.Max(0, CombatTuning.BandwidthBase + ((safeWave - 1) * CombatTuning.BandwidthPerWaveStep));
}
private static int CalculateEntropyReward(int waveNumber)
{
return waveNumber >= CombatTuning.EntropyStartWave ? Mathf.Max(0, CombatTuning.EntropyPerWave) : 0;
}
private void InitializeRunDeck(RunConfig config) private void InitializeRunDeck(RunConfig config)
{ {
runDeck.Clear(); runDeck.Clear();
+33 -6
View File
@@ -37,7 +37,7 @@ namespace KernelPanic.UI
private Label phaseLabel; private Label phaseLabel;
private Label entropyLabel; private Label entropyLabel;
private Label bitsLabel; private Label bitsLabel;
private Label commitsLabel; private Label bandwidthLabel;
private Label computeCreditsLabel; private Label computeCreditsLabel;
private Label seedLabel; private Label seedLabel;
private VisualElement playerPanel; private VisualElement playerPanel;
@@ -97,6 +97,7 @@ namespace KernelPanic.UI
private void OnDisable() private void OnDisable()
{ {
SettleRunRewardsIfNeeded();
combatManager.StateChanged -= Refresh; combatManager.StateChanged -= Refresh;
combatManager.CombatLog -= HandleCombatLog; combatManager.CombatLog -= HandleCombatLog;
runManager.RepositoryChanged -= Refresh; runManager.RepositoryChanged -= Refresh;
@@ -253,7 +254,7 @@ namespace KernelPanic.UI
phaseLabel = AddStatusReadout(bar, "phase", "--", true); phaseLabel = AddStatusReadout(bar, "phase", "--", true);
bitsLabel = AddStatusReadout(bar, "bits", "0", false); bitsLabel = AddStatusReadout(bar, "bits", "0", false);
entropyLabel = AddStatusReadout(bar, "entropy", "0", false); entropyLabel = AddStatusReadout(bar, "entropy", "0", false);
commitsLabel = AddStatusReadout(bar, "commits", "0", false); bandwidthLabel = AddStatusReadout(bar, "bandwidth", "0", false);
computeCreditsLabel = AddStatusReadout(bar, "compute credits", "TODO", false); computeCreditsLabel = AddStatusReadout(bar, "compute credits", "TODO", false);
VisualElement spacer = new(); VisualElement spacer = new();
@@ -326,8 +327,8 @@ namespace KernelPanic.UI
waveLabel.text = runManager.CurrentWaveNumber.ToString(); waveLabel.text = runManager.CurrentWaveNumber.ToString();
phaseLabel.text = PhaseText(combatManager.CurrentPhase); phaseLabel.text = PhaseText(combatManager.CurrentPhase);
bitsLabel.text = runManager.Bits.ToString(); bitsLabel.text = runManager.Bits.ToString();
entropyLabel.text = data.entropyBalance.ToString(); entropyLabel.text = FormatWalletWithAccrual(data.entropyBalance, runManager.AccruedEntropy);
commitsLabel.text = data.standardPullCurrency.ToString(); bandwidthLabel.text = FormatWalletWithAccrual(data.standardPullCurrency, runManager.AccruedBandwidth);
computeCreditsLabel.text = "TODO"; computeCreditsLabel.text = "TODO";
seedLabel.text = $"seed {config?.RunSeed ?? 0}"; seedLabel.text = $"seed {config?.RunSeed ?? 0}";
} }
@@ -423,11 +424,14 @@ namespace KernelPanic.UI
overlay.Clear(); overlay.Clear();
if (combatManager.RunLost) if (combatManager.RunLost)
{ {
SettleRunRewardsIfNeeded();
overlay.style.display = DisplayStyle.Flex; overlay.style.display = DisplayStyle.Flex;
overlay.Add(OverlayTitle("kernel panic")); overlay.Add(OverlayTitle("kernel panic"));
overlay.Add(OverlayLine("fatal: player uptime reached 0")); overlay.Add(OverlayLine("fatal: player uptime reached 0"));
overlay.Add(OverlayLine($"wave {runManager.CurrentWaveNumber} seed {runManager.CurrentConfig?.RunSeed ?? 0}")); overlay.Add(OverlayLine($"wave {runManager.CurrentWaveNumber} reached seed {runManager.CurrentConfig?.RunSeed ?? 0}"));
overlay.Add(OverlayLine("TODO: entropy/commits payout on death.")); overlay.Add(OverlayLine($"waves cleared: {runManager.WavesCleared}"));
overlay.Add(OverlayLine($"+{runManager.AccruedBandwidth} bandwidth"));
overlay.Add(OverlayLine($"+{runManager.AccruedEntropy} entropy"));
Button returnButton = new(SceneLoader.LoadMainMenu) { text = "> return to menu" }; Button returnButton = new(SceneLoader.LoadMainMenu) { text = "> return to menu" };
returnButton.AddToClassList("primary-action"); returnButton.AddToClassList("primary-action");
overlay.Add(returnButton); overlay.Add(returnButton);
@@ -450,6 +454,24 @@ namespace KernelPanic.UI
overlay.style.display = DisplayStyle.None; overlay.style.display = DisplayStyle.None;
} }
private void SettleRunRewardsIfNeeded()
{
if (runManager == null || saveService == null)
{
return;
}
if (!runManager.TrySettleRunRewards(out int bandwidth, out int entropy))
{
return;
}
SaveData data = saveService.Load();
data.standardPullCurrency = Math.Max(0, data.standardPullCurrency) + bandwidth;
data.entropyBalance = Math.Max(0, data.entropyBalance) + entropy;
saveService.Save(data);
}
private VisualElement BuildRepositoryView() private VisualElement BuildRepositoryView()
{ {
VisualElement repo = new(); VisualElement repo = new();
@@ -1009,6 +1031,11 @@ namespace KernelPanic.UI
}; };
} }
private static string FormatWalletWithAccrual(int walletAmount, int accruedAmount)
{
return accruedAmount > 0 ? $"{walletAmount} (+{accruedAmount})" : walletAmount.ToString();
}
private static string TrackText(ResolutionTrack track) private static string TrackText(ResolutionTrack track)
{ {
return track switch return track switch
+2 -2
View File
@@ -157,7 +157,7 @@ namespace KernelPanic.UI
_bannerDetail.Add(BuildInfoLine("entropy", _wallet == null ? "--" : _wallet.Balance.ToString())); _bannerDetail.Add(BuildInfoLine("entropy", _wallet == null ? "--" : _wallet.Balance.ToString()));
_bannerDetail.Add(BuildInfoLine("pulls", $"{state.totalPulls}/{GachaService.BeginnerMaxPulls}")); _bannerDetail.Add(BuildInfoLine("pulls", $"{state.totalPulls}/{GachaService.BeginnerMaxPulls}"));
_bannerDetail.Add(BuildInfoLine("4-star pity", $"{state.pityCounter}/{GachaService.FourStarHardPity}")); _bannerDetail.Add(BuildInfoLine("4-star pity", $"{state.pityCounter}/{GachaService.FourStarHardPity}"));
_bannerDetail.Add(BuildInfoLine("ten pull", $"{GachaService.BeginnerTenPullCost} Commits for 10 pulls")); _bannerDetail.Add(BuildInfoLine("ten pull", $"{GachaService.BeginnerTenPullCost} Bandwidth for 10 pulls"));
_bannerDetail.Add(BuildInfoLine("guarantees", FormatBeginnerGuarantees())); _bannerDetail.Add(BuildInfoLine("guarantees", FormatBeginnerGuarantees()));
Label rules = new("Base result is a 3-star equipment cache. A 4-star equipment cache or starter distro can appear early, with one 4-star+ result guaranteed every 10 pulls."); Label rules = new("Base result is a 3-star equipment cache. A 4-star equipment cache or starter distro can appear early, with one 4-star+ result guaranteed every 10 pulls.");
@@ -317,7 +317,7 @@ namespace KernelPanic.UI
prompt.AddToClassList("gacha-entropy-prompt"); prompt.AddToClassList("gacha-entropy-prompt");
int entropyCost = _pendingMissingTokens * GachaService.EntropyPerPullToken; int entropyCost = _pendingMissingTokens * GachaService.EntropyPerPullToken;
Label copy = new($"missing {_pendingMissingTokens} Commits. spend {entropyCost} entropy to complete git pull?"); Label copy = new($"missing {_pendingMissingTokens} Bandwidth. spend {entropyCost} entropy to complete git pull?");
copy.AddToClassList("gacha-result"); copy.AddToClassList("gacha-result");
prompt.Add(copy); prompt.Add(copy);
+1 -1
View File
@@ -708,7 +708,7 @@ namespace KernelPanic.UI
_rootCreditsToEntropyButton?.SetEnabled(true); _rootCreditsToEntropyButton?.SetEnabled(true);
bool showPullTokens = IsGachaVisible(); bool showPullTokens = IsGachaVisible();
_pullTokensLabel.text = showPullTokens _pullTokensLabel.text = showPullTokens
? $"commits={_gachaService.PullTokens} compute-credits={_gachaService.LimitedPullTokens}" ? $"bandwidth={_gachaService.PullTokens} compute-credits={_gachaService.LimitedPullTokens}"
: string.Empty; : string.Empty;
_pullTokensLabel.EnableInClassList(HiddenClassName, !showPullTokens); _pullTokensLabel.EnableInClassList(HiddenClassName, !showPullTokens);
} }