public void LoadReplayAndStart(SoundodgerLevel level, Replay replay, LevelSettings settings) { player = new ReplayingPlayer(replay); Replay = replay; ActiveMod = replay.Mod; hitIterator = new TimeIter <TsVal <InvincibilityType> >( replay.Hits, x => x.Time, OnNewHit); slomoIterator = new TimeIter <TsVal <bool> >( replay.SlomoToggles, x => x.Time, OnNewSlomo); BurstShot.InitRandom(replay.BurstSeed); watchingReplayText = new SimpleText { Text = $"[ replay ]", Font = Fonts.Content.Orkney13, Color = new Color(Color.Gray, 0.8f), Position = new Vector2(NoisEvader.ScreenBounds.Width * 0.5f, NoisEvader.ScreenBounds.Height * 0.95f), YOrigin = YOrigin.Center, XOrigin = XOrigin.Center }; InitAndStart(level, ActiveMod, settings); }
public ReplayingPlayer(Replay replay) : base() { this.replay = replay; positionIterator = new TimeIter <TsVal <Vector2> >( replay.PlayerPositions, x => x.Time, OnNewPosition); heartIterator = new TimeIter <float>( replay.Hearts, x => x, OnNewHeart); }