public static Map GetRandomInstance3(int objCount, int width, int height) { Map map = new Map(width, height); Random r = new Random(); for (int i=0; i<objCount; i++) { int allegianceNo = r.Next(3); Allegiance allegiance = Allegiance.Neutral; switch (allegianceNo) { case 0: allegiance = Allegiance.Player; break; case 1: allegiance = Allegiance.Neutral; break; case 2: allegiance = Allegiance.Computer; break; } int sizeNo = r.Next(3); PlanetSize size = PlanetSize.Medium; switch (sizeNo) { case 0: size = PlanetSize.Small; break; case 1: size = PlanetSize.Medium; break; case 2: size = PlanetSize.Large; break; } int noOfMinions = r.Next(50); int type = r.Next(6); int x = r.Next(width); int y = r.Next(height); Vector2 pos = new Vector2(x, y); GameObject unit = null; switch (type) { case 0: unit = new Asteroid(pos); break; case 1: unit = new DeathStar(pos, allegiance, noOfMinions); break; case 2: unit = new Defender(pos,allegiance); break; case 3: unit = new Interceptor(pos, allegiance); break; case 4: unit = new Planet(pos, allegiance, size, noOfMinions); break; case 5: unit = new Predator(pos, allegiance); break; } if (unit != null) map.mInitialGameObjects.Add(unit); } return map; }
/// <summary> /// Returns a map instance with objCount many random-placed interceptors /// </summary> /// <param name="objCount">number of planets to create</param> /// <param name="width">map width</param> /// <param name="height">map height</param> /// <returns>new map instance</returns> public static Map GetRandomInstance2(int objCount, int width, int height) { var map = new Map(width, height); // create randomly game objects on the map var r = new Random(); for (int i = 0; i < objCount; i++) { int x = r.Next(width); int y = r.Next(height); var iceptor = new Interceptor(new Vector2(x, y), Allegiance.Player); map.mInitialGameObjects.Add(iceptor); } return map; }
/// <summary> /// Tests Loading / Saving an interceptor /// </summary> private static void DebugTestUnitLoadSave() { GameLogic gameLogic = GameLogic.GetInstance(); GameObjectManager objectManager = GameObjectManager.GetInstance(); gameLogic.SetMap(new Map(100, 100)); GameStateManager stateManager = gameLogic.GetGameStateManager(); Interceptor iceptor = new Interceptor(new Vector2(1, 2), 0); objectManager.AddUnit(iceptor); Debug.WriteLine("Serializing a lonely interceptor (GameLogic.cs->DEBUG)..."); stateManager.SaveGame("testme.lol"); gameLogic.mObjectList.Remove(iceptor); stateManager.LoadGame("testme.lol"); Debug.Assert(gameLogic.mObjectList.Count == 1, "Loaded too many objects!"); Debug.Assert(gameLogic.mObjectList[0] is Interceptor, "Loaded GameObject is not an interceptor!"); Vector2 pos = gameLogic.mObjectList[0].Position; // ReSharper disable CompareOfFloatsByEqualityOperator // I may use exact comparison here because I assigned the values directly -> no // rounding errors possible Debug.Assert(pos.X == 1 && pos.Y == 2, "Interceptor has wrong position!"); // ReSharper restore CompareOfFloatsByEqualityOperator Debug.WriteLine("interceptor's pos (DEBUG): " + pos); GameObjectManager.GetInstance().RemoveGameObject(gameLogic.mObjectList[0]); gameLogic.GetGameStateManager().UnloadGame(); }
private static void InheritanceTest() { Interceptor iceptor = new Interceptor(new Vector2(0, 0), Allegiance.Player); CollisionManager colMan = new CollisionManager(); PlayerFogManager playerFogMan = new PlayerFogManager(); PcFogManager pcFogMan = new PcFogManager(); iceptor.SetQuadNode(typeof(CollisionManager), new QuadNode(null, colMan)); iceptor.SetQuadNode(typeof(PlayerFogManager), new QuadNode(null, playerFogMan)); iceptor.SetQuadNode(typeof(PcFogManager), new QuadNode(null, pcFogMan)); Debug.Assert(iceptor.GetQuadNode(typeof(CollisionManager)).mManager != iceptor.GetQuadNode(typeof(PlayerFogManager)).mManager && iceptor.GetQuadNode(typeof(PlayerFogManager)).mManager != iceptor.GetQuadNode(typeof(PcFogManager)).mManager); Debug.WriteLine(iceptor.GetQuadNode(typeof(CollisionManager)).mManager); Debug.WriteLine(iceptor.GetQuadNode(typeof(PlayerFogManager)).mManager); Debug.WriteLine(iceptor.GetQuadNode(typeof(PcFogManager)).mManager); GameLogic.GetInstance().GetGameStateManager().UnloadGame(); }
private static void CollisionTest() { GameLogic.GetInstance().SetMap(new Map(10, 10)); CollisionManager colMan = new CollisionManager(); colMan.Init(); GameLogic.GetInstance().SetCollisionManager(colMan); colMan.MinimumSideLength = 1; Interceptor iceptor1 = new Interceptor(new Vector2(1, 1), Allegiance.Player); Interceptor iceptor2 = new Interceptor(new Vector2(9, 9), Allegiance.Player); Interceptor iceptor3 = new Interceptor(new Vector2(3, 3), Allegiance.Player); colMan.RegisterUnit(iceptor1); colMan.RegisterUnit(iceptor2); colMan.RegisterUnit(iceptor3); iceptor3.Position = new Vector2(7, 7); //List<QuadNode> leaves = colMan.mRoot.mChild[Orientation.LeftLower].GetAllNeighbourLeaves(false); Debug.WriteLine("CollisionTest done."); GameLogic.GetInstance().GetGameStateManager().UnloadGame(); }