Ejemplo n.º 1
0
 // Start is called before the first frame update
 void Start()
 {
     tileSizeX = dungeonTilePrefab.GetComponent <BoxCollider2D>().size.x;
     tileSizeY = dungeonTilePrefab.GetComponent <BoxCollider2D>().size.y;
     ResizeGameArea();
     GenerateGrid();
 }
Ejemplo n.º 2
0
    // ================================================================================================== //
    private void ShowArea(Position position)
    {
        // check valid area
        if (!_dungeonSaveData.Areas.ContainsKey(position))
        {
            Debug.LogError("area doesn't exist in that position: " + position.ToString());
            return;
        }

        // clear current grid
        clear();

        // get the area
        AreaSaveData areaToShow = _dungeonSaveData.Areas[position];

        // put area objects in grid.
        foreach (SaveData objSaveData in areaToShow.Objects)
        {
            DungeonTile tile       = _grid.GetElement(objSaveData.Position) as DungeonTile;
            GameObject  createdObj = createObjectInTile(objSaveData.Name, tile);

            // add crried items on creature
            if (objSaveData is CreatureSaveData)
            {
                CreatureSaveData creatureSaveData = objSaveData as CreatureSaveData;
                Creature         creature         = createdObj.GetComponent <Creature>();
                foreach (ItemSaveData itemSaveData in creatureSaveData.CarriedItems)
                {
                    createObjectInCreature(itemSaveData.Name, creature);
                }
            }
        }

        // fog of war
        foreach (DungeonTile tile in _grid.Elements)
        {
            tile.IsRevealed = areaToShow.TileRevealationMap[tile.Position.X, tile.Position.Y];
        }

        // update current area index
        _currentShownAreaPosition = position;

        // update the dungeon tile sprite - grass or floor
        foreach (DungeonTile tile in _grid.Elements)
        {
            if (IsInOriginArea)
            {
                tile.GetComponent <SpriteRenderer>().sprite = ResourcesManager.Instance.OutdoorDungeonTileSprite;
            }
            else
            {
                tile.GetComponent <SpriteRenderer>().sprite = ResourcesManager.Instance.FloorDungeonTileSprite;
            }
        }
    }
Ejemplo n.º 3
0
 internal virtual void OnStartTurn()
 {
     if (!IsFlying())
     {
         SwitchTile switchTile = myTile.GetComponent <SwitchTile>();
         if (switchTile && !switchTile.isOn)
         {
             Die();
         }
     }
     hasBegunPlay   = true;
     hasBeenSpotted = false;
     if (GetKeywords().Contains("Recover"))
     {
         size = Math.Min(GetSize(), size + 1);
     }
     if (GetKeywords().Contains("Stunned"))
     {
         baseKeywords.Remove("Stunned");
     }
     else
     {
         hasUsedAction = false;
         movesLeft     = GetSpeed();
     }
 }