Пример #1
0
    /// <summary>
    /// Нанести урон тайлу
    /// </summary>
    /// <param name="damage"></param>
    public void Damage(float damage)
    {
        HP -= damage;
        // Меняем тайл в зависимости от HP
        TileDependOnHP neededTile = tilesSet.LastOrDefault(tileData => tileData.HP >= HP);

        if (neededTile != null && neededTile.tile != currentTile)
        {
            currentTile = neededTile.tile;
            initialTilemap.SetTile(cellPosition, currentTile);
        }

        // Если здоровье на нуле, то действие окончено - меняем тайлмап и вызываем событие
        if (HP <= 0)
        {
            initialTilemap.SetTile(cellPosition, null);
            destroyedTilemap.SetTile(cellPosition, currentTile);
            OnWorkedOut?.Invoke(this);
        }
    }
Пример #2
0
 public override bool HandlePosition(int x, int y)
 {
     if (CheckPosition(x, y))
     {
         if (generativeTilemap == null)
         {
             generativeTilemap = tilemapsSet.FindByCode(tilemapCode);
         }
         generativeTilemap.SetTile(new Vector3Int(x, y, 0), tile);
         return(true);
     }
     else
     {
         return(false);
     }
 }