Ejemplo n.º 1
0
            public override void Init()
            {
                base.Init();

                Self.GetComponent <AudioEmitterComponent>().Emit("mob_hive_breaking");
                Self.tree = null;

                var y = Self.Y;
                var c = Self.GetComponent <MobAnimationComponent>();

                Tween.To(0, c.ShadowOffset, x => c.ShadowOffset = x, 0.4f, Ease.QuadIn);
                Tween.To(y + ZHeight, y, x => Self.Y            = x, 0.4f, Ease.QuadIn).OnEnd = () => {
                    Audio.PlaySfx("mob_hive_release");

                    Self.AnimateDeath(null);
                    Self.GetComponent <AudioEmitterComponent>().StopAll();

                    var am = 16;

                    for (var i = 0; i < am; i++)
                    {
                        var a = Math.PI * 2 * (((float)i) / am) + Rnd.Float(-1f, 1f);
                        var p = Projectile.Make(Self, "circle", a, Rnd.Float(3f, 10f), scale: Rnd.Float(0.4f, 1f));
                        p.Color       = ProjectileColor.Orange;
                        p.BounceLeft  = 5;
                        p.Controller += SlowdownProjectileController.Make(0.25f, 0.5f, 1f);
                    }

                    for (var i = 0; i < Rnd.Int(4, 10); i++)
                    {
                        var bee = GenerateBee();
                        Self.Area.Add(bee);
                        bee.Center = Self.Center;
                    }
                };
            }