protected override ISceneObject SpawnBullet(Point point)
        {
            if (lastBullet != null)
            {
                lastBullet.GetControlOfType <HighlightingControl>().Enabled = false;
            }

            if (point.Y > Owner.GetBaseLocation().Y)
            {
                point.Y = Owner.GetBaseLocation().Y;
            }

            lastBullet = SceneObjectFactory.CreateSingularityBouncingBullet(SceneMgr, point, Owner);

            NetOutgoingMessage msg = SceneMgr.CreateNetMessage();

            lastBullet.WriteObject(msg);
            SceneMgr.SendMessage(msg);

            HighlightingControl hc = new HighlightingControl();

            lastBullet.AddControl(hc);

            SceneMgr.DelayedAttachToScene(lastBullet);
            return(lastBullet);
        }
        protected override ISceneObject SpawnMine(Point point)
        {
            SingularityMine mine = SceneObjectFactory.CreateAsteroidDroppingSingularityMine(SceneMgr, point, Owner);
            Vector          dir  = new Vector(endPoint.X - startPoint.X, endPoint.Y - startPoint.Y);

            dir.Normalize();
            mine.Direction = dir;

            LinearMovementControl c = mine.GetControlOfType <LinearMovementControl>();

            c.Speed = Owner.Data.MineFallingSpeed * SharedDef.MINE_LAUNCHER_SPEED_MODIFIER;

            if (SceneMgr.GameType != Gametype.SOLO_GAME)
            {
                NetOutgoingMessage msg = SceneMgr.CreateNetMessage();
                (mine as ISendable).WriteObject(msg);
                SceneMgr.SendMessage(msg);
            }

            HighlightingControl hc = new HighlightingControl();

            mine.AddControl(hc);

            lastMine = mine;
            SceneMgr.DelayedAttachToScene(mine);

            return(mine);
        }
Esempio n. 3
0
        public void OnPlayerCaughtPowerUp(Player plr, DeviceType type)
        {
            if (!plr.IsCurrentPlayerOrBot())
            {
                return;
            }

            Stat pickedStat = GetStatForDeviceTypeAndLevel(type, GetUpgradeLevel(plr, type));

            plr.Statistics.Stats.Add(pickedStat);

            Tuple <float, float> valAndPct = GenerateAndAddStatToPlayer(pickedStat, plr.Data);

            Vector textPos = new Vector(plr.GetBaseLocation().X + (plr.GetBaseLocation().Width / 2), plr.GetBaseLocation().Y - 40);

            sceneMgr.FloatingTextMgr.AddFloatingText(String.Format(Strings.Culture, Strings.ft_powerup,
                                                                   pickedStat.text, (valAndPct.Item2 > 0 ? Strings.char_plus : string.Empty), valAndPct.Item2.ToString("0.0", Strings.Culture)),
                                                     textPos, FloatingTextManager.TIME_LENGTH_3, FloatingTextType.SYSTEM, 14, true, true);

            NetOutgoingMessage msg = sceneMgr.CreateNetMessage();

            msg.Write((int)PacketType.PLAYER_RECEIVED_POWERUP);
            msg.Write(plr.GetId());
            msg.Write((byte)pickedStat.type);
            msg.Write(valAndPct.Item1);
            sceneMgr.SendMessage(msg);
        }
        public void Start(bool send = false)
        {
            particles.Clear();
            ending    = false;
            amount    = Amount;
            delayTime = Delay;
            timeLap   = 0;
            time      = 0;

            if (Dead)
            {
                Dead = false;
                SceneMgr.DelayedAttachToScene(this);
            }

            if (send)
            {
                Lidgren.Network.NetOutgoingMessage msg = SceneMgr.CreateNetMessage();

                msg.Write((int)PacketType.PARTICLE_EMMITOR_CREATE);
                WriteMe(msg);

                SceneMgr.SendMessage(msg);
            }
        }
Esempio n. 5
0
        private void SendPlayerBoughtUpgrade()
        {
            NetOutgoingMessage msg = SceneMgr.CreateNetMessage();

            msg.Write((int)PacketType.PLAYER_BOUGHT_UPGRADE);
            msg.Write(Owner.GetId());
            msg.Write((byte)currentWeapon.DeviceType);
            SceneMgr.SendMessage(msg);
        }
Esempio n. 6
0
        private void SendMessageWithHeal()
        {
            NetOutgoingMessage message = mgr.CreateNetMessage();

            message.Write((int)PacketType.PLAYER_HEAL);
            message.Write((int)owner.GetId());
            message.Write((int)owner.GetBaseIntegrity());

            mgr.SendMessage(message);
        }
Esempio n. 7
0
        private void SendScoreAndGoldUpdate()
        {
            NetOutgoingMessage msg = SceneMgr.CreateNetMessage();

            msg.Write((int)PacketType.PLAYER_SCORE_AND_GOLD);
            msg.Write(GetId());
            msg.Write(Data.MatchPoints);
            msg.Write(Data.Gold);
            SceneMgr.SendMessage(msg);
        }
Esempio n. 8
0
        public NetOutgoingMessage CreateShowMessage(String text, float time)
        {
            NetOutgoingMessage msg = mgr.CreateNetMessage();

            msg.Write((int)PacketType.SHOW_ALLERT_MESSAGE);
            msg.Write(text);
            msg.Write(time);

            return(msg);
        }
Esempio n. 9
0
        protected virtual ISceneObject SpawnMine(Point point)
        {
            SingularityMine mine = SceneObjectFactory.CreateDroppingSingularityMine(SceneMgr, point, Owner);

            if (SceneMgr.GameType != Gametype.SOLO_GAME)
            {
                NetOutgoingMessage msg = SceneMgr.CreateNetMessage();
                (mine as ISendable).WriteObject(msg);
                SceneMgr.SendMessage(msg);
            }

            SceneMgr.DelayedAttachToScene(mine);
            return(mine);
        }
        protected override ISceneObject SpawnBullet(Point point)
        {
            if (point.Y > Owner.GetBaseLocation().Y)
            {
                point.Y = Owner.GetBaseLocation().Y;
            }

            SingularityExplodingBullet bullet = SceneObjectFactory.CreateSingularityExploadingBullet(SceneMgr, point.ToVector(), Owner);

            NetOutgoingMessage msg = SceneMgr.CreateNetMessage();

            (bullet as ISendable).WriteObject(msg);
            SceneMgr.SendMessage(msg);

            SceneMgr.DelayedAttachToScene(bullet);

            return(bullet);
        }
Esempio n. 11
0
        protected virtual ISceneObject SpawnHook(Point point)
        {
            if (point.Y > Owner.GetBaseLocation().Y - 5)
            {
                point.Y = Owner.GetBaseLocation().Y - 5;
            }

            hook = CreateHook(point);

            NetOutgoingMessage msg = SceneMgr.CreateNetMessage();

            hook.WriteObject(msg);
            SceneMgr.SendMessage(msg);

            SceneMgr.DelayedAttachToScene(hook);

            return(hook);
        }
Esempio n. 12
0
        public override void OnRemove()
        {
            if (overlay != null)
            {
                overlay.DoRemoveMe();
            }

            if (effects != null)
            {
                effects.DoRemoveMe();
            }

            NetOutgoingMessage msg = SceneMgr.CreateNetMessage();

            msg.Write((int)PacketType.ASTEROID_DESTROYED);
            msg.Write(Id);
            SceneMgr.SendMessage(msg);
        }
        protected virtual ISceneObject SpawnBullet(Point point)
        {
            if (point.Y > Owner.GetBaseLocation().Y)
            {
                point.Y = Owner.GetBaseLocation().Y;
            }

            SingularityBullet bullet = SceneObjectFactory.CreateSingularityBullet(SceneMgr, point, Owner);

            if (SceneMgr.GameType != Gametype.SOLO_GAME)
            {
                NetOutgoingMessage msg = SceneMgr.CreateNetMessage();
                (bullet as ISendable).WriteObject(msg);
                SceneMgr.SendMessage(msg);
            }

            SceneMgr.DelayedAttachToScene(bullet);
            return(bullet);
        }
Esempio n. 14
0
        public void Attach(SceneMgr mgr, bool send = true)
        {
            mgr.GetParticleArea().BeginInvoke(new Action(() =>
            {
                list.ForEach(e =>
                {
                    e.Enabled = true;
                    mgr.DelayedAttachToScene(e);

                    if (send)
                    {
                        NetOutgoingMessage msg = mgr.CreateNetMessage();
                        e.WriteObject(msg);

                        mgr.SendMessage(msg);
                    }
                });
            }));
        }
Esempio n. 15
0
        private void SpawnSmallMeteors(int radius)
        {
            if (SceneMgr.GetPlayer(Destroyer) == null || !SceneMgr.GetPlayer(Destroyer).IsCurrentPlayerOrBot())
            {
                return;
            }

            int   rotation  = SceneMgr.GetRandomGenerator().Next(360);
            int   textureId = SceneMgr.GetRandomGenerator().Next(1, 18);
            float speed     = GetControlOfType <NewtonianMovementControl>().Speed / 2;

            MinorAsteroid a1 = SceneObjectFactory.CreateSmallAsteroid(SceneMgr, Direction, Center, rotation, textureId, radius, speed, Math.PI / 12);
            MinorAsteroid a2 = SceneObjectFactory.CreateSmallAsteroid(SceneMgr, Direction, Center, rotation, textureId, radius, speed, 0);
            MinorAsteroid a3 = SceneObjectFactory.CreateSmallAsteroid(SceneMgr, Direction, Center, rotation, textureId, radius, speed, -Math.PI / 12);

            a1.Parent = this;
            a2.Parent = this;
            a3.Parent = this;

            SceneMgr.DelayedAttachToScene(a1);
            SceneMgr.DelayedAttachToScene(a2);
            SceneMgr.DelayedAttachToScene(a3);

            NetOutgoingMessage message = SceneMgr.CreateNetMessage();

            message.Write((int)PacketType.MINOR_ASTEROID_SPAWN);
            message.Write(speed);
            message.Write(radius);
            message.Write(Direction);
            message.Write(Center);
            message.Write(rotation);
            message.Write(textureId);
            message.Write(Destroyer);
            message.Write(a1.Id);
            message.Write(a2.Id);
            message.Write(a3.Id);
            message.Write(Id);

            SceneMgr.SendMessage(message);
        }