Skip to content

Commit

Permalink
Fixed Hammer House accessibility in Entrance rando.
Browse files Browse the repository at this point in the history
Fixed Bombable Shack accessibility in Entrance rando.
Fixed EDM Top Connector accessibility in Entrance rando.
Fixed Misery Mire entrance accessibility in Entrance rando.
Fixed Dark Central Bonk Rocks accessibility in Entrance rando.
Fixed Floating Island and Bumper Cave items not showing in Entrance rando.
Fixed Bumper Cave accessibility.
Fixed Rupee Cave accessibility.
Fixed Turtle Rock Tunnel region accessibility in Inverted Entrance rando.
Fixed West Dark Death Mountain bottom region accessibility by flute in Inverted rando.
Fixed Castle Tower Entrance accessibility in Inverted Entrance rando.
Added markable item to the Bumper Cave.
Incremented version from 0.3.0 to 0.3.1 for release.
  • Loading branch information
trippsc2 committed Mar 27, 2020
1 parent 6c6b502 commit d49ab43
Show file tree
Hide file tree
Showing 6 changed files with 107 additions and 30 deletions.
49 changes: 44 additions & 5 deletions OpenTracker.Models/EntranceSection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -549,7 +549,7 @@ public EntranceSection(Game game, LocationID iD)
if (_game.Mode.WorldState == WorldState.Inverted)
{
if (_game.Items.Has(ItemType.TowerCrystals))
return AccessibilityLevel.None;
return AccessibilityLevel.Normal;
}
return AccessibilityLevel.None;
Expand Down Expand Up @@ -1012,6 +1012,9 @@ public EntranceSection(Game game, LocationID iD)
return AccessibilityLevel.None;
};

itemReqs.Add(_game.Items[ItemType.Gloves]);
itemReqs.Add(_game.Items[ItemType.MoonPearl]);

break;
case LocationID.SkullWoodsBack:

Expand Down Expand Up @@ -1079,8 +1082,8 @@ public EntranceSection(Game game, LocationID iD)
case LocationID.HammerHouse:

Name = "House";
_standardItemProvided = _game.Items[ItemType.DarkWorldWestAccess];
_invertedItemProvided = _game.Items[ItemType.DarkWorldWestAccess];
_standardItemProvided = _game.Items[ItemType.HammerHouseAccess];
_invertedItemProvided = _game.Items[ItemType.HammerHouseAccess];
_standardRegion = _game.Regions[RegionID.DarkWorldWest];
_invertedRegion = _game.Regions[RegionID.DarkWorldWest];

Expand All @@ -1101,6 +1104,9 @@ public EntranceSection(Game game, LocationID iD)
return AccessibilityLevel.None;
};

itemReqs.Add(_game.Items[ItemType.Hammer]);
itemReqs.Add(_game.Items[ItemType.MoonPearl]);

break;
case LocationID.DarkVillageFortuneTeller:

Expand Down Expand Up @@ -1179,6 +1185,8 @@ public EntranceSection(Game game, LocationID iD)
return AccessibilityLevel.None;
};

itemReqs.Add(_game.Items[ItemType.MoonPearl]);

break;
case LocationID.HammerPegsEntrance:

Expand Down Expand Up @@ -1334,6 +1342,9 @@ public EntranceSection(Game game, LocationID iD)
return AccessibilityLevel.None;
};

itemReqs.Add(_game.Items[ItemType.Boots]);
itemReqs.Add(_game.Items[ItemType.MoonPearl]);

break;
case LocationID.SouthOfGroveEntrance:

Expand Down Expand Up @@ -1858,6 +1869,16 @@ public EntranceSection(Game game, LocationID iD)
return AccessibilityLevel.None;
};

itemReqs.Add(_game.Items[ItemType.MoonPearl]);
itemReqs.Add(_game.Items[ItemType.Sword]);
itemReqs.Add(_game.Items[ItemType.Hammer]);
itemReqs.Add(_game.Items[ItemType.Bombos]);
itemReqs.Add(_game.Items[ItemType.BombosDungeons]);
itemReqs.Add(_game.Items[ItemType.Ether]);
itemReqs.Add(_game.Items[ItemType.EtherDungeons]);
itemReqs.Add(_game.Items[ItemType.Quake]);
itemReqs.Add(_game.Items[ItemType.QuakeDungeons]);

break;
case LocationID.MireShackEntrance:

Expand Down Expand Up @@ -2186,10 +2207,28 @@ public EntranceSection(Game game, LocationID iD)
Name = "Cave";
_standardItemProvided = _game.Items[ItemType.DeathMountainEastTopConnectorAccess];
_invertedItemProvided = _game.Items[ItemType.DeathMountainEastTopConnectorAccess];
_standardRegion = _game.Regions[RegionID.DeathMountainEastTop];
_standardRegion = _game.Regions[RegionID.LightWorld];
_invertedRegion = _game.Regions[RegionID.DeathMountainEastTop];

GetAccessibility = () => { return AccessibilityLevel.Normal; };
GetAccessibility = () =>
{
if (_game.Mode.WorldState == WorldState.StandardOpen)
{
if (_game.Items.Has(ItemType.TurtleRockSafetyDoorAccess) &&
_game.Items.Has(ItemType.Mirror))
return AccessibilityLevel.Normal;
return _game.Regions[RegionID.DeathMountainEastTop].Accessibility;
}
if (_game.Mode.WorldState == WorldState.Inverted)
return AccessibilityLevel.Normal;
return AccessibilityLevel.None;
};

itemReqs.Add(_game.Items[ItemType.Mirror]);
itemReqs.Add(_game.Items[ItemType.TurtleRockSafetyDoorAccess]);

break;
case LocationID.ParadoxCaveTop:
Expand Down
32 changes: 22 additions & 10 deletions OpenTracker.Models/ItemSection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1228,8 +1228,9 @@ public ItemSection(Game game, Location location, int index = 0)

_baseTotal = 1;
Name = "Ledge";
_standardRegion = _game.Regions[RegionID.DarkWorldWest];
_invertedRegion = _game.Regions[RegionID.LightWorld];
_standardRegion = _game.Regions[RegionID.LightWorld];
_invertedRegion = _game.Regions[RegionID.DarkWorldSouth];
HasMarking = true;

GetAccessibility = () =>
{
Expand All @@ -1238,16 +1239,23 @@ public ItemSection(Game game, Location location, int index = 0)
if (_game.Mode.WorldState == WorldState.StandardOpen)
{
if (!_game.Mode.EntranceShuffle.Value)
AccessibilityLevel dWWest = _game.Regions[RegionID.DarkWorldWest].Accessibility;
if (dWWest >= AccessibilityLevel.SequenceBreak)
{
if (_game.Items.Has(ItemType.Gloves) && _game.Items.Has(ItemType.Cape))
if (!_game.Mode.EntranceShuffle.Value)
{
if (_game.Mode.ItemPlacement == ItemPlacement.Advanced ||
_game.Items.Has(ItemType.Hookshot))
return AccessibilityLevel.Normal;
if (_game.Items.Has(ItemType.Gloves) && _game.Items.Has(ItemType.Cape))
{
if (_game.Mode.ItemPlacement == ItemPlacement.Advanced ||
_game.Items.Has(ItemType.Hookshot))
return (AccessibilityLevel)Math.Min((byte)dWWest, (byte)AccessibilityLevel.Normal);
return AccessibilityLevel.SequenceBreak;
return (AccessibilityLevel)Math.Min((byte)dWWest, (byte)AccessibilityLevel.SequenceBreak);
}
}
return AccessibilityLevel.Inspect;
}
}
Expand All @@ -1256,10 +1264,12 @@ public ItemSection(Game game, Location location, int index = 0)
if (_game.Items.Has(ItemType.DeathMountainExitAccess) && _game.Items.Has(ItemType.Mirror))
return AccessibilityLevel.Normal;
AccessibilityLevel lightWorld = _game.Regions[RegionID.LightWorld].Accessibility;
if (!_game.Mode.EntranceShuffle.Value && _game.Items.Has(ItemType.MoonPearl) &&
_game.Items.Has(ItemType.Cape) && _game.Items.Has(ItemType.Gloves) &&
_game.Items.Has(ItemType.Mirror))
return AccessibilityLevel.Normal;
_game.Items.Has(ItemType.Mirror) && lightWorld >= AccessibilityLevel.SequenceBreak)
return (AccessibilityLevel)Math.Min((byte)lightWorld, (byte)AccessibilityLevel.Normal);
if (_game.Regions[RegionID.DarkWorldWest].Accessibility >= AccessibilityLevel.SequenceBreak)
return AccessibilityLevel.Inspect;
Expand All @@ -1268,9 +1278,11 @@ public ItemSection(Game game, Location location, int index = 0)
return AccessibilityLevel.None;
};

itemReqs.Add(_game.Items[ItemType.BumperCaveAccess]);
itemReqs.Add(_game.Items[ItemType.Gloves]);
itemReqs.Add(_game.Items[ItemType.Cape]);
itemReqs.Add(_game.Items[ItemType.Hookshot]);
itemReqs.Add(_game.Items[ItemType.DeathMountainExitAccess]);
itemReqs.Add(_game.Items[ItemType.Mirror]);
itemReqs.Add(_game.Items[ItemType.MoonPearl]);

Expand Down
11 changes: 6 additions & 5 deletions OpenTracker.Models/Location.cs
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,11 @@ public Location(Game game, LocationID iD)
{
EntranceShuffle = false
}));
MapLocations.Add(new MapLocation(this, MapID.DarkWorld, 680, 315,
new Mode()
{
EntranceShuffle = true
}));
itemSections = 1;
break;
case LocationID.Dam:
Expand Down Expand Up @@ -514,11 +519,7 @@ public Location(Game game, LocationID iD)
break;
case LocationID.FloatingIsland:
Name = "Floating Island";
MapLocations.Add(new MapLocation(this, MapID.LightWorld, 1627, 40,
new Mode()
{
EntranceShuffle = false
}));
MapLocations.Add(new MapLocation(this, MapID.LightWorld, 1627, 40, new Mode()));
MapLocations.Add(new MapLocation(this, MapID.DarkWorld, 1627, 40,
new Mode()
{
Expand Down
31 changes: 28 additions & 3 deletions OpenTracker.Models/Region.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1200,9 +1200,15 @@ public Region(Game game, RegionID iD)
// Inverted mode
if (_game.Mode.WorldState == WorldState.Inverted)
{
AccessibilityLevel lightWorld = AccessibilityLevel.None;
AccessibilityLevel dDMTop = AccessibilityLevel.None;
AccessibilityLevel dMWestBottom = AccessibilityLevel.None;
// Access via Flute drop spot
if (_game.Items.Has(ItemType.Flute) && _game.Items.Has(ItemType.MoonPearl) &&
!excludedRegions.Contains(RegionID.LightWorld))
lightWorld = _game.Regions[RegionID.LightWorld].GetAccessibility(newExcludedRegions);
// Access via Dark Death Mountain top
if (!excludedRegions.Contains(RegionID.DarkDeathMountainTop))
dDMTop = _game.Regions[RegionID.DarkDeathMountainTop].GetAccessibility(newExcludedRegions);
Expand All @@ -1211,7 +1217,7 @@ public Region(Game game, RegionID iD)
if (_game.Items.Has(ItemType.Mirror) && !excludedRegions.Contains(RegionID.DeathMountainWestBottom))
dMWestBottom = _game.Regions[RegionID.DeathMountainWestBottom].GetAccessibility(newExcludedRegions);
return (AccessibilityLevel)Math.Max((byte)dDMTop, (byte)dMWestBottom);
return (AccessibilityLevel)Math.Max(Math.Max((byte)lightWorld, (byte)dDMTop), (byte)dMWestBottom);
}
// Default to no access
Expand All @@ -1222,9 +1228,11 @@ public Region(Game game, RegionID iD)
itemReqs.Add(_game.Items[ItemType.Mirror]);
itemReqs.Add(_game.Items[ItemType.Gloves]);
itemReqs.Add(_game.Items[ItemType.Lamp]);
itemReqs.Add(_game.Items[ItemType.Flute]);

_observedRegions.Add(RegionID.DarkDeathMountainTop);
_observedRegions.Add(RegionID.DeathMountainWestBottom);
_observedRegions.Add(RegionID.LightWorld);

break;
case RegionID.TurtleRockTunnel:
Expand All @@ -1247,13 +1255,30 @@ public Region(Game game, RegionID iD)
// Default to no access
return AccessibilityLevel.None;
};
GetIndirectAccessibility = (excludedRegions) => { return AccessibilityLevel.None; };
GetIndirectAccessibility = (excludedRegions) =>
{
List<RegionID> newExcludedRegions = excludedRegions.GetRange(0, excludedRegions.Count);
newExcludedRegions.Add(ID);
// Inverted mode
if (_game.Mode.WorldState == WorldState.Inverted)
{
// Access via East Death Mountain top by mirror from Spiral Cave or Mimic Cave ledges
if (_game.Items.Has(ItemType.Mirror) && !excludedRegions.Contains(RegionID.DeathMountainEastTop))
return _game.Regions[RegionID.DeathMountainEastTop].Accessibility;
}
// Default to no access
return AccessibilityLevel.None;
};

itemReqs.Add(_game.Items[ItemType.TurtleRockTunnelAccess]);
itemReqs.Add(_game.Items[ItemType.SpiralCaveTopAccess]);
itemReqs.Add(_game.Items[ItemType.MimicCaveAccess]);
itemReqs.Add(_game.Items[ItemType.Mirror]);

_observedRegions.Add(RegionID.DeathMountainEastTop);

break;
case RegionID.HyruleCastle:

Expand Down Expand Up @@ -1720,7 +1745,7 @@ public Region(Game game, RegionID iD)
(_game.Items.Has(ItemType.Quake) &&
(_game.Items[ItemType.QuakeDungeons].Current == 1 ||
_game.Items[ItemType.QuakeDungeons].Current == 3))) &&
excludedRegions.Contains(RegionID.MireArea))
!excludedRegions.Contains(RegionID.MireArea))
return _game.Regions[RegionID.MireArea].GetAccessibility(newExcludedRegions);
}
Expand Down
8 changes: 4 additions & 4 deletions OpenTracker.Setup/OpenTracker.Setup.vdproj
Original file line number Diff line number Diff line change
Expand Up @@ -189,15 +189,15 @@
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:OpenTracker"
"ProductCode" = "8:{A352DD4B-A96F-41D1-9AE8-8345B5BA6DD5}"
"PackageCode" = "8:{C6E5C997-E931-4488-8D94-4B76F0C6B7BB}"
"ProductCode" = "8:{87591AB8-0776-40A4-BE42-29E2EAD67C54}"
"PackageCode" = "8:{2629EC16-3DED-4498-B2AC-A7B960634038}"
"UpgradeCode" = "8:{C98C2121-B4C5-473A-9B86-5407FEFFE8F1}"
"AspNetVersion" = "8:2.0.50727.0"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:TRUE"
"ProductVersion" = "8:0.3.0"
"ProductVersion" = "8:0.3.1"
"Manufacturer" = "8:OpenTracker"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
Expand Down Expand Up @@ -739,7 +739,7 @@
{
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_582274CEB8A7425789CE7B6B45EFE16C"
{
"SourcePath" = "8:..\\OpenTracker\\obj\\Debug\\netcoreapp3.1\\OpenTracker.exe"
"SourcePath" = "8:..\\OpenTracker\\obj\\Release\\netcoreapp3.1\\OpenTracker.exe"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B21EA2C01C014AC99A33B72F50C26B5D"
Expand Down
6 changes: 3 additions & 3 deletions OpenTracker/OpenTracker.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
<TargetFramework>netcoreapp3.1</TargetFramework>
<ApplicationIcon>triforce.ico</ApplicationIcon>
<Win32Resource />
<Version>0.3.0</Version>
<Version>0.3.1</Version>
<Authors>Tripp</Authors>
<AssemblyVersion>0.3.0.0</AssemblyVersion>
<FileVersion>0.3.0.0</FileVersion>
<AssemblyVersion>0.3.1.0</AssemblyVersion>
<FileVersion>0.3.1.0</FileVersion>
</PropertyGroup>
<ItemGroup>
<Compile Update="**\*.xaml.cs">
Expand Down

0 comments on commit d49ab43

Please sign in to comment.