Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chaos Race Build #28

Open
wants to merge 43 commits into
base: chaos-race-base
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
a2d5d0e
Let the chaos begin (random actor sizes)
aMannus Sep 16, 2023
4c02731
Start of timed effects
aMannus Sep 16, 2023
dc183dd
Rotating Link timed effect
aMannus Sep 17, 2023
0e0c46c
Treasure chest minigame is only keys
aMannus Sep 17, 2023
ea90e75
Slow King Mweep
aMannus Sep 17, 2023
a4ac5bc
Lay out complete timed effect structure
aMannus Sep 17, 2023
7871c12
More timed effect progress
aMannus Sep 19, 2023
350317c
Finish V1 timed effects
aMannus Sep 19, 2023
21e2f3c
Hyper ganondorf
aMannus Sep 20, 2023
8114efb
Ranndom size bosses
aMannus Sep 20, 2023
402ae7d
Spawn cucco storm when using deku nuts
aMannus Sep 20, 2023
2a5c05a
Only select junk hints show up
aMannus Sep 20, 2023
b8ee63f
Screwed up rolling goron speeds
aMannus Sep 20, 2023
c1d3693
Random axis settings on entering first person
aMannus Sep 20, 2023
52bdcab
Change age on transition 1/20 chance
aMannus Sep 22, 2023
0f201f6
Random mirror world, bomb fuse timer, invincible guays
aMannus Sep 22, 2023
9305ed3
Fix mirror stuff
aMannus Sep 22, 2023
e0dbec3
Super long goron neck
aMannus Sep 22, 2023
3f0d1bf
Every freestanding item is a blupee
aMannus Sep 22, 2023
6440db0
Lake Hylia doesn't pass time outside of suns song
aMannus Sep 22, 2023
ec9ad4c
Super heavy iron boots
aMannus Sep 22, 2023
0f58f67
Holding item above head makes you faster
aMannus Sep 22, 2023
02b7413
Link shrinks when moving, resets on roll
aMannus Sep 22, 2023
ab34b03
Bunny hood reverse controls, hover boots moonwalk
aMannus Sep 22, 2023
ddcf5d7
10% chance to take 5 ammo instead of 1
aMannus Sep 22, 2023
c9999b8
Huge rupees take 200 instead of adding
aMannus Sep 22, 2023
f5416f9
Equip kokiri tunic on room transition, tune age change
aMannus Sep 22, 2023
86d6465
Random dpad position every 10 minutes
aMannus Sep 22, 2023
bb83d48
Hammer toggles slippery floor
aMannus Sep 23, 2023
db788ff
Custom hints for the race
aMannus Sep 23, 2023
e0568bb
Fix hints and timed effects
aMannus Sep 23, 2023
2f1d663
Finish list of 40 hints
aMannus Sep 23, 2023
5023a8f
Switch hyper bosses to Twinrova
aMannus Oct 1, 2023
9140978
Super spicy dampe but his flames don't hurt
aMannus Oct 1, 2023
966d456
Pots explode when getting near
aMannus Oct 1, 2023
c5d2b7d
Fix rolling goron getting stuck
aMannus Oct 1, 2023
5ac8d3a
Value tweaks, fix hookshot giving superspeed
aMannus Oct 6, 2023
66b5403
More tweaks
aMannus Oct 7, 2023
3bcf213
Iron knuckle spawn average every 15 minutes
aMannus Oct 7, 2023
d16ec3f
Tweaks, random enemy spawns & shield/button unequips
aMannus Oct 7, 2023
d859374
Higher random enemy chance
aMannus Oct 7, 2023
073a9b7
Update random enemy description
aMannus Oct 7, 2023
ca1bfe4
Fix builds
aMannus Oct 21, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/generate-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ jobs:
if: ${{ !vars.WINDOWS_RUNNER }}
run: |
choco install ninja
Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force
Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force -ErrorAction SilentlyContinue
- uses: actions/checkout@v3
with:
submodules: true
Expand Down
32 changes: 0 additions & 32 deletions soh/soh/Enhancements/enemyrandomizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,55 +12,23 @@ extern "C" {
extern "C" uint32_t ResourceMgr_IsSceneMasterQuest(s16 sceneNum);

static EnemyEntry randomizedEnemySpawnTable[RANDOMIZED_ENEMY_SPAWN_TABLE_SIZE] = {
{ ACTOR_EN_FIREFLY, 2 }, // Regular Keese
{ ACTOR_EN_FIREFLY, 1 }, // Fire Keese
{ ACTOR_EN_FIREFLY, 4 }, // Ice Keese
{ ACTOR_EN_TEST, 2 }, // Stalfos
{ ACTOR_EN_TITE, -1 }, // Tektite (red)
{ ACTOR_EN_TITE, -2 }, // Tektite (blue)
{ ACTOR_EN_WALLMAS, 1 }, // Wallmaster
{ ACTOR_EN_DODONGO, -1 }, // Dodongo
{ ACTOR_EN_PEEHAT, -1 }, // Flying Peahat (big grounded, doesn't spawn larva)
{ ACTOR_EN_PEEHAT, 1 }, // Flying Peahat Larva
{ ACTOR_EN_ZF, -1 }, // Lizalfos
{ ACTOR_EN_ZF, -2 }, // Dinolfos
{ ACTOR_EN_GOMA, 7 }, // Gohma larva (non-gohma rooms)
{ ACTOR_EN_BUBBLE, 0 }, // Shabom (bubble)
{ ACTOR_EN_DODOJR, 0 }, // Baby Dodongo
{ ACTOR_EN_TORCH2, 0 }, // Dark Link
{ ACTOR_EN_BILI, 0 }, // Biri (jellyfish)
{ ACTOR_EN_TP, -1 }, // Electric Tailparasan
{ ACTOR_EN_ST, 0 }, // Skulltula (normal)
{ ACTOR_EN_ST, 1 }, // Skulltula (big)
{ ACTOR_EN_ST, 2 }, // Skulltula (invisible)
{ ACTOR_EN_BW, 0 }, // Torch Slug
{ ACTOR_EN_EIYER, 10 }, // Stinger (land) (One in formation, sink under floor and do not activate)
{ ACTOR_EN_MB, 0 }, // Moblins (Club)
{ ACTOR_EN_DEKUBABA, 0 }, // Deku Baba (small)
{ ACTOR_EN_DEKUBABA, 1 }, // Deku Baba (large)
{ ACTOR_EN_AM, -1 }, // Armos (enemy variant)
{ ACTOR_EN_DEKUNUTS, 768 }, // Mad Scrub (triple attack) (projectiles don't work)
{ ACTOR_EN_VALI, -1 }, // Bari (big jellyfish)
{ ACTOR_EN_BB, -1 }, // Bubble (flying skull enemy) (blue)
{ ACTOR_EN_YUKABYUN, 0 }, // Flying Floor Tile
{ ACTOR_EN_VM, 1280 }, // Beamos
{ ACTOR_EN_FLOORMAS, 0 }, // Floormaster
{ ACTOR_EN_RD, 1 }, // Redead (standing)
{ ACTOR_EN_RD, 32766 }, // Gibdo (standing)
{ ACTOR_EN_SB, 0 }, // Shell Blade
{ ACTOR_EN_KAREBABA, 0 }, // Withered Deku Baba
{ ACTOR_EN_RR, 0 }, // Like-Like
{ ACTOR_EN_NY, 0 }, // Spike (rolling enemy)
{ ACTOR_EN_IK, 2 }, // Iron Knuckle (black, standing)
{ ACTOR_EN_IK, 3 }, // Iron Knuckle (white, standing)
{ ACTOR_EN_TUBO_TRAP, 0 }, // Flying pot
{ ACTOR_EN_FZ, 0 }, // Freezard
{ ACTOR_EN_CLEAR_TAG, 1 }, // Arwing
{ ACTOR_EN_WF, 0 }, // Wolfos (normal)
{ ACTOR_EN_WF, 1 }, // Wolfos (white)
{ ACTOR_EN_SKB, 1 }, // Stalchild (small)
{ ACTOR_EN_SKB, 20 }, // Stalchild (big)
{ ACTOR_EN_CROW, 0 } // Guay

// Doesn't work {ACTOR_EN_POH, 0}, // Poe (Seems to rely on other objects?)
// Doesn't work {ACTOR_EN_POH, 2}, // Poe (composer Sharp) (Seems to rely on other objects?)
Expand Down
2 changes: 1 addition & 1 deletion soh/soh/Enhancements/enemyrandomizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ typedef struct EnemyEntry {
int16_t params;
} EnemyEntry;

#define RANDOMIZED_ENEMY_SPAWN_TABLE_SIZE 49
#define RANDOMIZED_ENEMY_SPAWN_TABLE_SIZE 17

bool IsEnemyFoundToRandomize(int16_t sceneNum, int8_t roomNum, int16_t actorId, int16_t params, float posX);
bool IsEnemyAllowedToSpawn(int16_t sceneNum, int8_t roomNum, EnemyEntry enemy);
Expand Down
7 changes: 7 additions & 0 deletions soh/soh/Enhancements/game-interactor/GameInteractor.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,11 @@ uint8_t GameInteractor_GetRandomWindActive();
uint8_t GameInteractor_GetRandomBonksActive();
uint8_t GameInteractor_GetSlipperyFloorActive();
uint8_t GameInteractor_SecondCollisionUpdate();
uint8_t GameInteractor_RotatingLink();
uint8_t GameInteractor_SpazzingLink();
void GameInteractor_SpawnCuccoStorm();
void GameInteractor_SetRandomInvertedAxis();
void GameInteractor_ToggleSlipperyFloor();
#ifdef __cplusplus
}
#endif
Expand Down Expand Up @@ -123,6 +128,8 @@ class GameInteractor {
static uint8_t RandomBonksActive;
static uint8_t SlipperyFloorActive;
static uint8_t SecondCollisionUpdate;
static uint8_t RotatingLink;
static uint8_t SpazzingLink;

static void SetPacifistMode(bool active);
};
Expand Down
30 changes: 30 additions & 0 deletions soh/soh/Enhancements/game-interactor/GameInteractor_State.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include "GameInteractor.h"
#include "libultraship/libultraship.h"

// MARK: - State Definitions

Expand All @@ -20,6 +21,8 @@ uint8_t GameInteractor::State::RandomWindSecondsSinceLastDirectionChange = 0;
uint8_t GameInteractor::State::RandomBonksActive = 0;
uint8_t GameInteractor::State::SlipperyFloorActive = 0;
uint8_t GameInteractor::State::SecondCollisionUpdate = 0;
uint8_t GameInteractor::State::RotatingLink = 0;
uint8_t GameInteractor::State::SpazzingLink = 0;

void GameInteractor::State::SetPacifistMode(bool active) {
PacifistModeActive = active;
Expand Down Expand Up @@ -127,3 +130,30 @@ uint8_t GameInteractor_GetSlipperyFloorActive() {
uint8_t GameInteractor_SecondCollisionUpdate() {
return GameInteractor::State::SecondCollisionUpdate;
}

// MARK: - GameInteractor::State::RotatingLink
uint8_t GameInteractor_RotatingLink() {
return GameInteractor::State::RotatingLink;
}

// MARK: - GameInteractor::State::SpazzingLink
uint8_t GameInteractor_SpazzingLink() {
return GameInteractor::State::SpazzingLink;
}

// MARK: -
void GameInteractor_SpawnCuccoStorm() {
GameInteractor::RawAction::SpawnActor(25, 0);
}

// MARK: -
void GameInteractor_SetRandomInvertedAxis() {
uint32_t randomNumber1 = rand() % 2;
uint32_t randomNumber2 = rand() % 2;
CVarSetInteger("gInvertAimingXAxis", randomNumber1);
CVarSetInteger("gInvertAimingYAxis", randomNumber2);
}

void GameInteractor_ToggleSlipperyFloor() {
GameInteractor::State::SlipperyFloorActive ^= 1;
}
Loading
Loading