mirror of
https://git.srhtnin.garden/sarah/srhtnin.github.io.git
synced 2026-10-13 18:38:11 +02:00
Updated pages and stuff to be accurate. Also made magic trowel havest
all of a plant you harvest with it.
This commit is contained in:
1 parent
38146ff1db
commit
d6fa5572ed
4 files changed
+304
-17
No files matched your search
+85
-13
@@ -19,8 +19,9 @@ $PageSection = "Guide";
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
A quick guide to growing plants, earning Dew,
|
A quick guide to growing plants, earning Dew,
|
||||||
and discovering mutations. You do not need to
|
discovering mutations, and using the Garden's
|
||||||
know everything here before you start playing.
|
tools and upgrades. You do not need to know
|
||||||
|
everything here before you start playing.
|
||||||
(But it's useful to do..)
|
(But it's useful to do..)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -53,9 +54,9 @@ $PageSection = "Guide";
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
In the <a href="/Pages/Garden.html">Garden</a>,
|
In the <a href="/Pages/Garden.html">Garden</a>,
|
||||||
select a seed and then choose an empty plot.
|
select a seed and then choose an empty plot with
|
||||||
Plants continue growing with real time, even while
|
the Trowel. Plants continue growing with real time,
|
||||||
you are away from the page.
|
even while you are away from the page.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -82,7 +83,9 @@ $PageSection = "Guide";
|
|||||||
More valuable seeds usually give more Dew.
|
More valuable seeds usually give more Dew.
|
||||||
The Shop shows the current seed cost,
|
The Shop shows the current seed cost,
|
||||||
harvest reward, growth time, and how many seeds you
|
harvest reward, growth time, and how many seeds you
|
||||||
already own. So you can be smart in your plant investments!
|
already own. The Garden can also quick-buy the selected
|
||||||
|
seed without making you leave the page. So you can be
|
||||||
|
smart in your plant investments!
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -102,7 +105,9 @@ $PageSection = "Guide";
|
|||||||
Mutation-derived seed prices are based on their
|
Mutation-derived seed prices are based on their
|
||||||
recipes, so discovering and performing mutations is
|
recipes, so discovering and performing mutations is
|
||||||
often a useful alternative to simply buying the
|
often a useful alternative to simply buying the
|
||||||
resulting seed.
|
resulting seed. The Shop also contains tools, Garden
|
||||||
|
expansions, additional Gardens, and optional information
|
||||||
|
upgrades.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -186,6 +191,9 @@ $PageSection = "Guide";
|
|||||||
additional seeds in the Shop, so you can skip
|
additional seeds in the Shop, so you can skip
|
||||||
creating them through mutations. Though it always
|
creating them through mutations. Though it always
|
||||||
costs more to buy the seeds than create them by mutation..
|
costs more to buy the seeds than create them by mutation..
|
||||||
|
Your discoveries are also recorded in the
|
||||||
|
<a href="/Pages/Plants.html">Plant encyclopedia</a> and
|
||||||
|
<a href="/Pages/Mutations.html">Mutation encyclopedia</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -212,7 +220,8 @@ $PageSection = "Guide";
|
|||||||
The <strong>Magic trowel</strong> fills as many empty
|
The <strong>Magic trowel</strong> fills as many empty
|
||||||
plots as it can with the selected seed. If you have
|
plots as it can with the selected seed. If you have
|
||||||
fewer seeds than empty plots, it simply plants every
|
fewer seeds than empty plots, it simply plants every
|
||||||
seed you have.
|
seed you have. Use it on a mature plant to harvest every
|
||||||
|
mature plant of that same type in the active Garden.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -243,6 +252,49 @@ $PageSection = "Guide";
|
|||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section
|
||||||
|
id="Gardens"
|
||||||
|
class="GuideSection"
|
||||||
|
>
|
||||||
|
<h2>Gardens and rotation</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
You can buy additional Gardens from the Shop. Each Garden
|
||||||
|
has its own name, plots, mutation cooldowns, and expansion
|
||||||
|
size. Use the arrows beside the Garden name to switch
|
||||||
|
between the Gardens you own.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The Plot rotation upgrade adds a direction to planted
|
||||||
|
plots. Rotation matters for directional mutations and
|
||||||
|
functional plants, and plants with directional sprites
|
||||||
|
can visually face their saved direction.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section
|
||||||
|
id="FunctionalPlants"
|
||||||
|
class="GuideSection"
|
||||||
|
>
|
||||||
|
<h2>Functional plants</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Some mutation-created plants do more than grow and harvest.
|
||||||
|
Once mature, functional plants can affect nearby plots or
|
||||||
|
the wider Garden by harvesting, planting, duplicating,
|
||||||
|
advancing growth, changing mutation behaviour, or modifying
|
||||||
|
harvest rewards. Their exact behaviour depends on the plant.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Directional functional plants use their plot rotation to
|
||||||
|
decide where effects such as <strong>Front</strong> and
|
||||||
|
<strong>Behind</strong> point. Other effects can target
|
||||||
|
cardinal neighbours, adjacent plots, or the whole Garden.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section
|
<section
|
||||||
id="Account"
|
id="Account"
|
||||||
class="GuideSection"
|
class="GuideSection"
|
||||||
@@ -251,11 +303,11 @@ $PageSection = "Guide";
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Your <a href="/Pages/Profile.html">Profile</a>
|
Your <a href="/Pages/Profile.html">Profile</a>
|
||||||
contains your username, colour, statistics, and
|
contains your username, colour, Garden display settings,
|
||||||
Account Key. Garden saves can sync through the API,
|
statistics, and Account Key. Garden saves can sync through
|
||||||
while the Account Key lets you use the same Garden
|
the API, while the Account Key lets you use the same Garden
|
||||||
in another browser or on another device.
|
in another browser or on another device. It's basically
|
||||||
It's basically just like logging into an account.
|
just like logging into an account.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -297,6 +349,26 @@ $PageSection = "Guide";
|
|||||||
browser storage and cannot be cleared remotely.
|
browser storage and cannot be cleared remotely.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section
|
||||||
|
id="Contact"
|
||||||
|
class="GuideSection"
|
||||||
|
>
|
||||||
|
<h2>Contact</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
For general Garden questions or anything that does not fit
|
||||||
|
elsewhere, email
|
||||||
|
<a href="mailto:[email protected]">[email protected]</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Found a bug? Send it to
|
||||||
|
<a href="mailto:[email protected]">[email protected]</a>.
|
||||||
|
Ideas and suggestions can go to
|
||||||
|
<a href="mailto:[email protected]">[email protected]</a>.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="/Scripts/Garden/PlantImages.js"></script>
|
<script src="/Scripts/Garden/PlantImages.js"></script>
|
||||||
|
|||||||
+34
-4
@@ -17,9 +17,9 @@ $PageTitle = "Profile";
|
|||||||
<h1>Profile</h1>
|
<h1>Profile</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Manage your Garden profile, view your
|
Manage your Garden profile and display settings,
|
||||||
statistics, and move your account between
|
view your statistics, move your account between
|
||||||
devices.
|
devices, and find the Garden contact addresses.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
@@ -292,7 +292,17 @@ $PageTitle = "Profile";
|
|||||||
|
|
||||||
<div class="ProfileStatistic">
|
<div class="ProfileStatistic">
|
||||||
<span class="ProfileStatisticName">
|
<span class="ProfileStatisticName">
|
||||||
Garden size
|
Gardens owned
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<strong id="ProfileGardensOwned">
|
||||||
|
...
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ProfileStatistic">
|
||||||
|
<span class="ProfileStatisticName">
|
||||||
|
Active Garden size
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<strong id="ProfileGardenSize">
|
<strong id="ProfileGardenSize">
|
||||||
@@ -303,6 +313,26 @@ $PageTitle = "Profile";
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section
|
||||||
|
id="Contact"
|
||||||
|
class="Panel ProfileSection"
|
||||||
|
>
|
||||||
|
<h2 class="PanelHeader PanelHeaderInset">Contact</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
For general Garden questions, email
|
||||||
|
<a href="mailto:[email protected]">[email protected]</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Bug reports can be sent to
|
||||||
|
<a href="mailto:[email protected]">[email protected]</a>,
|
||||||
|
while ideas and suggestions can be sent to
|
||||||
|
<a href="mailto:[email protected]">[email protected]</a>.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
<section
|
<section
|
||||||
id="Account"
|
id="Account"
|
||||||
class="Panel ProfileSection"
|
class="Panel ProfileSection"
|
||||||
|
|||||||
@@ -1826,6 +1826,46 @@ function CreatePlotElement(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (
|
||||||
|
SelectedGardenTool ===
|
||||||
|
"MagicTrowel"
|
||||||
|
) {
|
||||||
|
if (Progress < 1) {
|
||||||
|
MainButton.title =
|
||||||
|
Plant.Name +
|
||||||
|
" - " +
|
||||||
|
Math.floor(
|
||||||
|
Progress * 100
|
||||||
|
) +
|
||||||
|
"% grown";
|
||||||
|
|
||||||
|
MainButton.disabled = true;
|
||||||
|
return Tile;
|
||||||
|
}
|
||||||
|
|
||||||
|
Tile.classList.add(
|
||||||
|
"GardenPlotMature",
|
||||||
|
"GardenPlotMagicPlant"
|
||||||
|
);
|
||||||
|
|
||||||
|
MainButton.title =
|
||||||
|
"Harvest all mature " +
|
||||||
|
Plant.Name +
|
||||||
|
" plants in this Garden";
|
||||||
|
|
||||||
|
MainButton.addEventListener(
|
||||||
|
"click",
|
||||||
|
() => {
|
||||||
|
HarvestManyPlants(
|
||||||
|
Plot.Plant
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
return Tile;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
SelectedGardenTool !==
|
SelectedGardenTool !==
|
||||||
"Trowel"
|
"Trowel"
|
||||||
@@ -2364,6 +2404,137 @@ async function PlantManySeeds() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async function HarvestManyPlants(
|
||||||
|
PlantKey
|
||||||
|
) {
|
||||||
|
const ActionTime = Date.now();
|
||||||
|
|
||||||
|
AdvanceGameSimulation(
|
||||||
|
GameSave,
|
||||||
|
ActionTime
|
||||||
|
);
|
||||||
|
|
||||||
|
const Plant =
|
||||||
|
Plants[PlantKey];
|
||||||
|
|
||||||
|
if (Plant === undefined) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const MatchingPlotIndexes = [];
|
||||||
|
|
||||||
|
GameSave.Garden.Plots.forEach(
|
||||||
|
(Plot, PlotIndex) => {
|
||||||
|
if (
|
||||||
|
Plot !== null &&
|
||||||
|
Plot.Plant === PlantKey &&
|
||||||
|
IsPlantMature(
|
||||||
|
Plot,
|
||||||
|
Plant
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
MatchingPlotIndexes.push(
|
||||||
|
PlotIndex
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
if (MatchingPlotIndexes.length === 0) {
|
||||||
|
SetGardenMessage(
|
||||||
|
"There aren't any mature " +
|
||||||
|
Plant.Name +
|
||||||
|
" plants to harvest."
|
||||||
|
);
|
||||||
|
|
||||||
|
RenderGame();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let HarvestedCount = 0;
|
||||||
|
let RewardAmount = 0;
|
||||||
|
let DisabledCount = 0;
|
||||||
|
let RewardUnavailableCount = 0;
|
||||||
|
|
||||||
|
for (
|
||||||
|
const PlotIndex
|
||||||
|
of MatchingPlotIndexes
|
||||||
|
) {
|
||||||
|
const HarvestResult =
|
||||||
|
HarvestGardenPlot(
|
||||||
|
GameSave,
|
||||||
|
GameSave.ActiveGardenIndex,
|
||||||
|
PlotIndex,
|
||||||
|
ActionTime
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!HarvestResult.Harvested) {
|
||||||
|
if (HarvestResult.Disabled) {
|
||||||
|
DisabledCount++;
|
||||||
|
} else if (
|
||||||
|
HarvestResult.RewardUnavailable
|
||||||
|
) {
|
||||||
|
RewardUnavailableCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
HarvestedCount++;
|
||||||
|
RewardAmount +=
|
||||||
|
HarvestResult.RewardAmount;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (HarvestedCount <= 0) {
|
||||||
|
if (DisabledCount > 0) {
|
||||||
|
SetGardenMessage(
|
||||||
|
Plant.Name +
|
||||||
|
" can't be harvested right now."
|
||||||
|
);
|
||||||
|
} else if (
|
||||||
|
RewardUnavailableCount > 0
|
||||||
|
) {
|
||||||
|
SetGardenMessage(
|
||||||
|
"Couldn't calculate the harvest reward for " +
|
||||||
|
Plant.Name +
|
||||||
|
"."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderGame();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SetGardenMessage(
|
||||||
|
"Magic trowel harvested " +
|
||||||
|
HarvestedCount.toLocaleString() +
|
||||||
|
" " +
|
||||||
|
Plant.Name +
|
||||||
|
(HarvestedCount === 1
|
||||||
|
? " plant"
|
||||||
|
: " plants") +
|
||||||
|
" for " +
|
||||||
|
RewardAmount.toLocaleString() +
|
||||||
|
" Dew."
|
||||||
|
);
|
||||||
|
|
||||||
|
CheckGardenMutations(
|
||||||
|
GameSave,
|
||||||
|
ActionTime
|
||||||
|
);
|
||||||
|
|
||||||
|
RenderGame();
|
||||||
|
|
||||||
|
await SaveGame(
|
||||||
|
GameSave
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
async function HarvestPlant(
|
async function HarvestPlant(
|
||||||
PlotIndex
|
PlotIndex
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -796,6 +796,12 @@ function RenderProfileStatistics() {
|
|||||||
?.length ??
|
?.length ??
|
||||||
0;
|
0;
|
||||||
|
|
||||||
|
const GardensOwned =
|
||||||
|
ProfileSave
|
||||||
|
?.Gardens
|
||||||
|
?.length ??
|
||||||
|
1;
|
||||||
|
|
||||||
const GardenWidth =
|
const GardenWidth =
|
||||||
ProfileSave
|
ProfileSave
|
||||||
?.Garden
|
?.Garden
|
||||||
@@ -837,6 +843,13 @@ function RenderProfileStatistics() {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
SetProfileStatistic(
|
||||||
|
"ProfileGardensOwned",
|
||||||
|
FormatProfileNumber(
|
||||||
|
GardensOwned
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
SetProfileStatistic(
|
SetProfileStatistic(
|
||||||
"ProfileGardenSize",
|
"ProfileGardenSize",
|
||||||
GardenWidth +
|
GardenWidth +
|
||||||
@@ -852,6 +865,7 @@ function RenderProfileStatisticsError() {
|
|||||||
"ProfileLifetimeDew",
|
"ProfileLifetimeDew",
|
||||||
"ProfilePlantsDiscovered",
|
"ProfilePlantsDiscovered",
|
||||||
"ProfileMutationsDiscovered",
|
"ProfileMutationsDiscovered",
|
||||||
|
"ProfileGardensOwned",
|
||||||
"ProfileGardenSize"
|
"ProfileGardenSize"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user