/// <summary>
    /// Gets the I fertigkeit from reference.
    /// </summary>
    /// <returns>The I fertigkeit from reference.</returns>
    /// <param name="charakterFertigkeit">Charakter fertigkeit.</param>
    /// <param name="fertigkeiten">Fertigkeiten.</param>
    /// <typeparam name="U">The 1st type parameter.</typeparam>
    /// <typeparam name="T">The 2nd type parameter.</typeparam>
    private IFertigkeit GetIFertigkeitFromRef <U, T>(U charakterFertigkeit, List <T> fertigkeiten) where U : ILernplan where T : IFertigkeit
    {
        int         fertId     = charakterFertigkeit.id;
        IFertigkeit fertObject = ObjectXMLHelper.GetMidgardObjectById <T>(fertigkeiten, fertId);

        return(fertObject);
    }
    /// <summary>
    /// Gets the relevant fachkenntnisse.
    /// </summary>
    /// <param name="charakterFachkenntnisse">Charakter fachkenntnisse.</param>
    private List <InventoryItem> GetRelevantZauber <U, T>(List <U> charakterZauber, List <T> allZauber) where U : IDisplay where T : IZauber
    {
        List <InventoryItem> listItems = new List <InventoryItem> ();

        //Fachkenntnisse für Lernplan
        foreach (var zauberRef in charakterZauber)
        {
            int           zauberID   = zauberRef.id;
            IZauber       fertObject = ObjectXMLHelper.GetMidgardObjectById <T>(allZauber, zauberID);
            InventoryItem item       = new InventoryItem();
            item.name = fertObject.name;
            item.val  = "-";
            item.cost = zauberRef.cost;
            listItems.Add(item);
        }
        return(listItems);
    }
    /// <summary>
    /// Modifies the angeborene fertigkeiten durch Würfelwurf
    /// </summary>
    /// <param name="mChar">M char.</param>
    //TODO Modifikation für Rassen
    public static void ModifyAngeboreneFertigkeiten(MidgardCharakter mChar, int w100)
    {
        List <Sinn> sinne = MidgardResourceReader.GetMidgardResource <AngeboreneFertigkeiten>(MidgardResourceReader.MidgardAngeboren).listSinne;

        mChar.listSinne = sinne;
        if (w100 <= 2)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Sehen, 4);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 2 && w100 <= 4)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Hoeren, 4);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 4 && w100 <= 6)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Riechen, 4);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 6 && w100 <= 8)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Schmecken, 4);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 8 && w100 <= 10)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Tasten, 4);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 10 && w100 <= 20)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Sehen, 10);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 20 && w100 <= 30)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Hoeren, 10);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 30 && w100 <= 40)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Riechen, 10);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 40 && w100 <= 50)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Schmecken, 10);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 50 && w100 <= 60)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.Tasten, 10);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 60 && w100 <= 65)
        {
            Sinn sinn  = ModifyCharakterSinnNatur(Senses.SechsterSinn, 6);
            Sinn mSinn = ObjectXMLHelper.GetMidgardObjectById(mChar.listSinne, sinn.id);
            mSinn.value = sinn.value;
        }
        else if (w100 > 65 && w100 <= 70)
        {
            AngeboreneFertigkeit angFert = ModifyCharakterSinnNatur(Natur.Berserkergang, Mathf.FloorToInt(18 - mChar.Wk / 5));
            mChar.listAngeboren.Add(angFert);
        }
        else if (w100 > 70 && w100 <= 75)
        {
            AngeboreneFertigkeit angFert = ModifyCharakterSinnNatur(Natur.GuteReflexe, 9);
            mChar.listAngeboren.Add(angFert);
        }
        else if (w100 > 75 && w100 <= 80)
        {
            AngeboreneFertigkeit angFert = ModifyCharakterSinnNatur(Natur.Nachtsicht, 8);
            mChar.listAngeboren.Add(angFert);
        }
        else if (w100 > 80 && w100 <= 85)
        {
            AngeboreneFertigkeit angFert = ModifyCharakterSinnNatur(Natur.Richtungssinn, 12);
            mChar.listAngeboren.Add(angFert);
        }
        else if (w100 > 85 && w100 <= 90)
        {
            AngeboreneFertigkeit angFert = ModifyCharakterSinnNatur(Natur.Robustheit, 9);
            mChar.listAngeboren.Add(angFert);
        }
        else if (w100 > 90 && w100 <= 95)
        {
            AngeboreneFertigkeit angFert = ModifyCharakterSinnNatur(Natur.Wachgabe, 6);
            mChar.listAngeboren.Add(angFert);
        }
        else if (w100 > 95 && w100 <= 99)
        {
            AngeboreneFertigkeit angFert = ModifyCharakterSinnNatur(Natur.Einpraegen, 4);
            mChar.listAngeboren.Add(angFert);
        }
    }