public static void CreateAndSendNewStatPowerup(ServerMgr serverMgr) { StatPowerUp p = ServerSceneObjectFactory.CreateStatPowerUp(serverMgr, (DeviceType)serverMgr.GetRandomGenerator().Next((int)DeviceType.DEVICE_FIRST + 1, (int)DeviceType.DEVICE_LAST)); SendNewObject(serverMgr, p); }
protected override void CreateLevelObjects() { for (int i = 0; i < SharedDef.ASTEROID_COUNT; ++i) { objects.Add(ServerSceneObjectFactory.CreateNewRandomAsteroid(mgr, i % 2 == 0)); } }
private StatPowerUp CreateNewStatPowerup() { StatPowerUp p = ServerSceneObjectFactory.CreateStatPowerUp(mgr, (DeviceType)mgr.GetRandomGenerator().Next((int)DeviceType.DEVICE_FIRST + 1, (int)DeviceType.DEVICE_LAST)); p.Direction = new Vector(0, 0); return(p); }
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 StatPowerUp CreateAndSendNewStatPowerup(Vector pos, Vector dir) { StatPowerUp p = ServerSceneObjectFactory.CreateStatPowerUp(mgr, (DeviceType)mgr.GetRandomGenerator().Next((int)DeviceType.DEVICE_FIRST + 1, (int)DeviceType.DEVICE_LAST)); p.Position = pos; p.Direction = dir; return(p); }
private Asteroid CreateNewAsteroidAbove() { Asteroid s = ServerSceneObjectFactory.CreateNewRandomAsteroid(mgr, true); s.Position = new Vector(mgr.GetRandomGenerator().Next((int)(SharedDef.VIEW_PORT_SIZE.Width - s.Radius * 2)), -s.Radius * 4); (s.CollisionShape as SphereCollisionShape).Center = s.Center; s.Direction = new Vector(0, 1).Rotate(mgr.GetRandomGenerator().Next(60) - 30, false); // -30° - +30° return(s); }
private void CreateAndSendAdditionalAsteroid() { Asteroid a = ServerSceneObjectFactory.CreateNewAsteroidOnEdge(mgr, objects.Count % 2 == 0); objects.Add(a); NetOutgoingMessage msg = mgr.CreateNetMessage(); a.WriteObject(msg); mgr.BroadcastMessage(msg); }
public override void OnObjectDestroyed(ISceneObject obj) { if (!(obj is Asteroid)) { return; } obj = ServerSceneObjectFactory.CreateNewAsteroidOnEdge(mgr, (obj as Asteroid).IsHeadingRight); GameLevelManager.SendNewObject(mgr, obj); objects.Add(obj); }
private void CreateAndSendNewAsteroid(int step) { Asteroid a = null; switch (step) { case 1: a = ServerSceneObjectFactory.CreateCustomAsteroid(mgr, radius, new Vector(500, 200), new Vector(0, 1), AsteroidType.NORMAL); a.GetControlOfType <IMovementControl>().Speed = 100; break; case 2: a = ServerSceneObjectFactory.CreateCustomAsteroid(mgr, radius, new Vector(500, 200), new Vector(1, 1).NormalizeV(), AsteroidType.NORMAL); a.GetControlOfType <IMovementControl>().Speed = 100; break; case 3: a = ServerSceneObjectFactory.CreateCustomAsteroid(mgr, radius, new Vector(500, 300), new Vector(1, 0), AsteroidType.NORMAL); a.GetControlOfType <IMovementControl>().Speed = 100; break; case 4: a = ServerSceneObjectFactory.CreateCustomAsteroid(mgr, radius / 2, new Vector(500, 300), new Vector(-1, 0), AsteroidType.NORMAL); a.GetControlOfType <IMovementControl>().Speed = 100; break; case 5: a = ServerSceneObjectFactory.CreateCustomAsteroid(mgr, radius, new Vector(550, 400), new Vector(0, -1), AsteroidType.NORMAL); a.GetControlOfType <IMovementControl>().Speed = 60; break; case 6: a = ServerSceneObjectFactory.CreateCustomAsteroid(mgr, radius, new Vector(500, 400), new Vector(1, -1).NormalizeV(), AsteroidType.NORMAL); a.GetControlOfType <IMovementControl>().Speed = 40; break; default: break; } a.TextureId = 4; a.RemoveControlsOfType <LinearRotationControl>(); GameLevelManager.SendNewObject(mgr, a); step++; if (step > 6) { step = 1; } events.AddEvent(step, new Event(timer, EventType.ONE_TIME, new Action(() => CreateAndSendNewAsteroid(step)))); }
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))); }