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); }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); } }); })); }
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); }