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); } }
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); } } }