public override void Paint(Level level) { base.Paint(level); Painter.Rect(level, this, 1, Tile.EvilWall); Painter.Fill(level, this, 2, Tile.EvilFloor); PaintTunnel(level, Tile.EvilFloor, GetCenterRect(), false, false, false); var dm = new DarkMage(); level.Area.Add(dm); var w = new Vector2(GetCenterVector().X, (Top + 3) * 16); dm.BottomCenter = w; for (var i = 0; i < 2; i++) { var campfire = new Campfire(); level.Area.Add(campfire); campfire.BottomCenter = w + new Vector2(24 * (i == 0 ? -1 : 1), 0); } var count = Math.Ceiling((GetWidth() - 6) / 2f); var pool = Items.GeneratePool(Items.GetPool(ItemPool.OldMan)); for (var i = 0; i < count; i++) { var stand = new DarkMageStand(); level.Area.Add(stand); stand.Center = new Vector2(Left + 3.5f + i * 2, Top + 4.5f) * 16; stand.SetItem(Items.CreateAndAdd(Items.GenerateAndRemove(pool), level.Area, false), null); } }
protected override void CreateGore(DiedEvent d) { base.CreateGore(d); if (saved) { return; } var heinur = new Heinur(); Area.Add(heinur); heinur.Center = Center - new Vector2(0, 32); var g = heinur.GetComponent <BkGraphicsComponent>(); g.Scale = Vector2.Zero; Timer.Add(() => { Tween.To(1, 0, x => g.Scale.X = x, 3f); Tween.To(1, 0, x => g.Scale.Y = x, 3f); }, 1f); var dm = new DarkMage(); Area.Add(dm); dm.Center = Center + new Vector2(0, 32); dm.GetComponent <AnimationComponent>().Animate(); AnimationUtil.Poof(dm.Center); var dmDialog = dm.GetComponent <DialogComponent>(); var heinurDialog = heinur.GetComponent <DialogComponent>(); foreach (var p in Area.Tagged[Tags.Player]) { p.RemoveComponent <PlayerInputComponent>(); } Camera.Instance.Targets.Clear(); Camera.Instance.Follow(dm, 1f); Camera.Instance.Follow(heinur, 1f); dmDialog.Start("dm_5", null, () => Timer.Add(() => { dmDialog.Close(); Camera.Instance.Targets.Clear(); Camera.Instance.Follow(dm, 1f); Camera.Instance.Follow(heinur, 1f); heinurDialog.Start("heinur_0", null, () => Timer.Add(() => { heinurDialog.Close(); heinur.Attract = true; Camera.Instance.Targets.Clear(); Camera.Instance.Follow(dm, 1f); Camera.Instance.Follow(heinur, 1f); heinur.Callback = () => { Camera.Instance.Targets.Clear(); Camera.Instance.Follow(dm, 1f); foreach (var p in Area.Tagged[Tags.Player]) { p.GetComponent <PlayerGraphicsComponent>().Hidden = true; } var bk = new bk.BurningKnight() { Passive = true }; Area.Add(bk); bk.Center = Center; bk.GetComponent <BkGraphicsComponent>().Animate(); Camera.Instance.Follow(bk, 1f); dmDialog.Start("dm_6", null, () => Timer.Add(() => { dmDialog.Close(); Camera.Instance.Targets.Clear(); Camera.Instance.Follow(bk, 1f); var nbkDialog = bk.GetComponent <DialogComponent>(); nbkDialog.Start("nbk_0", null, () => Timer.Add(() => { nbkDialog.Close(); Camera.Instance.Targets.Clear(); Camera.Instance.Follow(bk, 1f); Run.Win(); }, 2f)); }, 2f)); }; }, 1f)); }, 1f)); }