using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Serialization;
using Utility;

public class Developer : MonoBehaviour
{
    private string _name;
    
    [SerializeField]
    private double _baseEfficiency = 1.0;

    [SerializeField, ShowOnly]
    private double _currentCurrentEfficiency = 1.0;
    
    [SerializeField]
    private int _fingersLeft = 10;
    
    /// <summary>
    /// Gibt die Grundeffizienz des Entwicklers zurück.
    /// </summary>
    public double BaseEfficiency => _baseEfficiency;

    /// <summary>
    /// Gibt die Anzahl der Finger zurück.
    /// </summary>
    public int FingersLeft => _fingersLeft;
    
    /// <summary>
    /// Gibt die aktuelle Effizienz des Entwicklers in Prozent zurück.
    /// </summary>
    public double CurrentEfficiency => _currentCurrentEfficiency;

    public string Name => _name;
    
    public void UpdateEfficiency()
    {
        _currentCurrentEfficiency = _baseEfficiency * (_fingersLeft / 10.0);
    }

    /// <summary>
    /// Der Entwickler wird verletzt und der Idiot bricht sich ausgerechnet einen Finger...
    /// </summary>
    public void Hurt()
    {
        _fingersLeft--;

        // Ob er stirbt oder nicht, für uns hat er auf jeden Fall seinen Nutzen verloren.
        if (_fingersLeft == 0)
            Die();
    }

    private void Die()
    {
        Debug.Log($"{Name} ist verreckt.");
    }
}
