Exemplo n.º 1
0
        public override void Initialize(ItemLocationMap _, GCM gameContentManager)
        {
            GameContentManager = gameContentManager;

            var saveFile      = (GameSave)Dynamic.SaveFile;
            var seed          = saveFile.GetSeed();
            var fillingMethod = saveFile.GetFillingMethod();

            if (!seed.HasValue)
            {
                seed = Seed.Zero;
            }

            Console.Out.WriteLine($"Seed: {seed}");

            seedOptions = seed.Value.Options;

            ItemLocations = Randomizer.Randomize(seed.Value, fillingMethod);
            ItemLocations.BaseOnSave(Level.GameSave);

            ItemTrackerUplink.UpdateState(ItemTrackerState.FromItemLocationMap(ItemLocations));

            LevelReflected._random = new DeRandomizer(LevelReflected._random, seed.Value);

            ItemManipulator.Initialize(ItemLocations);
        }
        private void ResetItem(ItemManipulator item)
        {
            var target = item.target;

            item.Reset();

            //remove all classes that might have been added
            //to the target while they were in use
            target.RemoveFromClassList(hiddenItemClassname);
            target.RemoveFromClassList(checkedItemClassname);
            target.RemoveFromClassList(disabledItemClassname);

            target.RemoveFromClassList(openedItemClassname);
            target.RemoveFromClassList(hoveredItemClassname);
        }
Exemplo n.º 3
0
        public override void Initialize(ItemLocationMap _, GCM gameContentManager)
        {
            GameContentManager = gameContentManager;

            var saveFile      = Save;
            var seed          = saveFile.GetSeed();
            var fillingMethod = saveFile.GetFillingMethod();
            var settings      = saveFile.GetSettings();

            ScreenManager.Log.SetSettings(settings);
            gameContentManager.UpdateMinimapColors(settings);

            if (!seed.HasValue)
            {
                seed = Seed.Zero;
            }

            Console.Out.WriteLine($"Seed: {seed}");

            seedOptions = seed.Value.Options;
            Settings    = settings;

            try
            {
                ItemLocations = Randomizer.Randomize(seed.Value, fillingMethod, Level.GameSave);
            }
            catch (ConnectionFailedException e)
            {
                SendBackToMainMenu(e.Message);
                return;
            }

            ItemLocations.Initialize(Level.GameSave);

            ItemTrackerUplink.UpdateState(ItemTrackerState.FromItemLocationMap(ItemLocations));

            LevelReflected._random = new DeRandomizer(LevelReflected._random, seed.Value);

            ItemManipulator.Initialize(ItemLocations);

            if (settings.DamageRando.Value != "Off")
            {
                OrbDamageManager.PopulateOrbLookups(Level.GameSave, settings.DamageRando.Value, settings.DamageRandoOverrides.Value);
            }

            BestiaryManager.UpdateBestiary(Level, settings);
            if (!saveFile.GetSaveBool("IsFightingBoss"))
            {
                BestiaryManager.RefreshBossSaveFlags(Level);
            }

            if (seedOptions.Archipelago)
            {
                Client.SetStatus(ArchipelagoClientState.ClientPlaying);

                deathLinkService = new DeathLinker(settings, Client.GetDeathLinkService());
            }

#if DEBUG
            ScreenManager.Console.AddCommand(new TeleportCommand(() => Level));
            ScreenManager.Console.AddCommand(new GiveRelicCommand(() => Level));
            ScreenManager.Console.AddCommand(new GiveOrbCommand(() => Level));
            ScreenManager.Console.AddCommand(new GiveFamiliarCommand(() => Level));
#endif
        }