mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-07-10 23:22:38 -04:00
Decouple GBK from LACS (#5838)
Triforce Pieces can now be tokens for bridge or ganon's soul. & can be tokens for multiple rewards Wincon can now be arbitrary conditions Ganon's Soul (removed from existing boss soul options) can now be arbitrary conditions Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
This commit is contained in:
+4
-18
@@ -327,6 +327,10 @@ u8 CheckDungeonCount() {
|
||||
dungeonCount++;
|
||||
}
|
||||
|
||||
if (Flags_GetRandomizerInf(RAND_INF_DUNGEONS_DONE_GANONS_TOWER)) {
|
||||
dungeonCount++;
|
||||
}
|
||||
|
||||
return dungeonCount;
|
||||
}
|
||||
|
||||
@@ -348,24 +352,6 @@ u8 CheckBridgeRewardCount() {
|
||||
return bridgeRewardCount;
|
||||
}
|
||||
|
||||
u8 CheckLACSRewardCount() {
|
||||
u8 lacsRewardCount = 0;
|
||||
|
||||
switch (Randomizer_GetSettingValue(RSK_LACS_OPTIONS)) {
|
||||
case RO_LACS_WILDCARD_REWARD:
|
||||
if (Flags_GetRandomizerInf(RAND_INF_GREG_FOUND)) {
|
||||
lacsRewardCount += 1;
|
||||
}
|
||||
break;
|
||||
case RO_LACS_GREG_REWARD:
|
||||
if (Flags_GetRandomizerInf(RAND_INF_GREG_FOUND)) {
|
||||
lacsRewardCount += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return lacsRewardCount;
|
||||
}
|
||||
|
||||
void Play_Init(GameState* thisx) {
|
||||
PlayState* play = (PlayState*)thisx;
|
||||
GraphicsContext* gfxCtx = play->state.gfxCtx;
|
||||
|
||||
@@ -1656,7 +1656,8 @@ void Player_DrawGetItemImpl(PlayState* play, Player* this, Vec3f* refPos, s32 dr
|
||||
|
||||
if (this->getItemEntry.modIndex == MOD_RANDOMIZER && this->getItemEntry.getItemId == RG_ICE_TRAP) {
|
||||
Player_DrawGetItemIceTrap(play, this, refPos, drawIdPlusOne, height);
|
||||
} else if (this->getItemEntry.modIndex == MOD_RANDOMIZER && this->getItemEntry.getItemId == RG_TRIFORCE_PIECE) {
|
||||
} else if (this->getItemEntry.modIndex == MOD_RANDOMIZER &&
|
||||
(this->getItemEntry.getItemId == RG_TRIFORCE_PIECE || this->getItemEntry.getItemId == RG_TRIFORCE)) {
|
||||
Randomizer_DrawTriforcePieceGI(play, this->getItemEntry);
|
||||
} else if (this->getItemEntry.drawFunc != NULL) {
|
||||
this->getItemEntry.drawFunc(play, &this->getItemEntry);
|
||||
|
||||
@@ -1692,14 +1692,18 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
|
||||
(player->meleeWeaponState != 0) && (player->heldItemAction == PLAYER_IA_SWORD_MASTER)) {
|
||||
func_80064520(play, &play->csCtx);
|
||||
GameInteractor_ExecuteOnBossDefeat(&this->actor);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, MAIN_CAM, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
this->csState = 7;
|
||||
this->csTimer = 0;
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gGanonFinalBlowAnim, 0.0f);
|
||||
this->unk_194 = Animation_GetLastFrame(&gGanonFinalBlowAnim);
|
||||
play->startPlayerCutscene(play, &this->actor, 0x61);
|
||||
if (GameInteractor_Should(VB_SLAY_GANON, true)) {
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, MAIN_CAM, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
this->csState = 7;
|
||||
this->csTimer = 0;
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gGanonFinalBlowAnim, 0.0f);
|
||||
this->unk_194 = Animation_GetLastFrame(&gGanonFinalBlowAnim);
|
||||
play->startPlayerCutscene(play, &this->actor, 0x61);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user