Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }