mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-22 17:32:19 -05:00
greg bridge in logic (#2460)
* greg bridge in logic --------- Co-authored-by: briaguya <briaguya@alice>
This commit is contained in:
parent
3d8752b3aa
commit
68c8f50a71
@ -116,6 +116,10 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (randomizerGet == RG_GREG_RUPEE) {
|
||||||
|
return Bridge.Is(RAINBOWBRIDGE_GREG);
|
||||||
|
}
|
||||||
|
|
||||||
return IsAdvancement();
|
return IsAdvancement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ void ItemTable_Init() { // RandomizerGet
|
|||||||
//Generic Items
|
//Generic Items
|
||||||
itemTable[RECOVERY_HEART] = Item(RG_RECOVERY_HEART, Text{"Recovery Heart", "Coeur de Vie", "Corazón"}, ITEMTYPE_ITEM, GI_HEART, false, &noVariable, RECOVERY_HEART);
|
itemTable[RECOVERY_HEART] = Item(RG_RECOVERY_HEART, Text{"Recovery Heart", "Coeur de Vie", "Corazón"}, ITEMTYPE_ITEM, GI_HEART, false, &noVariable, RECOVERY_HEART);
|
||||||
itemTable[GREEN_RUPEE] = Item(RG_GREEN_RUPEE, Text{"Green Rupee", "Rubis Vert", "Rupia verde"}, ITEMTYPE_ITEM, GI_RUPEE_GREEN, false, &noVariable, GREEN_RUPEE);
|
itemTable[GREEN_RUPEE] = Item(RG_GREEN_RUPEE, Text{"Green Rupee", "Rubis Vert", "Rupia verde"}, ITEMTYPE_ITEM, GI_RUPEE_GREEN, false, &noVariable, GREEN_RUPEE);
|
||||||
itemTable[GREG_RUPEE] = Item(RG_GREG_RUPEE, Text{"Greg Rupee", "Rubis Greg", "Rupia Greg"}, ITEMTYPE_ITEM, GI_RUPEE_GREEN, false, &noVariable, GREG_RUPEE);
|
itemTable[GREG_RUPEE] = Item(RG_GREG_RUPEE, Text{"Greg Rupee", "Rubis Greg", "Rupia Greg"}, ITEMTYPE_ITEM, GI_RUPEE_GREEN, true, &Greg, GREG_RUPEE);
|
||||||
itemTable[BLUE_RUPEE] = Item(RG_BLUE_RUPEE, Text{"Blue Rupee", "Rubis Bleu", "Rupia azul"}, ITEMTYPE_ITEM, GI_RUPEE_BLUE, false, &noVariable, BLUE_RUPEE);
|
itemTable[BLUE_RUPEE] = Item(RG_BLUE_RUPEE, Text{"Blue Rupee", "Rubis Bleu", "Rupia azul"}, ITEMTYPE_ITEM, GI_RUPEE_BLUE, false, &noVariable, BLUE_RUPEE);
|
||||||
itemTable[RED_RUPEE] = Item(RG_RED_RUPEE, Text{"Red Rupee", "Rubis Rouge", "Rupia roja"}, ITEMTYPE_ITEM, GI_RUPEE_RED, false, &noVariable, RED_RUPEE);
|
itemTable[RED_RUPEE] = Item(RG_RED_RUPEE, Text{"Red Rupee", "Rubis Rouge", "Rupia roja"}, ITEMTYPE_ITEM, GI_RUPEE_RED, false, &noVariable, RED_RUPEE);
|
||||||
itemTable[PURPLE_RUPEE] = Item(RG_PURPLE_RUPEE, Text{"Purple Rupee", "Rubis Pourpre", "Rupia morada"}, ITEMTYPE_ITEM, GI_RUPEE_PURPLE, false, &noVariable, PURPLE_RUPEE);
|
itemTable[PURPLE_RUPEE] = Item(RG_PURPLE_RUPEE, Text{"Purple Rupee", "Rubis Pourpre", "Rupia morada"}, ITEMTYPE_ITEM, GI_RUPEE_PURPLE, false, &noVariable, PURPLE_RUPEE);
|
||||||
|
@ -120,6 +120,9 @@ namespace Logic {
|
|||||||
bool ShadowTrialClear = false;
|
bool ShadowTrialClear = false;
|
||||||
bool LightTrialClear = false;
|
bool LightTrialClear = false;
|
||||||
|
|
||||||
|
//Greg
|
||||||
|
bool Greg = false;
|
||||||
|
|
||||||
//Progressive Items
|
//Progressive Items
|
||||||
uint8_t ProgressiveBulletBag = 0;
|
uint8_t ProgressiveBulletBag = 0;
|
||||||
uint8_t ProgressiveBombBag = 0;
|
uint8_t ProgressiveBombBag = 0;
|
||||||
@ -781,7 +784,8 @@ namespace Logic {
|
|||||||
(Bridge.Is(RAINBOWBRIDGE_MEDALLIONS) && MedallionCount >= BridgeMedallionCount.Value<uint8_t>()) ||
|
(Bridge.Is(RAINBOWBRIDGE_MEDALLIONS) && MedallionCount >= BridgeMedallionCount.Value<uint8_t>()) ||
|
||||||
(Bridge.Is(RAINBOWBRIDGE_REWARDS) && StoneCount + MedallionCount >= BridgeRewardCount.Value<uint8_t>()) ||
|
(Bridge.Is(RAINBOWBRIDGE_REWARDS) && StoneCount + MedallionCount >= BridgeRewardCount.Value<uint8_t>()) ||
|
||||||
(Bridge.Is(RAINBOWBRIDGE_DUNGEONS) && DungeonCount >= BridgeDungeonCount.Value<uint8_t>()) ||
|
(Bridge.Is(RAINBOWBRIDGE_DUNGEONS) && DungeonCount >= BridgeDungeonCount.Value<uint8_t>()) ||
|
||||||
(Bridge.Is(RAINBOWBRIDGE_TOKENS) && GoldSkulltulaTokens >= BridgeTokenCount.Value<uint8_t>());
|
(Bridge.Is(RAINBOWBRIDGE_TOKENS) && GoldSkulltulaTokens >= BridgeTokenCount.Value<uint8_t>()) ||
|
||||||
|
(Bridge.Is(RAINBOWBRIDGE_GREG) && Greg);
|
||||||
|
|
||||||
CanTriggerLACS = (LACSCondition == LACSCONDITION_VANILLA && ShadowMedallion && SpiritMedallion) ||
|
CanTriggerLACS = (LACSCondition == LACSCONDITION_VANILLA && ShadowMedallion && SpiritMedallion) ||
|
||||||
(LACSCondition == LACSCONDITION_STONES && StoneCount >= LACSStoneCount.Value<uint8_t>()) ||
|
(LACSCondition == LACSCONDITION_STONES && StoneCount >= LACSStoneCount.Value<uint8_t>()) ||
|
||||||
@ -998,6 +1002,9 @@ namespace Logic {
|
|||||||
ShadowTrialClear = false;
|
ShadowTrialClear = false;
|
||||||
LightTrialClear = false;
|
LightTrialClear = false;
|
||||||
|
|
||||||
|
//Greg
|
||||||
|
Greg = false;
|
||||||
|
|
||||||
//Progressive Items
|
//Progressive Items
|
||||||
ProgressiveBulletBag = 0;
|
ProgressiveBulletBag = 0;
|
||||||
ProgressiveBombBag = 0;
|
ProgressiveBombBag = 0;
|
||||||
|
@ -113,6 +113,9 @@ extern bool SpiritTrialClear;
|
|||||||
extern bool ShadowTrialClear;
|
extern bool ShadowTrialClear;
|
||||||
extern bool LightTrialClear;
|
extern bool LightTrialClear;
|
||||||
|
|
||||||
|
//Greg
|
||||||
|
extern bool Greg;
|
||||||
|
|
||||||
// Progression Items
|
// Progression Items
|
||||||
extern uint8_t ProgressiveBulletBag;
|
extern uint8_t ProgressiveBulletBag;
|
||||||
extern uint8_t ProgressiveBombBag;
|
extern uint8_t ProgressiveBombBag;
|
||||||
|
@ -109,6 +109,8 @@ string_view bridgeDungeons = "The Rainbow Bridge requires completing
|
|||||||
"into the blue warp at the end of them."; //
|
"into the blue warp at the end of them."; //
|
||||||
string_view bridgeTokens = "The Rainbow Bridge requires collecting a\n" //
|
string_view bridgeTokens = "The Rainbow Bridge requires collecting a\n" //
|
||||||
"configurable number of Gold Skulltula Tokens."; //
|
"configurable number of Gold Skulltula Tokens."; //
|
||||||
|
string_view bridgeGreg = "The Rainbow Bridge requires collecting\n" //
|
||||||
|
"Greg the green rupee."; //
|
||||||
/*------------------------------ //
|
/*------------------------------ //
|
||||||
| BRIDGE CONDITIONS | //
|
| BRIDGE CONDITIONS | //
|
||||||
------------------------------*/ //
|
------------------------------*/ //
|
||||||
|
@ -40,6 +40,7 @@ extern string_view bridgeMedallions;
|
|||||||
extern string_view bridgeRewards;
|
extern string_view bridgeRewards;
|
||||||
extern string_view bridgeDungeons;
|
extern string_view bridgeDungeons;
|
||||||
extern string_view bridgeTokens;
|
extern string_view bridgeTokens;
|
||||||
|
extern string_view bridgeGreg;
|
||||||
|
|
||||||
extern string_view bridgeStoneCountDesc;
|
extern string_view bridgeStoneCountDesc;
|
||||||
extern string_view bridgeMedallionCountDesc;
|
extern string_view bridgeMedallionCountDesc;
|
||||||
|
@ -59,7 +59,7 @@ namespace Settings {
|
|||||||
Option OpenDoorOfTime = Option::U8 ("Door of Time", {"Closed", "Song only", "Open"}, {doorOfTimeClosed, doorOfTimeSongOnly, doorOfTimeOpen});
|
Option OpenDoorOfTime = Option::U8 ("Door of Time", {"Closed", "Song only", "Open"}, {doorOfTimeClosed, doorOfTimeSongOnly, doorOfTimeOpen});
|
||||||
Option ZorasFountain = Option::U8 ("Zora's Fountain", {"Closed", "Closed as child", "Open"}, {fountainNormal, fountainAdult, fountainOpen});
|
Option ZorasFountain = Option::U8 ("Zora's Fountain", {"Closed", "Closed as child", "Open"}, {fountainNormal, fountainAdult, fountainOpen});
|
||||||
Option GerudoFortress = Option::U8 ("Gerudo Fortress", {"Normal", "Fast", "Open"}, {gerudoNormal, gerudoFast, gerudoOpen});
|
Option GerudoFortress = Option::U8 ("Gerudo Fortress", {"Normal", "Fast", "Open"}, {gerudoNormal, gerudoFast, gerudoOpen});
|
||||||
Option Bridge = Option::U8 ("Rainbow Bridge", {"Vanilla", "Always open", "Stones", "Medallions", "Dungeon rewards", "Dungeons", "Tokens"}, {bridgeVanilla, bridgeOpen, bridgeStones, bridgeMedallions, bridgeRewards, bridgeDungeons, bridgeTokens}, OptionCategory::Setting, RAINBOWBRIDGE_VANILLA);
|
Option Bridge = Option::U8 ("Rainbow Bridge", {"Vanilla", "Always open", "Stones", "Medallions", "Dungeon rewards", "Dungeons", "Tokens", "Greg"}, {bridgeVanilla, bridgeOpen, bridgeStones, bridgeMedallions, bridgeRewards, bridgeDungeons, bridgeTokens, bridgeGreg}, OptionCategory::Setting, RAINBOWBRIDGE_VANILLA);
|
||||||
Option BridgeStoneCount = Option::U8 ("Stone Count", {NumOpts(0, 3)}, {bridgeStoneCountDesc}, OptionCategory::Setting, 1, true);
|
Option BridgeStoneCount = Option::U8 ("Stone Count", {NumOpts(0, 3)}, {bridgeStoneCountDesc}, OptionCategory::Setting, 1, true);
|
||||||
Option BridgeMedallionCount= Option::U8 ("Medallion Count", {NumOpts(0, 6)}, {bridgeMedallionCountDesc}, OptionCategory::Setting, 1, true);
|
Option BridgeMedallionCount= Option::U8 ("Medallion Count", {NumOpts(0, 6)}, {bridgeMedallionCountDesc}, OptionCategory::Setting, 1, true);
|
||||||
Option BridgeRewardCount = Option::U8 ("Reward Count", {NumOpts(0, 9)}, {bridgeRewardCountDesc}, OptionCategory::Setting, 1, true);
|
Option BridgeRewardCount = Option::U8 ("Reward Count", {NumOpts(0, 9)}, {bridgeRewardCountDesc}, OptionCategory::Setting, 1, true);
|
||||||
|
@ -69,6 +69,7 @@ typedef enum {
|
|||||||
RAINBOWBRIDGE_REWARDS,
|
RAINBOWBRIDGE_REWARDS,
|
||||||
RAINBOWBRIDGE_DUNGEONS,
|
RAINBOWBRIDGE_DUNGEONS,
|
||||||
RAINBOWBRIDGE_TOKENS,
|
RAINBOWBRIDGE_TOKENS,
|
||||||
|
RAINBOWBRIDGE_GREG,
|
||||||
} RainbowBridgeSetting;
|
} RainbowBridgeSetting;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -690,6 +690,8 @@ void Randomizer::ParseRandomizerSettingsFile(const char* spoilerFileName) {
|
|||||||
gSaveContext.randoSettings[index].value = RO_BRIDGE_DUNGEONS;
|
gSaveContext.randoSettings[index].value = RO_BRIDGE_DUNGEONS;
|
||||||
} else if(it.value() == "Tokens") {
|
} else if(it.value() == "Tokens") {
|
||||||
gSaveContext.randoSettings[index].value = RO_BRIDGE_TOKENS;
|
gSaveContext.randoSettings[index].value = RO_BRIDGE_TOKENS;
|
||||||
|
} else if(it.value() == "Greg") {
|
||||||
|
gSaveContext.randoSettings[index].value = RO_BRIDGE_GREG;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RSK_RAINBOW_BRIDGE_STONE_COUNT:
|
case RSK_RAINBOW_BRIDGE_STONE_COUNT:
|
||||||
@ -2987,8 +2989,8 @@ void DrawRandoEditor(bool& open) {
|
|||||||
static const char* randoDoorOfTime[3] = { "Closed", "Song only", "Open" };
|
static const char* randoDoorOfTime[3] = { "Closed", "Song only", "Open" };
|
||||||
static const char* randoZorasFountain[3] = { "Closed", "Closed as child", "Open" };
|
static const char* randoZorasFountain[3] = { "Closed", "Closed as child", "Open" };
|
||||||
static const char* randoGerudoFortress[3] = { "Normal", "Fast", "Open" };
|
static const char* randoGerudoFortress[3] = { "Normal", "Fast", "Open" };
|
||||||
static const char* randoRainbowBridge[7] = { "Vanilla", "Always open", "Stones", "Medallions",
|
static const char* randoRainbowBridge[8] = { "Vanilla", "Always open", "Stones", "Medallions",
|
||||||
"Dungeon rewards", "Dungeons", "Tokens" };
|
"Dungeon rewards", "Dungeons", "Tokens", "Greg" };
|
||||||
static const char* randoGanonsTrial[3] = { "Skip", "Set Number", "Random Number" };
|
static const char* randoGanonsTrial[3] = { "Skip", "Set Number", "Random Number" };
|
||||||
static const char* randoMqDungeons[3] = { "None", "Set Number", "Random Number" };
|
static const char* randoMqDungeons[3] = { "None", "Set Number", "Random Number" };
|
||||||
|
|
||||||
@ -3228,7 +3230,9 @@ void DrawRandoEditor(bool& open) {
|
|||||||
"are considered complete after stepping in to the blue warp after "
|
"are considered complete after stepping in to the blue warp after "
|
||||||
"the boss.\n"
|
"the boss.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Tokens - Obtain the specified amount of Skulltula tokens."
|
"Tokens - Obtain the specified amount of Skulltula tokens.\n"
|
||||||
|
"\n"
|
||||||
|
"Greg - Find Greg the Green Rupee."
|
||||||
);
|
);
|
||||||
|
|
||||||
UIWidgets::EnhancementCombobox("gRandomizeRainbowBridge", randoRainbowBridge, RO_BRIDGE_MAX, RO_BRIDGE_VANILLA);
|
UIWidgets::EnhancementCombobox("gRandomizeRainbowBridge", randoRainbowBridge, RO_BRIDGE_MAX, RO_BRIDGE_VANILLA);
|
||||||
@ -3263,6 +3267,8 @@ void DrawRandoEditor(bool& open) {
|
|||||||
UIWidgets::EnhancementSliderInt("Token Count: %d", "##RandoTokenCount",
|
UIWidgets::EnhancementSliderInt("Token Count: %d", "##RandoTokenCount",
|
||||||
"gRandomizeTokenCount", 1, 100, "", 100, true);
|
"gRandomizeTokenCount", 1, 100, "", 100, true);
|
||||||
break;
|
break;
|
||||||
|
case RO_BRIDGE_GREG:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
UIWidgets::PaddedSeparator();
|
UIWidgets::PaddedSeparator();
|
||||||
|
@ -1175,6 +1175,7 @@ typedef enum {
|
|||||||
RO_BRIDGE_DUNGEON_REWARDS,
|
RO_BRIDGE_DUNGEON_REWARDS,
|
||||||
RO_BRIDGE_DUNGEONS,
|
RO_BRIDGE_DUNGEONS,
|
||||||
RO_BRIDGE_TOKENS,
|
RO_BRIDGE_TOKENS,
|
||||||
|
RO_BRIDGE_GREG,
|
||||||
RO_BRIDGE_MAX,
|
RO_BRIDGE_MAX,
|
||||||
} RandoOptionRainbowBridge;
|
} RandoOptionRainbowBridge;
|
||||||
|
|
||||||
|
@ -135,6 +135,12 @@ void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, PlayState* play) {
|
|||||||
func_800F595C(NA_BGM_BRIDGE_TO_GANONS);
|
func_800F595C(NA_BGM_BRIDGE_TO_GANONS);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case RO_BRIDGE_GREG:
|
||||||
|
if (Flags_GetRandomizerInf(RAND_INF_GREG_FOUND)) {
|
||||||
|
this->actionFunc = BgGjyoBridge_SpawnBridge;
|
||||||
|
func_800F595C(NA_BGM_BRIDGE_TO_GANONS);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user