public void StoreTileEvent(int x, int y, EventType eventType, ActorInstantiationFlags eventFlags = ActorInstantiationFlags.None, ushort[] tileParams = null) { if (eventType == EventType.Empty && (x < 0 || y < 0 || y >= layoutHeight || x >= layoutWidth)) { return; } EventTile tile = new EventTile { EventType = eventType, EventFlags = eventFlags, EventParams = new ushort[8], IsEventActive = false }; // Store event parameters int i = 0; if (tileParams != null) { int n = MathF.Min(tileParams.Length, 8); for (; i < n; ++i) { tile.EventParams[i] = tileParams[i]; } } eventLayout[x + y * layoutWidth] = tile; }
// Use this for initialization void Start() { ResourceInfo.setFoodStock(100); ResourceInfo.setWaterStock(100); ResourceInfo.setWoodStock(100); campEvents = new List <CampEvent>(EventSystem.GetCampEvents(0, 20, 10)); eventTiles = new List <GameObject>(EventSystem.GetEventTiles(0, 20, 10)); Weather weather = EventSystem.GetWeather(0); foreach (CampEvent ce in campEvents) { Debug.Log("Camp Event Message: \"" + ce.message + "\"\nFood Effect: " + ce.food + "\nWater Effect: " + ce.water + "\nWood Effect: " + ce.wood); } foreach (GameObject go in eventTiles) { EventTile et = go.GetComponent <EventTile>(); EncounterCharacterEvent ece = (EncounterCharacterEvent)et.tileEvent; Debug.Log("Event Name: \"" + ece.name + "\"\nDescription: " + ece.description + "\nDialog: " + ece.encounterDialog + "\nCharacter Name: " + ece.character.name + "\nHostile?: " + ece.character.isHostile + "\nmaxHealth: " + ece.character.getMaxHealth() + "\nmaxStamina: " + ece.character.getMaxStamina() + "\nmaxStrength: " + ece.character.getMaxStrength()); } Debug.Log(weather.ToString()); }
// Spawn an event tile if it isn't already spawned. public void SpawnEventTile(EventTileDataInstance eventTileData, bool staySpawned) { if (!IsEventTileSpawned(eventTileData)) { EventTile tile = EventTile.CreateEvent(eventTileData); AddEventTile(tile); } if (staySpawned) { eventTileData.Properties.Set("enabled", true); } }
// Use this for initialization void Start() { //after i push this, max carry wont work.... bc of naming of eventtiles eventTile = GameObject.Find("Test1"); eventTileScript = eventTile.GetComponent <EventTile>(); eventTileScript.tileEvent = EncounterCharacterEvent.GenerateRandom(); /* * eventTile2 = GameObject.Find("Test2"); * eventTileScript2 = eventTile2.GetComponent<EventTile>(); * eventTileScript2.tileEvent = EncounterCharacterEvent.GenerateRandom(); */ fuq = eventTileScript.tileEvent.character; if (fuq == null) { Debug.Log("whattehfuckishap"); } Debug.Log(eventTileScript.tileEvent.character.name); Debug.Log("Hostile = " + eventTileScript.tileEvent.character.isHostile); Debug.Log(eventTileScript.tileEvent.description); //Debug.Log(eventTileScript2.tileEvent.description); }
public void BeginRoom(Room room) { this.room = room; this.roomLocation = room.Location; this.dungeon = room.Dungeon; this.isSideScrolling = room.Zone.IsSideScrolling; // Discover the room. room.IsDiscovered = true; room.Level.IsDiscovered = true; // Clear event tiles. eventTiles.Clear(); // Clear all entities from the old room (except for the player). entities.Clear(); if (Player != null) { Player.Initialize(this); Player.EntityIndex = 0; entities.Add(Player); } // Create the tile grid. tileManager.Initialize(room); for (int x = 0; x < room.Width; x++) { for (int y = 0; y < room.Height; y++) { for (int i = 0; i < room.LayerCount; i++) { TileDataInstance data = room.TileData[x, y, i]; if (data != null && data.IsAtLocation(x, y) && data.ModifiedProperties.GetBoolean("enabled", true)) { // Place the tile. Tile tile = Tile.CreateTile(data); PlaceTile(tile, x, y, i, false); } } } } // Create the event tiles. eventTiles.Capacity = room.EventData.Count; for (int i = 0; i < room.EventData.Count; i++) { EventTileDataInstance data = room.EventData[i]; if (data.Properties.GetBoolean("enabled", true)) { EventTile eventTile = EventTile.CreateEvent(data); eventTiles.Add(eventTile); } } // Initialize the tiles. tileManager.InitializeTiles(); // Initialize the event tiles. for (int i = 0; i < eventTiles.Count; i++) { eventTiles[i].Initialize(this); } tileManager.PostInitializeTiles(); entityCount = entities.Count; viewControl.Bounds = RoomBounds; viewControl.ViewSize = GameSettings.VIEW_SIZE; // Fire the RoomStart event. GameControl.FireEvent(room, "event_room_start"); allMonstersDead = false; }
// Put an event tile into the room. public void AddEventTile(EventTile eventTile) { eventTile.Initialize(this); eventTiles.Add(eventTile); }
public InteractAction(EventTile tile, ICombatant combatant, IMap map) { Tile = tile; _combatant = combatant; _map = map; }
public static void ParseRoomCSVFile() { string cwdPath = Directory.GetCurrentDirectory(); string roomPath = ""; if (roomNumber < storage.singleDigitRoomCap) { roomPath = @"0" + (roomNumber.ToString()) + ".csv"; } else { roomPath = @"" + (roomNumber.ToString()) + ".csv"; } cwdPath = cwdPath.Replace(@"\bin\Debug\netcoreapp3.1", @"\Classes\Level\RoomCSV"); cwdPath = Path.Combine(cwdPath, roomPath); string[] lines = System.IO.File.ReadAllLines(cwdPath); foreach (string line in lines) { string[] segments = line.Split(new string[] { "," }, StringSplitOptions.None); Vector2 position = new Vector2(0, 0); switch (segments[0]) { case "Block": position = utility.GetBlockSecondaryItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); BlockTile block; tiles.Add(block = new BlockTile(game, new TileSpriteFactory(game), position)); block.drawLocation = position; break; case "Event": position = utility.GetBlockSecondaryItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); EventTile eventTile; tiles.Add(eventTile = new EventTile(game, new TileSpriteFactory(game), position)); eventTile.drawLocation = position; break; case "Pushable": position = utility.GetPushablePosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); PushableTile pushable; tiles.Add(pushable = new PushableTile(game, new TileSpriteFactory(game), position)); pushable.drawLocation = position; break; case "Stair": position = utility.GetBlockSecondaryItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); TPTile stair; tiles.Add(stair = new TPTile(game, new TileSpriteFactory(game), position)); stair.drawLocation = position; break; case "Compass": position = utility.GetBlockSecondaryItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Compass compass; items.Add(compass = new Compass(game, new ItemSpriteFactory(game), position)); compass.drawLocation = position; break; case "Heart": position = utility.GetHeartPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Heart heart; items.Add(heart = new Heart(game, new ItemSpriteFactory(game), position)); heart.position = position; break; case "Key": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Key key; items.Add(key = new Key(game, new ItemSpriteFactory(game), position)); key.position = position; break; case "BlueRupee": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); BlueRupee blueRupee; items.Add(blueRupee = new BlueRupee(game, new ItemSpriteFactory(game), position)); blueRupee.position = position; break; case "Bomb": position = utility.GetBombPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Bomb bomb; items.Add(bomb = new Bomb(game, new ItemSpriteFactory(game), position)); bomb.position = position; break; case "Boomerang": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Boomerang boomerang; items.Add(boomerang = new Boomerang(game, new ItemSpriteFactory(game), position)); boomerang.position = position; break; case "Bow": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Bow bow; items.Add(bow = new Bow(game, new ItemSpriteFactory(game), position)); bow.position = position; break; case "HeartContainer": position = utility.GetHeartContainerPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); HeartContainer heartContainer; items.Add(heartContainer = new HeartContainer(game, new ItemSpriteFactory(game), position)); heartContainer.position = position; break; case "Map": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Map map; items.Add(map = new Map(game, new ItemSpriteFactory(game), position)); map.position = position; break; case "Fairy": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Fairy fairy; items.Add(fairy = new Fairy(game, new ItemSpriteFactory(game), position)); fairy.position = position; break; case "Triforce": position = utility.GetTriforceOldPosition(windowWidth, windowHeightFloor); Triforce triforce; items.Add(triforce = new Triforce(game, new ItemSpriteFactory(game), position)); triforce.position = position; break; case "YellowRupee": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); YellowRupee yellowRupee; items.Add(yellowRupee = new YellowRupee(game, new ItemSpriteFactory(game), position)); yellowRupee.position = position; break; case "Goriya": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyGoriya(game, position)); break; case "Aquamentus": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyAquamentus(game, position)); break; case "Roshi": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyRoshi(game, position)); break; case "BladeTrap": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyBladeTrap(game, position, new Vector2(storage.bladeTrapX, storage.bladeTrapY), game.link)); break; case "Gel": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemySlime(game, position)); break; case "Keese": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyKeese(game, position)); break; case "Stalfos": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyStalfos(game, position)); break; case "Wallmaster": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyWallmaster(game, position)); break; case "Redead": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyRedead(game, position)); break; case "FogOfWar": enemies.Add(new FogOfWar(game)); break; default: break; } } }
public void AddEventTile(EventTile eventTile) { GetTileByPosition(eventTile.Location).Event = eventTile; }
private void _relayEvent(EventTile eventTile) { EventTileWalkedSignal.Dispatch(eventTile.EventName); }
public void AddEventTile(EventTile eventTile) { Map.AddEventTile(eventTile); }