private void Level_Begin(On.Celeste.Level.orig_Begin orig, Level self)
 {
     orig(self);
     if (Settings.SimplifiedGraphics && self.Wipe != null && self.Session.StartedFromBeginning)
     {
         Color wipeColor = ScreenWipe.WipeColor;
         ScreenWipe.WipeColor  = Color.Transparent;
         self.Wipe.OnComplete += () => ScreenWipe.WipeColor = wipeColor;
     }
 }
 private void LoadLevelDatas(On.Celeste.Level.orig_Begin orig, Level self)
 {
     if (!Settings.EndScreenAsLast)
     {
         listOfLevels = randomizeOrder(new List <LevelData>(self.Session.MapData.Levels));
     }
     if (Settings.EndScreenAsLast)
     {
         listOfLevels = pseudoRandomizeOrder(new List <LevelData>(self.Session.MapData.Levels));
     }
     orig(self);
 }
        private static void LevelOnBegin(On.Celeste.Level.orig_Begin orig, Level level)
        {
            orig(level);
            if (!IsLoadStart)
            {
                return;
            }

            var loadedDict = level.FindAllToDict <Entity>();

            var notLoadedEntities = SavedEntitiesDict.Where(pair => !loadedDict.ContainsKey(pair.Key))
                                    .ToDictionary(p => p.Key, p => p.Value);

            if (notLoadedEntities.Count > 0)
            {
                RestoreAction.EntitiesSavedButNotLoaded(level, notLoadedEntities);
            }
        }
Exemple #4
0
        private void onLevelBegin(On.Celeste.Level.orig_Begin orig, Level self)
        {
            orig(self);

            onLevelBegin();

            // check if we are starting a set seed randomizer session.
            if (ExtendedVariantsModule.Settings.ChangeVariantsRandomly && ExtendedVariantsModule.Settings.RandoSetSeed != null)
            {
                // the seed is actually the set seed + starting level seed.
                // this way, this is consistent when we start the same level, but we don't get the same set of variants all the time either.
                string setSeedString = ExtendedVariantsModule.Settings.RandoSetSeed + "/" + self.Session.LevelData.LoadSeed.ToString();
                int    setSeed       = setSeedString.GetHashCode();

                Logger.Log(LogLevel.Info, "ExtendedVariantMode/VariantRandomizer", $"Variant randomizer seed is: [{setSeedString}] => {setSeed}");

                randomGenerator = new Random(setSeed);
                foreach (AbstractExtendedVariant variant in ExtendedVariantsModule.Instance.VariantHandlers.Values)
                {
                    variant.SetRandomSeed(setSeed);
                }
            }
        }