コード例 #1
0
    private static Sinn ModifyCharakterSinnNatur(Senses chosenSinn, int modValue)
    {
        int  sinnId   = (int)chosenSinn + 1;
        Sinn charSinn = GetSinnAngeborenById <Sinn> (sinnId);

        charSinn.value = modValue;         //Kurzsichtig
        return(charSinn);
    }
コード例 #2
0
    /// <summary>
    /// Checks the relevance fachkenntnis: Falls der Charakter einen höheren Wert besitzt, als die Restriktionen, wird true zurück gegeben
    /// Bemerkung: Zu prüfenden Charakterwerte können auch die Sinne sein, welche als Liste übergeben werden. Dann müssen alle Sinne des Charakters mit Restriktion geprüft werden.
    /// <returns><c>true</c>, if relevance fachkenntnis was checked, <c>false</c> otherwise.</returns>
    /// <param name="fkObject">Fk object.</param>
    private bool CheckRelevanceFertigkeit(List <LENEValue> restrictionEigenschaften)
    {
        //Hole Reflektionen der Charaktereigenschaften
        List <FieldInfo> eigenschaftenCharakterReflect = mCharacterHelper.GetCharacterFieldValues();

        //Falls keine Restriktion vorliegt, ist die Eigenschaft relevant!
        if (restrictionEigenschaften == null || restrictionEigenschaften.Count == 0)
        {
            return(true);
        }

        foreach (var item in restrictionEigenschaften)
        {
            foreach (FieldInfo eigenschaftReflect in eigenschaftenCharakterReflect)
            {
                int?characterValue = eigenschaftReflect.GetValue(mCharacterHelper.mCharacter) as int?;
                if (characterValue != null)
                {
                    //Fertigkeit zurückgeben
                    LENEValue newObject = new LENEValue();
                    newObject.name = eigenschaftReflect.Name;
                    newObject.val  = characterValue.Value;
                    if (ReflectValue(item, newObject) == true)
                    {
                        return(true);
                    }
                }
                else                     //könnte liste sein
                {
                    if (typeof(IList).IsAssignableFrom(eigenschaftReflect.FieldType))
                    {
                        var listValues = eigenschaftReflect.GetValue(mCharacterHelper.mCharacter);
                        // By now, we know that this is assignable from IList, so we can safely cast it.
                        foreach (var element in listValues as IList)
                        {
                            Type t = element.GetType();
                            if (t.Equals(typeof(Sinn)))
                            {
                                Sinn      sElement   = element as Sinn;
                                LENEValue newElement = new LENEValue();
                                newElement.name = sElement.name;
                                newElement.val  = sElement.value;
                                if (ReflectValue(item, newElement) == true)
                                {
                                    return(true);
                                }
                            }
                        }
                    }
                }
            }
        }
        //Falls nichts gefunden, Test fehlgeschlagen
        return(false);
    }
コード例 #3
0
    /// <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);
        }
    }