mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-25 23:55:20 -07:00
Move from function to event
This commit is contained in:
parent
461c772cc6
commit
71ff75413d
5 changed files with 17 additions and 27 deletions
|
@ -264,6 +264,10 @@ void RegionTable_Init() {
|
||||||
areaTable[RR_ROOT] = Region("Root", "", {RA_LINKS_POCKET}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_ROOT] = Region("Root", "", {RA_LINKS_POCKET}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->KakarikoVillageGateOpen, []{return ctx->GetOption(RSK_KAK_GATE).Is(RO_KAK_GATE_OPEN);}),
|
EventAccess(&logic->KakarikoVillageGateOpen, []{return ctx->GetOption(RSK_KAK_GATE).Is(RO_KAK_GATE_OPEN);}),
|
||||||
|
EventAccess(&logic->TH_CouldRescueF1SouthCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE);}),
|
||||||
|
EventAccess(&logic->TH_CouldRescueF2NorthCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE);}),
|
||||||
|
EventAccess(&logic->TH_CouldRescueF2SouthCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE);}),
|
||||||
|
EventAccess(&logic->TH_RescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE);}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_LINKS_POCKET, true),
|
LOCATION(RC_LINKS_POCKET, true),
|
||||||
|
|
|
@ -16,7 +16,7 @@ void RegionTable_Init_GerudoValley() {
|
||||||
Entrance(RR_GV_UPPER_STREAM, []{return logic->IsChild || logic->HasItem(RG_BRONZE_SCALE) || logic->TakeDamage();}),
|
Entrance(RR_GV_UPPER_STREAM, []{return logic->IsChild || logic->HasItem(RG_BRONZE_SCALE) || logic->TakeDamage();}),
|
||||||
Entrance(RR_GV_CRATE_LEDGE, []{return logic->IsChild || logic->CanUse(RG_LONGSHOT);}),
|
Entrance(RR_GV_CRATE_LEDGE, []{return logic->IsChild || logic->CanUse(RG_LONGSHOT);}),
|
||||||
Entrance(RR_GV_GROTTO_LEDGE, []{return true;}),
|
Entrance(RR_GV_GROTTO_LEDGE, []{return true;}),
|
||||||
Entrance(RR_GV_FORTRESS_SIDE, []{return (logic->IsAdult && (logic->CanUse(RG_EPONA) || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->CanFinishGerudoFortress())) || (logic->IsChild && logic->CanUse(RG_HOOKSHOT));}),
|
Entrance(RR_GV_FORTRESS_SIDE, []{return (logic->IsAdult && (logic->CanUse(RG_EPONA) || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->TH_RescuedAllCarpenters)) || (logic->IsChild && logic->CanUse(RG_HOOKSHOT));}),
|
||||||
Entrance(RR_GV_LOWER_STREAM, []{return logic->IsChild;}), //can use cucco as child
|
Entrance(RR_GV_LOWER_STREAM, []{return logic->IsChild;}), //can use cucco as child
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ void RegionTable_Init_GerudoValley() {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_BOTTOM, []{return true;}),
|
Entrance(RR_GF_GROUND_BOTTOM, []{return true;}),
|
||||||
Entrance(RR_GV_UPPER_STREAM, []{return true;}),
|
Entrance(RR_GV_UPPER_STREAM, []{return true;}),
|
||||||
Entrance(RR_GERUDO_VALLEY, []{return logic->IsChild || logic->CanUse(RG_EPONA) || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->CanFinishGerudoFortress();}),
|
Entrance(RR_GERUDO_VALLEY, []{return logic->IsChild || logic->CanUse(RG_EPONA) || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->TH_RescuedAllCarpenters;}),
|
||||||
Entrance(RR_GV_CARPENTER_TENT, []{return logic->IsAdult;}),
|
Entrance(RR_GV_CARPENTER_TENT, []{return logic->IsAdult;}),
|
||||||
Entrance(RR_GV_STORMS_GROTTO, []{return logic->IsAdult && logic->CanOpenStormsGrotto();}),
|
Entrance(RR_GV_STORMS_GROTTO, []{return logic->IsAdult && logic->CanOpenStormsGrotto();}),
|
||||||
Entrance(RR_GV_CRATE_LEDGE, []{return ctx->GetTrickOption(RT_DAMAGE_BOOST_SIMPLE) && logic->HasExplosives();}),
|
Entrance(RR_GV_CRATE_LEDGE, []{return ctx->GetTrickOption(RT_DAMAGE_BOOST_SIMPLE) && logic->HasExplosives();}),
|
||||||
|
|
|
@ -7,13 +7,14 @@ void RegionTable_Init_ThievesHideout() {
|
||||||
areaTable[RR_TH_NORTH_F1_CARPENTER_AREA] = Region("Thieves Hideout North F1 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_TH_NORTH_F1_CARPENTER_AREA] = Region("Thieves Hideout North F1 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->TH_CouldRescueF1NorthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
EventAccess(&logic->TH_CouldRescueF1NorthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
||||||
|
EventAccess(&logic->TH_RescuedAllCarpenters, []{return ((ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST) && logic->SmallKeys(RR_GF_GROUND_BOTTOM, 1)) || (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_GROUND_BOTTOM, 4))) && logic->TH_CouldRescueF1NorthCarpenter && logic->TH_CouldRescueF1SouthCarpenter && logic->TH_CouldRescueF2NorthCarpenter && logic->TH_CouldRescueF2SouthCarpenter;}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_NORTH_F1_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
LOCATION(RC_TH_NORTH_F1_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
||||||
LOCATION(RC_TH_NORTH_F1_CARPENTER_POT_1, logic->CanBreakPots()),
|
LOCATION(RC_TH_NORTH_F1_CARPENTER_POT_1, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_NORTH_F1_CARPENTER_POT_2, logic->CanBreakPots()),
|
LOCATION(RC_TH_NORTH_F1_CARPENTER_POT_2, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_NORTH_F1_CARPENTER_POT_3, logic->CanBreakPots()),
|
LOCATION(RC_TH_NORTH_F1_CARPENTER_POT_3, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->CanFinishGerudoFortress()),
|
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->TH_RescuedAllCarpenters),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_RED, []{return true;}),
|
Entrance(RR_GF_GROUND_RED, []{return true;}),
|
||||||
|
@ -23,6 +24,7 @@ void RegionTable_Init_ThievesHideout() {
|
||||||
areaTable[RR_TH_SOUTH_F1_CARPENTER_AREA] = Region("Thieves Hideout South F1 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_TH_SOUTH_F1_CARPENTER_AREA] = Region("Thieves Hideout South F1 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->TH_CouldRescueF1SouthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
EventAccess(&logic->TH_CouldRescueF1SouthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
||||||
|
EventAccess(&logic->TH_RescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_GROUND_BOTTOM, 4) && logic->TH_CouldRescueF1NorthCarpenter && logic->TH_CouldRescueF1SouthCarpenter && logic->TH_CouldRescueF2NorthCarpenter && logic->TH_CouldRescueF2SouthCarpenter;}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
LOCATION(RC_TH_SOUTH_F1_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
||||||
|
@ -33,7 +35,7 @@ void RegionTable_Init_ThievesHideout() {
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2, logic->CanBreakPots()),
|
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3, logic->CanBreakPots()),
|
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4, logic->CanBreakPots()),
|
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->CanFinishGerudoFortress()),
|
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->TH_RescuedAllCarpenters),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_RED, []{return true;}),
|
Entrance(RR_GF_GROUND_RED, []{return true;}),
|
||||||
|
@ -42,13 +44,14 @@ void RegionTable_Init_ThievesHideout() {
|
||||||
|
|
||||||
areaTable[RR_TH_NORTH_F2_CARPENTER_AREA] = Region("Thieves Hideout North F2 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_TH_NORTH_F2_CARPENTER_AREA] = Region("Thieves Hideout North F2 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->TH_CouldRescueF2NorhCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
EventAccess(&logic->TH_CouldRescueF2NorthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
||||||
|
EventAccess(&logic->TH_RescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_GROUND_BOTTOM, 4) && logic->TH_CouldRescueF1NorthCarpenter && logic->TH_CouldRescueF1SouthCarpenter && logic->TH_CouldRescueF2NorthCarpenter && logic->TH_CouldRescueF2SouthCarpenter;}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_NORTH_F2_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
LOCATION(RC_TH_NORTH_F2_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
||||||
LOCATION(RC_TH_NORTH_F2_CARPENTER_POT_1, logic->CanBreakPots()),
|
LOCATION(RC_TH_NORTH_F2_CARPENTER_POT_1, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_NORTH_F2_CARPENTER_POT_2, logic->CanBreakPots()),
|
LOCATION(RC_TH_NORTH_F2_CARPENTER_POT_2, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->CanFinishGerudoFortress()),
|
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->TH_RescuedAllCarpenters),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_MAGENTA, []{return true;}),
|
Entrance(RR_GF_ROOFTOP_MAGENTA, []{return true;}),
|
||||||
|
@ -57,10 +60,11 @@ void RegionTable_Init_ThievesHideout() {
|
||||||
areaTable[RR_TH_SOUTH_F2_CARPENTER_AREA] = Region("Thieves Hideout South F2 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_TH_SOUTH_F2_CARPENTER_AREA] = Region("Thieves Hideout South F2 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->TH_CouldRescueF2SouthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
EventAccess(&logic->TH_CouldRescueF2SouthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
||||||
|
EventAccess(&logic->TH_RescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_GROUND_BOTTOM, 4) && logic->TH_CouldRescueF1NorthCarpenter && logic->TH_CouldRescueF1SouthCarpenter && logic->TH_CouldRescueF2NorthCarpenter && logic->TH_CouldRescueF2SouthCarpenter;}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_SOUTH_F2_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
LOCATION(RC_TH_SOUTH_F2_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
||||||
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->CanFinishGerudoFortress()),
|
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->TH_RescuedAllCarpenters),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_WHITE, []{return true;}),
|
Entrance(RR_GF_ROOFTOP_WHITE, []{return true;}),
|
||||||
|
|
|
@ -1216,24 +1216,6 @@ namespace Rando {
|
||||||
return hasState;
|
return hasState;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Logic::CanFinishGerudoFortress() {
|
|
||||||
switch (ctx->GetOption(RSK_GERUDO_FORTRESS).Get()) {
|
|
||||||
case RO_GF_CARPENTERS_NORMAL:
|
|
||||||
return SmallKeys(RR_GF_GROUND_BOTTOM, 4) &&
|
|
||||||
TH_CouldRescueF1NorthCarpenter &&
|
|
||||||
TH_CouldRescueF1SouthCarpenter &&
|
|
||||||
TH_CouldRescueF2NorthCarpenter &&
|
|
||||||
TH_CouldRescueF2SouthCarpenter;
|
|
||||||
case RO_GF_CARPENTERS_FAST:
|
|
||||||
return SmallKeys(RR_GF_GROUND_BOTTOM, 1) && TH_CouldRescueF1NorthCarpenter;
|
|
||||||
case RO_GF_CARPENTERS_FREE:
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
assert(false);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Logic::CanStandingShield(){
|
bool Logic::CanStandingShield(){
|
||||||
return CanUse(RG_MIRROR_SHIELD) || (IsAdult && HasItem(RG_HYLIAN_SHIELD)) || CanUse(RG_DEKU_SHIELD);
|
return CanUse(RG_MIRROR_SHIELD) || (IsAdult && HasItem(RG_HYLIAN_SHIELD)) || CanUse(RG_DEKU_SHIELD);
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,6 +116,7 @@ class Logic {
|
||||||
bool TH_CouldRescueF1SouthCarpenter = false;
|
bool TH_CouldRescueF1SouthCarpenter = false;
|
||||||
bool TH_CouldRescueF2NorthCarpenter = false;
|
bool TH_CouldRescueF2NorthCarpenter = false;
|
||||||
bool TH_CouldRescueF2SouthCarpenter = false;
|
bool TH_CouldRescueF2SouthCarpenter = false;
|
||||||
|
bool TH_RescuedAllCarpenters = false;
|
||||||
bool GF_GateOpen = false;
|
bool GF_GateOpen = false;
|
||||||
bool GtG_GateOpen = false;
|
bool GtG_GateOpen = false;
|
||||||
bool DampesWindmillAccess = false;
|
bool DampesWindmillAccess = false;
|
||||||
|
@ -244,7 +245,6 @@ class Logic {
|
||||||
bool HasFireSource();
|
bool HasFireSource();
|
||||||
bool HasFireSourceWithTorch();
|
bool HasFireSourceWithTorch();
|
||||||
bool TradeQuestStep(RandomizerGet rg);
|
bool TradeQuestStep(RandomizerGet rg);
|
||||||
bool CanFinishGerudoFortress();
|
|
||||||
bool CanStandingShield();
|
bool CanStandingShield();
|
||||||
bool CanShield();
|
bool CanShield();
|
||||||
bool CanUseProjectile();
|
bool CanUseProjectile();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue