public override void OnStart() { Rect baseLoc = PlayerBaseLocation.GetBaseLocation(PlayerPosition.LEFT); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 10, new Vector(baseLoc.X - 10 * 2 - 1, 100), new Vector(0, 0), AsteroidType.NORMAL))); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 20, new Vector(baseLoc.X - 20 * 2, 200), new Vector(0, 0), AsteroidType.NORMAL))); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 10, new Vector(baseLoc.X + baseLoc.Width + 1, 100), new Vector(0, 0), AsteroidType.NORMAL))); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 20, new Vector(baseLoc.X + baseLoc.Width, 200), new Vector(0, 0), AsteroidType.NORMAL))); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 20, new Vector(300, 200), new Vector(0, 0), AsteroidType.GOLDEN))); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 20, new Vector(500, 200), new Vector(0, 0), AsteroidType.GOLDEN))); StatPowerUp sp = CreateNewStatPowerup(); sp.Position = new Vector(100, 100); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(sp)); sp = CreateNewStatPowerup(); sp.Position = new Vector(100, 200); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(sp)); sp = CreateNewStatPowerup(); sp.Position = new Vector(200, 100); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(sp)); sp = CreateNewStatPowerup(); sp.Position = new Vector(200, 200); GameLevelManager.SendNewObject(mgr, MakeObjectStatic(sp)); }
private void MineDrop() { Rect opponentLoc = PlayerBaseLocation.GetBaseLocation(me.GetPosition() == PlayerPosition.RIGHT ? PlayerPosition.LEFT : PlayerPosition.RIGHT); double xMin = opponentLoc.X; double xMax = opponentLoc.X + opponentLoc.Width; me.Mine.Shoot(new Point(sceneMgr.GetRandomGenerator().Next((int)xMin, (int)xMax), 1)); }
public AsteroidBurningControl(Asteroid parent) { asteroid = parent; maxHeatDistance = PlayerBaseLocation.GetBaseLocation(PlayerPosition.LEFT).Top - 150; minHeatDistance = SharedDef.ORBIT_AREA.Bottom; lastDistProcessed = -0.1f; step = 0; stepSize = 0.3f; }
public virtual void HitAsteroid(IDestroyable asteroid) { if (hit) { return; } else { hit = true; } if (bullet.Owner.IsCurrentPlayerOrBot()) { bullet.Owner.AddScoreAndShow(ScoreDefines.CANNON_HIT); if (bullet.Owner.IsCurrentPlayer()) { bullet.SceneMgr.FloatingTextMgr.AddFloatingText(ScoreDefines.CANNON_HIT, bullet.Center, FloatingTextManager.TIME_LENGTH_1, FloatingTextType.SCORE); } if (asteroid is UnstableAsteroid) { Rect opponentLoc = PlayerBaseLocation.GetBaseLocation(bullet.Owner.GetPosition() == PlayerPosition.RIGHT ? PlayerPosition.LEFT : PlayerPosition.RIGHT); double xMin = opponentLoc.X; double xMax = opponentLoc.X + opponentLoc.Width; if (asteroid.Position.Y > SharedDef.VIEW_PORT_SIZE.Height * 0.4 && asteroid.Position.X >= xMin && asteroid.Position.X <= xMax) { if (bullet.Owner.IsCurrentPlayer()) { bullet.SceneMgr.FloatingTextMgr.AddFloatingText(Strings.ft_score_cannon_unstable_above_enemy, bullet.Center, FloatingTextManager.TIME_LENGTH_4, FloatingTextType.BONUS_SCORE, FloatingTextManager.SIZE_BIG, false, true); } bullet.Owner.AddScoreAndShow(ScoreDefines.CANNON_DESTROYED_UNSTABLE_ASTEROID_ABOVE_ENEMY); } } } asteroid.TakeDamage(bullet.Damage, bullet); NetOutgoingMessage msg = bullet.SceneMgr.CreateNetMessage(); msg.Write((int)PacketType.BULLET_HIT); msg.Write(bullet.Id); msg.Write(asteroid.Id); msg.Write(bullet.Damage); bullet.SceneMgr.SendMessage(msg); EmmitorGroup g = ParticleEmmitorFactory.CreateBulletImplosionEmmitor(bullet.SceneMgr, bullet.Center, bullet.Color); g.Attach(bullet.SceneMgr, false); }
public override void OnStart() { Rect baseLoc = PlayerBaseLocation.GetBaseLocation(PlayerPosition.LEFT); GameLevelManager.SendNewObject(mgr, ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 10, new Vector(baseLoc.X - 10 * 2 - 1, 100), new Vector(0, 1), AsteroidType.NORMAL)); GameLevelManager.SendNewObject(mgr, ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 20, new Vector(baseLoc.X - 20 * 2, 200), new Vector(0, 1), AsteroidType.NORMAL)); GameLevelManager.SendNewObject(mgr, ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 10, new Vector(baseLoc.X + baseLoc.Width + 1, 100), new Vector(0, 1), AsteroidType.NORMAL)); GameLevelManager.SendNewObject(mgr, ServerSceneObjectFactory.CreateCustomAsteroid( mgr, 20, new Vector(baseLoc.X + baseLoc.Width, 200), new Vector(0, 1), AsteroidType.NORMAL)); baseLoc = PlayerBaseLocation.GetBaseLocation(PlayerPosition.RIGHT); GameLevelManager.SendNewObject(mgr, CreateAndSendNewStatPowerup(new Vector(baseLoc.X - 10 * 2 - 1, 100), new Vector(0, 1))); GameLevelManager.SendNewObject(mgr, CreateAndSendNewStatPowerup(new Vector(baseLoc.X - 20 * 2, 200), new Vector(0, 1))); GameLevelManager.SendNewObject(mgr, CreateAndSendNewStatPowerup(new Vector(baseLoc.X + baseLoc.Width + 1, 100), new Vector(0, 1))); GameLevelManager.SendNewObject(mgr, CreateAndSendNewStatPowerup(new Vector(baseLoc.X + baseLoc.Width, 200), new Vector(0, 1))); }
/// <summary> /// MiningModule nemuze letat az k bazim (narazil by a vybuchnul ;) /// </summary> /// <param name="tpf"></param> protected override void UpdateControl(float tpf) { TryInitOffsets(); Vector botVector = new Vector(0, SharedDef.SPECTATOR_MODULE_SPEED * tpf); Vector rightVector = new Vector(SharedDef.SPECTATOR_MODULE_SPEED * tpf, 0); if (IsMovingTop && (me.Position.Y - botVector.Y - leftTopOffset) > 0) { me.Position -= botVector; } if (IsMovingDown && (me.Position.Y + botVector.Y + rightBottomOffset) < PlayerBaseLocation.GetBaseLocation(PlayerPosition.LEFT).Top - 30) { me.Position += botVector; } if (IsMovingLeft && (me.Position.X - rightVector.X - leftTopOffset) > 0) { me.Position -= rightVector; } if (IsMovingRight && (me.Position.X + rightVector.X + rightBottomOffset) < SharedDef.VIEW_PORT_SIZE.Width) { me.Position += rightVector; } }
public OverlayControl(Asteroid parent) { asteroid = parent; maxHeatDistance = PlayerBaseLocation.GetBaseLocation(PlayerPosition.LEFT).Top - 150; minHeatDistance = SharedDef.ORBIT_AREA.Bottom + 50; }
private void GenerateMiningModulePositionAndColor(Player p) { if (p.IsActivePlayer()) { return; } Player friend = players.Find(other => other.GetId() == p.Data.FriendlyPlayerId); p.Data.SpecialColor = friend != null ? friend.Data.PlayerColor : p.Data.PlayerColor; p.Data.MiningModuleStartPos = new Vector( serverMgr.GetRandomGenerator().Next(0, (int)SharedDef.VIEW_PORT_SIZE.Width - 30), serverMgr.GetRandomGenerator().Next((int)SharedDef.LOWER_ORBIT_AREA.Top + 60, (int)PlayerBaseLocation.GetBaseLocation(PlayerPosition.LEFT).Top - 100)); }