/// <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); } }
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); } }