public OverworldMap(FF1Rom rom, IMapEditFlags flags) { _rom = rom; var mapLocationRequirements = ItemLocations.MapLocationRequirements.ToDictionary(x => x.Key, x => x.Value.ToList()); if (flags.MapVolcanoIceRiver) { MapEditsToApply.Add(VolcanoIceRiver); mapLocationRequirements[MapLocation.GurguVolcano].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.CresentLake].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.ElflandTown].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.ElflandCastle].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.NorthwestCastle].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.MarshCave].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.DwarfCave].Add(MapChange.Bridge | MapChange.Canoe); } if (flags.MapConeriaDwarves) { MapEditsToApply.Add(ConeriaToDwarves); mapLocationRequirements[MapLocation.DwarfCave] = new List <MapChange> { MapChange.None }; } if (flags.MapTitansTrove) { mapLocationRequirements[MapLocation.TitansTunnelWest] = new List <MapChange> { MapChange.Canal | MapChange.Ship | MapChange.TitanFed, MapChange.Airship | MapChange.TitanFed }; } MapLocationRequirements = mapLocationRequirements; }
public OverworldMap(FF1Rom rom, IMapEditFlags flags) { _rom = rom; var mapLocationRequirements = ItemLocations.MapLocationRequirements.ToDictionary(x => x.Key, x => x.Value.ToList()); if (flags.MapOnracDock) { MapEditsToApply.Add(OnracDock); mapLocationRequirements[MapLocation.Onrac].Add(MapChange.Ship | MapChange.Canal); mapLocationRequirements[MapLocation.Caravan].Add(MapChange.Ship | MapChange.Canal | MapChange.Canoe); mapLocationRequirements[MapLocation.Waterfall].Add(MapChange.Ship | MapChange.Canal | MapChange.Canoe); } if (flags.MapMirageDock) { MapEditsToApply.Add(MirageDock); mapLocationRequirements[MapLocation.MirageTower].Add(MapChange.Ship | MapChange.Canal | MapChange.Chime); } if (flags.MapVolcanoIceRiver) { MapEditsToApply.Add(VolcanoIceRiver); mapLocationRequirements[MapLocation.GurguVolcano].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.CresentLake].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.ElflandTown].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.ElflandCastle].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.NorthwestCastle].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.MarshCave].Add(MapChange.Bridge | MapChange.Canoe); mapLocationRequirements[MapLocation.AirshipLocation].Add(MapChange.Bridge | MapChange.Canoe); if (flags.MapCanalBridge) { mapLocationRequirements[MapLocation.DwarfCave].Add(MapChange.Bridge | MapChange.Canoe); } } if (flags.MapConeriaDwarves) { MapEditsToApply.Add(ConeriaToDwarves); mapLocationRequirements[MapLocation.DwarfCave].Add(MapChange.None); if (flags.MapCanalBridge) { mapLocationRequirements[MapLocation.GurguVolcano].Add(MapChange.Canoe); mapLocationRequirements[MapLocation.CresentLake].Add(MapChange.Canoe); mapLocationRequirements[MapLocation.ElflandTown].Add(MapChange.Canoe); mapLocationRequirements[MapLocation.ElflandCastle].Add(MapChange.Canoe); mapLocationRequirements[MapLocation.NorthwestCastle].Add(MapChange.Canoe); mapLocationRequirements[MapLocation.MarshCave].Add(MapChange.Canoe); mapLocationRequirements[MapLocation.AirshipLocation].Add(MapChange.Canoe); if (flags.MapVolcanoIceRiver) { mapLocationRequirements[MapLocation.IceCave].Add(MapChange.Canoe); mapLocationRequirements[MapLocation.Pravoka].Add(MapChange.Canoe); mapLocationRequirements[MapLocation.MatoyasCave].Add(MapChange.Canoe); mapLocationRequirements[MapLocation.ShipLocation].Add(MapChange.Canoe); } } } if (flags.TitansTrove) { mapLocationRequirements[MapLocation.TitansTunnelWest] = new List <MapChange> { MapChange.Canal | MapChange.Ship | MapChange.TitanFed, MapChange.Airship | MapChange.TitanFed }; } MapLocationRequirements = mapLocationRequirements; }