protected override void OnLoad(EventArgs e) { base.OnLoad(e); GL.ClearColor(1, 1, 1, 1); FontDrawing = new QFontDrawing(); MainFont = new QFont("Tahoma", 16, new QFontBuilderConfiguration()); // load the rooms var rooms = Directory.GetFiles(@"Content\Rooms", "*.txt", SearchOption.AllDirectories) .Select(path => RoomLoader.Load(path)) .ToList(); var items = Directory.GetFiles(@"Content\Items", "*.txt", SearchOption.AllDirectories) .SelectMany(path => ItemLoader.Load(path).Select(w => w.itemtemplate)) .ToList(); // build the map const int mapw = 75, maph = 25; Map = new Map(mapw, maph, rooms, new Random()); // and the terrain renderer TerrainRenderer = new TerrainRenderer(Map) { ViewMatrix = Matrix4.CreateTranslation(2, 2, 0) * Matrix4.CreateScale(.1f) }; }
public void RoomLoadingTest() { var roomtemplate = RoomLoader.Load(@" ++d+ +..++++ d.....+ +.....d +++++++".ToMemoryStream()); // test the loaded room Assert.AreEqual(TileTemplate.WallTile, roomtemplate.Tiles[0, 0]); Assert.AreEqual(TileTemplate.WallTile, roomtemplate.Tiles[0, 1]); Assert.AreEqual(TileTemplate.DoorTile, roomtemplate.Tiles[0, 2]); Assert.AreEqual(TileTemplate.WallTile, roomtemplate.Tiles[0, 3]); Assert.AreEqual(TileTemplate.VoidTile, roomtemplate.Tiles[0, 4]); Assert.AreEqual(TileTemplate.VoidTile, roomtemplate.Tiles[0, 5]); Assert.AreEqual(TileTemplate.EmptyTile, roomtemplate.Tiles[3, 3]); Assert.AreEqual(TileTemplate.DoorTile, roomtemplate.Tiles[3, 6]); Assert.ThrowsException <IndexOutOfRangeException>(() => roomtemplate.Tiles[0, 7]); // test the doorways Assert.IsTrue(roomtemplate.Doorways.Any(d => d.X == 2 && d.Y == 0 && d.Direction == DoorwayDirection.North)); Assert.IsTrue(roomtemplate.Doorways.Any(d => d.X == 0 && d.Y == 2 && d.Direction == DoorwayDirection.West)); Assert.IsTrue(roomtemplate.Doorways.Any(d => d.X == 6 && d.Y == 3 && d.Direction == DoorwayDirection.East)); }
public void MapPlacementTest() { var room1 = RoomLoader.Load(@" +d++ ds.+ ++++".ToMemoryStream()); var room2 = RoomLoader.Load(@" ++++ +..d ++++".ToMemoryStream()); var map = new Map(10, 4); // place the rooms room2.Place(map, 0, 0); room1.Place(map, 4, 0); // test the placed rooms Assert.AreEqual(TileTemplate.WallTile, map.Tiles[0, 3]); Assert.AreEqual(TileTemplate.WallTile, map.Tiles[0, 4]); Assert.AreEqual(TileTemplate.DoorTile, map.Tiles[0, 5]); Assert.AreEqual(TileTemplate.DoorTile, map.Tiles[1, 3]); Assert.AreEqual(TileTemplate.DoorTile, map.Tiles[1, 4]); Assert.AreEqual(TileTemplate.EmptyTile, map.Tiles[1, 2]); Assert.AreEqual(TileTemplate.EmptyTile, map.Tiles[1, 1]); Assert.AreEqual(TileTemplate.EmptyTile, map.Tiles[1, 6]); Assert.AreEqual(TileTemplate.StartTile, map.Tiles[1, 5]); }
public override void _Ready() { _crosshair = GetNode <Sprite>("Crosshair"); _hud = GetNode <HUD>("CanvasLayer/HUD"); // Hide the cursor Input.SetMouseMode(Input.MouseMode.Hidden); // Player SpawnPlayer(); _player.AddChild(_camera); // HUD _player.Connect(nameof(AbstractActor.HealthChanged), _hud, nameof(HUD.HealthChanged)); _player.Connect(nameof(AbstractActor.ChatAdded), _hud, nameof(HUD.AddChat)); // Coins _player.Connect(nameof(AbstractActor.CoinDropped), this, nameof(OnCoinDropped)); _player.Connect(nameof(AbstractActor.CoinsChanged), _hud, nameof(HUD.OnCoinsChanged)); _coinScene = NodeService.LoadNotNull <PackedScene>("res://Scenes/Objects/Coin.tscn"); // Projectile signal _player.Connect(nameof(Player.ProjectileShooterChanged), this, nameof(OnProjectileShooterChanged)); // Room loader _roomLoader = GetNode <RoomLoader>("RoomLoader"); _roomLoader.SetPlayer(_player); // _roomLoader NextRoom(); SpawnBoss(); }
private static Dictionary <string, Room> ParseRooms(List <string> roomNames) { RoomLoader.Rooms = new DirectoryInfo( Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..", "Tests")); RoomLoader.RoomFileNames = roomNames; return(RoomLoader.GetRoomsFromDirectory()); }
public void RoomPropertiesTest() { var room = RoomLoader.Load(@" ++ ++ === choose_weight = 0.1 ".ToMemoryStream()); Assert.AreEqual(0.1f, room.ChooseWeight); }
void Instantiate(string path) { RoomLayout roomLayout = Resources.Load <RoomLayout>(path); if (roomLayout != null) { Room room = new Room(0, 0); room.layout = roomLayout.entities; room.size = roomLayout.size; RoomLoader roomLoader = GameObject.Find("Room Spawn").GetComponent <RoomLoader>(); roomLoader.DestroyRoom(); roomLoader.Load(room); } }
public void Start() { if (instance) { Debug.Log("Fatal Err0r"); } else { instance = this; } Setup(); StartCoroutine(Wait()); }
static void Main(string[] args) { var rooms = Directory.GetFiles(@"Content\Rooms", "*.txt", SearchOption.AllDirectories) .Select(path => RoomLoader.Load(path)) .ToList(); var items = Directory.GetFiles(@"Content\Items", "*.txt", SearchOption.AllDirectories) .SelectMany(path => ItemLoader.Load(path).Select(w => w.itemtemplate)) .ToList(); const int mapw = 75, maph = 25; var map = new Map(mapw, maph, rooms, new Random()); for (var row = 0; row < maph; ++row) { Console.Write('/'); for (var col = 0; col < mapw; ++col) { var tile = map.Tiles[row, col]; if (tile == TileTemplate.DoorTile) { Console.Write('d'); } else if (tile == TileTemplate.WallTile) { Console.Write('+'); } else if (tile == TileTemplate.StartTile) { Console.Write('s'); } else if (tile == TileTemplate.EmptyTile) { Console.Write('.'); } else if (tile == TileTemplate.VoidTile) { Console.Write(' '); } else { throw new InvalidOperationException(); } } Console.WriteLine('/'); } Console.ReadKey(); }
public void Awake() { singleton = this; GameSettings.Load(); Timer.InitializeCreate(); LanguageManager.Initialize(); LanguageManager.SetLanguage(x => x.Code.Equals(GameSettings.SettingLanguageCode.Value)); ItemManager.Initialize(); //MessageManager.Initialize(); ObjectsManager.LoadAllObjectsFromResources(); RoomLoader.LoadAllRoomsFromResources(); RoomLayerMask = LayerMask.GetMask("Room"); PlayerLayerMask = LayerMask.GetMask("Player"); TrapLayerMask = LayerMask.GetMask("Trap"); }
public static List <GameObject> InitializeRoom(GameObject room) { if (!NetworkManagerCustom.IsServer) { return(null); } List <GameObject> objects = RoomLoader.SpawnSerializebleObjects(RoomLoader.loadedRooms.Find(x => x.fileName.Equals(room.GetComponent <Room>().RoomName)), room); foreach (GameObject gameObject in objects) { if (gameObject.GetComponent <ISerializableObject>() != null) { SerializationManager.InitializeObject(gameObject); } } room.GetComponent <Room>().Initialized = true; return(objects); }
public void MapGenerationTest() { var room1 = RoomLoader.Load(@" +d++ ds.+ ++++".ToMemoryStream()); var room2 = RoomLoader.Load(@" ++++ +..d ++++".ToMemoryStream()); var room3 = RoomLoader.Load(@" ++++ +..+ +d++".ToMemoryStream()); var room4 = RoomLoader.Load(@" +++++ +...d +++d+".ToMemoryStream()); var map = new Map(30, 30, new List <RoomTemplate> { room1, room2, room3, room4 }, new Random()); }
public override void OnInspectorGUI() { base.DrawDefaultInspector(); RoomLoader loader = (RoomLoader)target; if (GUILayout.Button("Unserialize")) { Undo.RecordObject(loader, "Unserialize Room"); loader.Unserialize(loader.currentRoom); } if (GUILayout.Button("Serialize")) { EditorUtility.SetDirty(loader.currentRoom); Undo.RecordObject(loader.currentRoom, "Serialize Room"); loader.Serialize(); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } }
private static GameObject SpawnRoom(RoomLoader.Room room, RoomInfo position, Transform parent, bool onServer) { GameObject spawnedRoom = RoomLoader.SpawnRoom(room, new Vector3(position.Position.x * 495, position.Position.y * 277, 0), onServer); spawnedRoom.GetComponent <Room>().Position = position.Position; if (NetworkManagerCustom.IsServer && SerializationManager.World != null && SerializationManager.World.Objects[position.Position.x, position.Position.y] != null) { spawnedRoom.GetComponent <Room>().Initialized = true; } spawnedRoom.transform.parent = parent; List <GameObject> gates = Utils.GetComponentsRecursive <GateObject>(spawnedRoom).ConvertAll(x => x.gameObject); gates.ForEach(x => x.transform.Find("trigger").GetComponent <GateTrigger>().GetEventSystem <GateTrigger.EnterGateEvent>() .SubcribeEvent(y => OnGateEnter(y.Player, y.Sender, false))); foreach (GameObject gateObject in gates) { Vector2Int localPosition = GateInfo.RoomObjectToLocalPosition(gateObject.transform.localPosition); if (gateObject.GetComponent <GateObject>().gateType == 0) { gateObject.GetComponent <GateObject>().Enable = position.Gates.Exists(x => x.LocalPosition == localPosition); } } for (int x = 0; x < position.Size.x; x++) { for (int y = 0; y < position.Size.y; y++) { spawnedRooms[x + position.Position.x, y + position.Position.y] = spawnedRoom; } } spawnedRoom.SetActive(false); return(spawnedRoom); }
public GameManager(Game1 game, Dictionary <String, Texture2D> spriteSheet, SpriteFont font, SpriteFont header, Sounds sounds) { this.game = game; sprites = spriteSheet; state = GameState.PLAYING; //load room 17 first sound = sounds; roomLoad = new RoomLoader(sprites); rooms.Add("Room17", roomLoad.Load("Room17.txt")); roomKey = "Room17"; player = new Player(spriteSheet["playersheet"], new Vector2(500, 200), spriteSheet["PlayerProjectiles"], sound); hud = new HUD(spriteSheet["hudSheet"], font); itemScreen = new ItemSelectionScreen(spriteSheet["ItemSelection"]); pause = new PauseScreen(spriteSheet["MenuScreens"], font, header); gameOver = new GameOverScreen(spriteSheet["MenuScreens"], font, header); win = new WinScreen(spriteSheet["MenuScreens"]); EPCol = new EnemyProjectileCollisionHandler(this); }
public override void Awake() { base.Awake(); roomLoader = GetComponent <RoomLoader>(); Debug.Assert(roomOrigin != null); }
public GameManager(Game1 game, Dictionary <String, Texture2D> spriteSheet, SpriteFont font, SpriteFont header, Sounds sounds) { GameplayConstants.Initialize(1);//initialize constants to normal mode, just at the start so constants are somehting this.game = game; sprites = spriteSheet; state = GameState.START; difficulty = 1; isHordeMode = false; //load room 17 first sound = sounds; roomLoad = new RoomLoader(sprites, this); rooms.Add("Room17", roomLoad.Load("Room17.txt")); roomKey = "Room17"; transitioner = new RoomTransition(); //initialize player player = new Player(spriteSheet["playersheet"], new Vector2(500, 200), spriteSheet["PlayerProjectiles"], sound); //initailize screens hud = new HUD(spriteSheet["hudSheet"], font); itemScreen = new ItemSelectionScreen(spriteSheet["ItemSelection"]); pause = new PauseScreen(spriteSheet["MenuScreens"], font, header); gameOver = new GameOverScreen(spriteSheet["MenuScreens"], font, header); win = new WinScreen(spriteSheet["MenuScreens"]); start = new StartMenuScreen(spriteSheet["StartMenu"], font, header, this); EPCol = new EnemyProjectileCollisionHandler(this); //initailize cheat code dictionary cheatCodes = new Dictionary <string, ICommand>(); //initailize cheat codes ICommand extraHealth = new ExtraHealth(player); ICommand extraRupees = new ExtraRupees(player); ICommand invinc = new Invincibility(player); ICommand bombs = new UnlimitedBombs(player); cheatCodes.Add("NBKJH", extraHealth); cheatCodes.Add("MNBVX", extraRupees); cheatCodes.Add("ZZKNL", invinc); cheatCodes.Add("GFGFG", bombs); //initailize special move code dictionary specialMoves = new Dictionary <string, ICommand>(); //initailize special moves ICommand fireSpin = new FireSpinSpecialMove(this); ICommand reapingArrow = new ReapingArrowSpecialMove(this); ICommand rupeeShied = new RupeeShieldSpecialMove(this); specialMoves.Add("TYHGT", fireSpin); specialMoves.Add("JKJKJ", reapingArrow); specialMoves.Add("KJHGF", rupeeShied); }
void Start() { string[] data = GetComponent <SpawnedData>().spawnedData; int length = int.Parse(data[0]); bool horizontal = bool.Parse(data[1]); Mesh meshBorder = new Mesh(); meshBorder.SetVertices(new List <Vector3>() { new Vector3(0, 0, 0), new Vector3(length, 0, 0), new Vector3(length, -9, 0), new Vector3(0, -9, 0), new Vector3(0, -6, 0), new Vector3(-9, -6, 0), new Vector3(-9, -9, 0), new Vector3(0, -9, 0), new Vector3(length, -6, 0), new Vector3(length + 9, -6, 0), new Vector3(length + 9, -9, 0), new Vector3(length, -9, 0), }); meshBorder.SetUVs(0, new List <Vector2>() { new Vector2(0, 0.695f), new Vector2(length / 32f, 0.695f), new Vector2(length / 32f, 0.625f), new Vector2(0, 0.625f), new Vector2(0.594f, 0.508f), new Vector2(0.875f, 0.508f), new Vector2(0.875f, 0.484f), new Vector2(0.594f, 0.484f), new Vector2(0.594f, 0.508f), new Vector2(0.875f, 0.508f), new Vector2(0.875f, 0.484f), new Vector2(0.594f, 0.484f), }); meshBorder.triangles = new int[] { 0, 1, 3, 1, 2, 3, 4, 7, 6, 5, 4, 6, 8, 9, 11, 11, 9, 10 }; meshBorder.normals = RoomLoader.getNormals(12); meshBorder.RecalculateBounds(); meshBorder.RecalculateNormals(); meshBorder.RecalculateTangents(); Mesh meshShadow = new Mesh(); meshShadow.SetVertices(new List <Vector3>() { new Vector3(0, 0, -100), new Vector3(length, 0, -100), new Vector3(length, 0, 100), new Vector3(0, 0, 100) }); meshShadow.SetUVs(0, new List <Vector2>() { new Vector2(0, 0.695f), new Vector2(1, 0.695f), new Vector2(1, 0.65f), new Vector2(0, 0.65f) }); meshShadow.triangles = new int[] { 1, 0, 2, 3, 2, 0 }; meshShadow.normals = RoomLoader.getNormals(4); meshShadow.RecalculateBounds(); meshShadow.RecalculateNormals(); meshShadow.RecalculateTangents(); if (isServer) { GameObject hitBox = transform.Find("HitBox").gameObject; hitBox.GetComponent <BoxCollider2D>().offset = new Vector2(length / 2f, hitBox.GetComponent <BoxCollider2D>().offset.y); hitBox.GetComponent <BoxCollider2D>().size = new Vector2(length, hitBox.GetComponent <BoxCollider2D>().size.y); } GameObject border = transform.Find("Border").gameObject; border.GetComponent <MeshFilter>().mesh = meshBorder; border.GetComponent <BoxCollider2D>().offset = new Vector2(length / 2f, border.GetComponent <BoxCollider2D>().offset.y); border.GetComponent <BoxCollider2D>().size = new Vector2(length, border.GetComponent <BoxCollider2D>().size.y); transform.Find("Shadow").gameObject.GetComponent <MeshFilter>().mesh = meshShadow; BoxCollider2D flapper = transform.Find("Flapper").gameObject.GetComponent <BoxCollider2D>(); flapper.offset = new Vector2(length / 2f, flapper.offset.y); flapper.size = new Vector2(length, flapper.size.y); BoxCollider2D triggerEnter = transform.Find("TriggerEnter").gameObject.GetComponent <BoxCollider2D>(); triggerEnter.offset = new Vector2(length / 2f, triggerEnter.offset.y); triggerEnter.size = new Vector2(length, triggerEnter.size.y); BoxCollider2D triggerOut = transform.Find("TriggerOut").gameObject.GetComponent <BoxCollider2D>(); triggerOut.offset = new Vector2(length / 2f, triggerOut.offset.y); triggerOut.size = new Vector2(length, triggerOut.size.y); if (!horizontal) { transform.localEulerAngles = new Vector3(0, 0, -90); } }
private void Start() { if (isServer) { NetworkManagerCustomGUI gui = GameObject.Find("Manager").GetComponent <NetworkManagerCustomGUI>(); if (gui.StartArguments[0].Equals("new game")) { seedToGeneration = int.Parse(ServerEvents.singleton.SeedToGenerate); seedToSpawn = int.Parse(ServerEvents.singleton.SeedToSpawn); GenerationInfo generation = GetGeneration(seedToGeneration == 0 ? rnd.Next() : seedToGeneration); seedToSpawn = seedToSpawn == 0 ? rnd.Next() : seedToSpawn; GenerationManager.SpawnGeneration(RoomLoader.loadedRooms, generation, seedToSpawn, false); MessageManager.GetGenServerMessage.SendToServer(new EmptyMessage()); if (GameSettings.SettingVisualizeTestGeneration.Value) { GenerationManager.VisualizeGeneration(generation); } } else if (gui.StartArguments[0].Equals("load game")) { SerializationManager.LoadWorld(gui.StartArguments[1]); GenerationInfo generation = GetGeneration(SerializationManager.World.Info.SeedToGenerate); GenerationManager.SpawnGeneration(RoomLoader.loadedRooms, generation, SerializationManager.World.Info.SeedToSpawn, false); MessageManager.GetGenServerMessage.SendToServer(new EmptyMessage()); if (GameSettings.SettingVisualizeTestGeneration.Value) { GenerationManager.VisualizeGeneration(generation); } } else if (gui.StartArguments[0].Equals("test mode")) { GenerationManager.SetCurrentRoom(RoomLoader.SpawnRoom(RoomLoader.loadedRooms.Find(x => x.fileName.Equals(GameSettings.SettingTestRoomName.Value)), Vector3.zero, false)); GenerationManager.InitializeRoom(GenerationManager.currentRoom); GameObject player = Instantiate(LocalPlayer); Vector3 toPos = Vector3.zero; Transform parent = GenerationManager.currentRoom.transform.Find("Objects"); for (int i = 0; i < parent.childCount; i++) { if (parent.GetChild(i).name.Contains("playerPosition")) { toPos = parent.GetChild(i).position; } } player.transform.position = toPos + new Vector3(18, 25); if (ServerEvents.singleton.ServerOnlyProfile != null) { player.GetComponent <GameProfile>().Deserialize(ServerEvents.singleton.ServerOnlyProfile); } NetworkServer.AddPlayerForConnection(NetworkServer.connections[0], player, indexController++); } else if (gui.StartArguments[0].Equals("room editor")) { RoomLoader.Room room = RoomLoader.LoadRoom(Application.streamingAssetsPath + "/room.json", Encoding.UTF8); GenerationManager.SetCurrentRoom(RoomLoader.SpawnRoom(room, Vector3.zero, false)); RoomLoader.loadedRooms.Add(room); GenerationManager.InitializeRoom(GenerationManager.currentRoom); string[] gateInfo = File.ReadAllLines(Application.streamingAssetsPath + "/gate.txt", Encoding.UTF8); GameObject.Find("startPosition").transform.position = new Vector3(int.Parse(gateInfo[0]), int.Parse(gateInfo[1]), -1f); doStartForce = bool.Parse(gateInfo[2]); GameObject player = Instantiate(LocalPlayer); player.transform.position = GameObject.Find("startPosition").transform.position; NetworkServer.AddPlayerForConnection(NetworkServer.connections[0], player, indexController++); } } else { MessageManager.GetGenServerMessage.SendToServer(new EmptyMessage()); } }
// Use this for initialization void Start() { if (worldManagerObject == null) { worldManager = FindObjectOfType <WorldManager>(); } else { worldManager = worldManagerObject.GetComponent <WorldManager>(); } roomLoader = FindObjectOfType <RoomLoader>(); // load main menu scene keywords.Add("Main Menu", () => { worldManager.LoadScene("MainMenu"); }); // Call the OnReset method on every gameobject. keywords.Add("Reset world", () => { PersistoMatic[] objects = (PersistoMatic[])GameObject.FindObjectsOfType(typeof(PersistoMatic)); foreach (PersistoMatic obj in objects) { obj.SendMessage("OnRemove"); } }); keywords.Add("Toggle wireframe", () => { worldManager.ToggleWireframe(); }); keywords.Add("Toggle room", () => { roomLoader.ToggleRoom(); }); keywords.Add("Start scan", () => { SpatialMappingManager.Instance.StartObserver(); }); keywords.Add("Stop scan", () => { SpatialMappingManager.Instance.StopObserver(); }); keywords.Add("Place stem base", () => { worldManager.CreateStemBase(); }); keywords.Add("Place console", () => { worldManager.CreateConsole(); }); keywords.Add("Place spawn", () => { worldManager.CreateSpawnPoint(); }); keywords.Add("Place scoreboard", () => { worldManager.CreateScoreboard(); }); keywords.Add("Place metal barrel", () => { worldManager.CreateMetalBarrel(); }); //not yet ready //keywords.Add("Place room model", () => //{ // worldManager.CreateRoomModel(); //}); keywords.Add("Place infinite ammo box", () => { worldManager.CreateInfiniteAmmoBox(); }); keywords.Add("Place path finder", () => { worldManager.CreatePathFinder(); }); keywords.Add("Place start button", () => { worldManager.CreateStartButton(); }); keywords.Add("Place mist", () => { worldManager.CreateMist(); }); keywords.Add("Place mist end", () => { worldManager.CreateMistEnd(); }); keywords.Add("Place hot spot", () => { worldManager.CreateHotspot(); }); keywords.Add("Place Target", () => { worldManager.CreateTarget(); }); keywords.Add("Remove", () => { var focusObject = GazeManager.Instance.HitObject; if (focusObject != null) { // Call the OnDrop method on just the focused object. focusObject.SendMessage("OnRemove"); } }); // Tell the KeywordRecognizer about our keywords. keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray()); // Register a callback for the KeywordRecognizer and start recognizing! keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized; keywordRecognizer.Start(); }