Gasha trees

From ZeldaHacking Wiki
Jump to navigation Jump to search

Rings

See TourianTourist's ring guide for Ages or Seasons for an overview of rings which can be obtained from gasha trees.

Note: TourianTourist's ring guide lists certain ring "classes" from 1-5, categorizing rings to help determine where they can come from. "Class 1" rings are the worst and most common, while "class 5" rings are the best and rarest.

In the disassembly, they are numbered from 0-4, and those numbers are arranged differently (not sorted in order of rarity). So, when referring to the disassembly's numbering, I say "ring tier"; when referring to TourianTourist's numbering, I say "ring class".

Overview of mechanics

When a seed is placed in a gasha spot, it will fully grow after 40 enemies are killed (20 with gasha ring).

The first time you harvest a gasha tree, you get a bad ring ("class 1" by TourianTourist's naming convention).

After that, the prize you receive is randomly chosen based on two factors.

The first factor is the gasha seed location; harder-to-reach spots give better rewards.

The second factor is a variable called "wGashaMaturity" in the disassembly. If this is 300 or higher, you get the best results; otherwise, the prizes are worse. Many things increase this value, including screen transitions (+5), killing enemies (+3), getting an essence (+150), heart piece (+36), or trade item (+100), and revealing hidden staircases, etc (+50 to +100).

It gets decreased by 200 whenever you harvest a gasha nut. So, harvesting a large number of gasha nuts may cause you to not be able to get the best prizes; in particular, the class 5 rings are only available when wGashaMaturity is 300 or higher.

Prizes

If the prize would be a heart piece, but Link already got it, then Link instead gets a tier 0 (class 4) ring.

The below table is only accurate when the wGashaMaturity variable is at least 300. This should be the case most of the time. If it's lower, then the probabilities change, and the better prizes become less common.

Gasha spot rank (lower is better)
Prize Rank 0 Rank 1 Rank 2 Rank 3 Rank 4
Heart piece 35.16% 10.16% 0.00% 0.00% 0.00%
Tier 0 (class 4) ring 25.00% 14.84% 0.00% 0.00% 0.00%
Tier 1 (class 3) ring 14.84% 35.16% 14.84% 0.00% 0.00%
Tier 2 (class 2) ring 0.00% 19.92% 30.08% 35.16% 25.00%
Tier 3 (class 1) ring 0.00% 0.00% 39.84% 35.16% 20.31%
Tier 4 (class 5) ring 10.16% 0.00% 0.00% 0.00% 0.00%
Potion 5.08% 9.77% 5.08% 10.16% 14.84%
200 rupees 5.08% 5.08% 5.08% 10.16% 14.84%
Fairy 4.69% 5.08% 5.08% 4.69% 14.84%
5 hearts 0.00% 0.00% 0.00% 4.69% 10.16%

See below for which gasha spots have which rank.

Placing gasha spots

Gasha spots are interactions with ID $b6. Their subID must be a unique value from $0-$f. If two gasha spots share the same subid, their growths will interfere with each other.

Each subid has a preset "rank" (lower is better; only rank 0 gives the best rings). This can be changed by looking for the @gashaSpotRanks label in object_code/common/interactionCode/group6.s. Below are the defaults.

Location SubID Rank
Nuun Highlands 0 1
Rolling Ridge (Present) (near target carts) 1 2
Talus Peaks (Present) 2 2
Yoll Graveyard 3 1
Fairies' Woods 4 4
Tokay Island (Present, northeast) 5 1
Tokay Island (Present, south/center) 6 1
Sea of Storms (Present) 7 0
Talus Peaks (Past, near tune of currents place) 8 3
Rolling Ridge (Past) 9 2
Rolling Ridge Base (Past) a 2
Talus Peaks (Past) (from Deku Forest side) b 1
Toilet House (Past) c 4
South Shore (Past) (west of Rafton) d 3
Above Zora Village (Past) e 1
Tokay Island (Past) f 0

Each subid also has a preset "gfx header" to load based on what environment its in, which determines what kind of tile the tree turns into after it disappears?