Shipwright/soh
Pepper0ni 55e1af9e81
Fairysanity (#4744)
* Define VB for fairy group spawning

* Add skeleton of new files for fairy shuffle

* Add option to enable/disable fairy shuffle

* Add field to fairy entities to hold randomizer data

* Expose the current grotto id, or find it if not shuffled

This is necessary since, unlike chest or scrub grottos,
fairy fountains, lacking any elements that would normally
differ between grottos, often have identical respawn data.
This change enables fairy shuffle to correctly identify
which fairy fountain was entered so it could load the right
checks.

* Initialise fairy groups if detected

* Randomize first set of fairies

* Make randomized fairies collectible

* VBify fairy healing customization

* Add remaining grotto fairies

* Add remaining fairy group spawns

* Override bean sprouts spawning fairies

* Define bean sprout fairy checks

* Add HasItem and CanUse entries for magic beans.

* Define logic for bean sprout fairies

* Enabling looking up fairies by z coordinate

* Add Temple of Time Gossip Stones

Logic might look a little weird. While the Gossip Stones
respond to Sun's Song, the scene transition takes priority,
so the fairies aren't actually obtainable. Adult does not have
day and night versions and is fully capable of acquiring the
fairies with Sun's Song.

Song of Time is similar, but rather than being dependant on
age, it's dependant on the timesaver to switch ages anywhere
with Song of Time. In this case, the fairies still spawn,
but the age transition deletes them before giving the chance
to collect them. While I could've chosen to ignore this and
simply require the player to disable the enhancement before
playing if it's their only option, I instead decided to
accomodate the enhancement and require one of the other songs
in order for the check to be in logic.

* Disable quick age change around gossip stones to simplify logic

* Add remaining gossip stone fairies

* Finish gossip stone fairies

* Add Desert Colossus Oasis

* Restrict fairy type

Somehow, it was previously possible for Navi to get detected
as a randomized fairy and rendered as an item. I was not
able to reproduce the behavior, but this should prevent it
from happening again.

* Add overworld special fairy spots

* Add mini-dungeon fairy song spots

* Add remaining dungeons except Shadow

* Add Shadow Temple fairies

* Add fairy check flags to the save editor

* Filter fairy checks from check tracker

* Add hints for fairy checks

* get fairysanity as far as I can for now

* fix a few obvious issues

* now builds

* try to convert FairyOnVanillaBehaviorHandler to vardic args

* convert RegisterFairyCustomization to REGISTER_VB_SHOULD

* fix some generation issues

* remove the list of fairy locations

* fix up logic

* more logic changes for gossip stones

* try silly thing for windows

* more stupid

* more dumb testing

* more testing

* small fixes

* implement inside fence storms fairy

* add inside fence storms fairy to logic

* remove duplicate hints (stupid conflicts)

* oops

* Rewrite game interfacing code of fairy shuffle

* Better function names

---------

Co-authored-by: Angel Bulfone <mbulfone@gmail.com>
Co-authored-by: aMannus <mannusmenting@gmail.com>
2025-01-05 14:52:27 +01:00
..
assets Custom Tunics (#4774) 2025-01-05 10:05:12 +01:00
CMake sccache for windows builds (#3385) 2024-02-01 23:11:31 -06:00
include Freestanding Rupees/Hearts Shuffle (#4686) 2024-12-22 11:16:00 -07:00
macosx Merge remote-tracking branch 'origin/develop' into merge-macready-805 2024-02-28 23:49:06 -05:00
platform Wii U support (#1097) 2022-08-14 22:57:24 -04:00
soh Fairysanity (#4744) 2025-01-05 14:52:27 +01:00
src Fairysanity (#4744) 2025-01-05 14:52:27 +01:00
.clang-format git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
.clang-tidy git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
.gitattributes git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
.gitignore Pass for some warning fixes (#4501) 2024-10-31 07:42:27 -07:00
.gitrepo git subrepo push soh 2022-07-14 20:47:48 -04:00
CMakeLists.txt Copy Assets with "If Different" Variants, CMake bump (#4714) 2024-12-18 00:10:20 -07:00
fixbaserom.py git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
format.sh git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
icon.jpg Nintendo switch support (#935) 2022-07-25 21:11:53 -04:00
properties.h.in clean up cmake configure files (#4002) 2024-04-20 11:03:41 -04:00
resource.h git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
Resource.rc Use UTF-8 for MSVC and enable visual styles for Windows (#2888) 2023-05-17 22:21:26 -04:00
SHIPOFHARKINIAN.ico git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
SHIPOFHARKINIAN.manifest Use manifest for windows DPI awareness (#3270) (#4256) 2024-08-05 19:31:20 -04:00