mirror of
https://git.srhtnin.garden/sarah/srhtnin.github.io.git
synced 2026-10-13 18:38:11 +02:00
192 lines
3.1 KiB
JavaScript
192 lines
3.1 KiB
JavaScript
const GardenExpansionBaseCost = 1000;
|
|
const PlantInformationUpgradeCost = 500;
|
|
const GardenOverviewUpgradeCost = 1000;
|
|
|
|
|
|
function GetGardenColumnUpgradeCost(
|
|
SaveData
|
|
) {
|
|
const GardenWidth =
|
|
SaveData.Garden.Width;
|
|
|
|
const GardenHeight =
|
|
SaveData.Garden.Height;
|
|
|
|
return Math.round(
|
|
GardenExpansionBaseCost *
|
|
GardenHeight *
|
|
(
|
|
1 +
|
|
GardenHeight / 10 +
|
|
(GardenWidth - 3) / 10
|
|
)
|
|
);
|
|
}
|
|
|
|
|
|
function GetGardenRowUpgradeCost(
|
|
SaveData
|
|
) {
|
|
const GardenWidth =
|
|
SaveData.Garden.Width;
|
|
|
|
const GardenHeight =
|
|
SaveData.Garden.Height;
|
|
|
|
return Math.round(
|
|
GardenExpansionBaseCost *
|
|
GardenWidth *
|
|
(
|
|
1 +
|
|
GardenWidth / 10 +
|
|
(GardenHeight - 3) / 10
|
|
)
|
|
);
|
|
}
|
|
|
|
|
|
function AddGardenColumn(
|
|
SaveData
|
|
) {
|
|
const Garden = SaveData.Garden;
|
|
const OldWidth = Garden.Width;
|
|
const Height = Garden.Height;
|
|
const NewWidth = OldWidth + 1;
|
|
|
|
const NewPlots = Array(
|
|
NewWidth * Height
|
|
).fill(null);
|
|
|
|
|
|
for (
|
|
let Y = 0;
|
|
Y < Height;
|
|
Y++
|
|
) {
|
|
for (
|
|
let X = 0;
|
|
X < OldWidth;
|
|
X++
|
|
) {
|
|
NewPlots[
|
|
Y * NewWidth + X
|
|
] = Garden.Plots[
|
|
Y * OldWidth + X
|
|
] ?? null;
|
|
}
|
|
}
|
|
|
|
|
|
Garden.Width = NewWidth;
|
|
Garden.Plots = NewPlots;
|
|
|
|
ResetGardenMutationCooldowns(
|
|
SaveData
|
|
);
|
|
}
|
|
|
|
|
|
function AddGardenRow(
|
|
SaveData
|
|
) {
|
|
const Garden = SaveData.Garden;
|
|
const Width = Garden.Width;
|
|
|
|
Garden.Height++;
|
|
|
|
Garden.Plots.push(
|
|
...Array(Width).fill(null)
|
|
);
|
|
|
|
ResetGardenMutationCooldowns(
|
|
SaveData
|
|
);
|
|
}
|
|
|
|
|
|
function ResetGardenMutationCooldowns(
|
|
SaveData
|
|
) {
|
|
SaveData.MutationCooldowns = {};
|
|
}
|
|
|
|
|
|
function HasPlantInformationUpgrade(
|
|
SaveData
|
|
) {
|
|
return (
|
|
SaveData
|
|
?.Upgrades
|
|
?.PlantInformation ===
|
|
true
|
|
);
|
|
}
|
|
|
|
|
|
function GetPlantInformationUpgradeCost() {
|
|
return PlantInformationUpgradeCost;
|
|
}
|
|
|
|
|
|
function UnlockPlantInformation(
|
|
SaveData
|
|
) {
|
|
SaveData.Upgrades ??= {};
|
|
SaveData.Preferences ??= {};
|
|
|
|
SaveData.Upgrades.PlantInformation =
|
|
true;
|
|
|
|
SaveData.Preferences.ShowPlantNames =
|
|
true;
|
|
|
|
SaveData.Preferences.ShowGrowthTimers =
|
|
true;
|
|
}
|
|
|
|
|
|
function HasGardenOverviewUpgrade(
|
|
SaveData
|
|
) {
|
|
return (
|
|
SaveData
|
|
?.Upgrades
|
|
?.GardenOverview ===
|
|
true
|
|
);
|
|
}
|
|
|
|
|
|
function GetGardenOverviewUpgradeCost() {
|
|
return GardenOverviewUpgradeCost;
|
|
}
|
|
|
|
|
|
function UnlockGardenOverview(
|
|
SaveData
|
|
) {
|
|
SaveData.Upgrades ??= {};
|
|
SaveData.Preferences ??= {};
|
|
|
|
SaveData.Upgrades.GardenOverview =
|
|
true;
|
|
|
|
SaveData.Preferences.ShowNextHarvest =
|
|
true;
|
|
|
|
SaveData.Preferences.ShowGardenSize =
|
|
true;
|
|
|
|
SaveData.Preferences.ShowEmptyPlots =
|
|
true;
|
|
|
|
SaveData.Preferences.ShowPlantedPlots =
|
|
true;
|
|
|
|
SaveData.Preferences.ShowGrowingPlots =
|
|
true;
|
|
|
|
SaveData.Preferences.ShowReadyPlots =
|
|
true;
|
|
}
|