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);
            });
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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;
        }