static OrbitalRegistry() { Define("prism", o => { var orbital = new Prism(); o.Area.Add(orbital); return(orbital); }); Define("goo", o => { var orbital = new Orbital(); o.Area.Add(orbital); var g = new ScalableSliceComponent("items", "bk:goo") { ShadowZ = 2 }; orbital.AddComponent(g); g.AddShadow(); g.SetOwnerSize(); orbital.AddComponent(new CircleBodyComponent(0, 0, 6, BodyType.Dynamic, true)); orbital.OnCollision += (or, e) => { if (e is Projectile p && p.Owner != orbital.Owner) { p.Break(); } }; return(orbital); });
public override void AddComponents() { base.AddComponents(); if (region != null) { Width = region.Width; Height = region.Height; var component = new ScalableSliceComponent(region); AddComponent(component); component.Scale = Vector2.Zero; component.Origin = new Vector2(Width / 2, Height / 2); task = Tween.To(1f, component.Scale.X, x => component.Scale = new Vector2(x), 0.25f, Ease.BackOut); } else { var size = Font.Medium.MeasureString(text); Width = size.Width; Height = size.Height; var component = new TextGraphicsComponent(text); AddComponent(component); component.Scale = 0; task = Tween.To(component, new { Scale = 1.3f }, 0.25f, Ease.BackOut); } Depth = Layers.InGameUi; CenterX = entity.CenterX + offset; Y = entity.Y - Height; y = 12; Tween.To(0, y, x => y = x, 0.2f); UpdatePosition(); }
public override void AddComponents() { base.AddComponents(); var s = new ScalableSliceComponent("items", "bk:burning_king_sword") { ShadowZ = 2 }; AddComponent(s); s.AddShadow(); AlwaysActive = true; AlwaysVisible = true; AddComponent(new RectBodyComponent(0, 0, 11, 26, center: true) { KnockbackModifier = 0 }); SetMaxHp(5); AddComponent(new OrbitalComponent { Radius = 32 }); RemoveTag(Tags.LevelSave); s.Scale.X = 0; s.Scale.Y = 0; Tween.To(1, s.Scale.X, x => s.Scale.X = x, 0.4f, Ease.QuadOut); Tween.To(1, s.Scale.Y, x => s.Scale.Y = x, 0.4f, Ease.QuadOut); Height = 26; // Width = 11; }