/// <summary>
    /// Basiseigenschaft: Zaubertalent
    /// </summary>
    /// <param name="mChar">M char.</param>
    public static int ComputeBasisZt(MidgardCharakter mChar)
    {
        const int minElf = 61;

        int aTypID           = (int)mChar.Archetyp + 1;               //enum nullbasiert
        int minValueZtFromLE = GetMinValueForAbenteuerTyp(aTypID, 6); //6==Zt

        //Grundwurf
        mChar.Zt = Mathf.Max(UnityEngine.Random.Range(1, 101), UnityEngine.Random.Range(1, 101));

        //Leiteigenschaften
        mChar.Zt = RepeatThrowBasisEigenschaft(mChar.Zt, minValueZtFromLE);

        switch (mChar.Spezies)
        {
        case Races.Elf:
            mChar.Zt = RepeatThrowBasisEigenschaft(mChar.Zt, minElf);
            break;

        default:
            break;
        }

        return(mChar.Zt);
    }
    public void ModifySpracheUngewoehnlicheFertigkeiten(List <FachkenntnisRefAllgemein> fachkenntnisse, InventoryItem item, List <InventoryItem> returnListFach)
    {
        MidgardCharakter mCharacter = mCharacterHelper.mCharacter;

        if (item.id == 63 || item.id == 69)
        {
            FachkenntnisRefAllgemein fachRef = fachkenntnisse.Where(e => e.id == item.id).ToList()[0];
            fachkenntnisse.Remove(fachRef);
            if (fachRef.sprache != null)
            {
                item.name += "-" + fachRef.sprache;
                if (item.id == 69)                   //Sprechen: Lösche Sprach items bei zu geringer intelligenz: Sprechen
                {
                    if (item.cost == 3 && mCharacter.In < 31)
                    {
                        returnListFach.Remove(item);
                    }
                }
                else if (item.id == 63)                    //Schreiben: Lösche Sprache bei zu geringer INtelligenz: Schreiben
                {
                    if ((item.cost == 1 || item.cost == 2) && mCharacter.In < 21)
                    {
                        returnListFach.Remove(item);
                    }
                    else if (item.cost == 3 && mCharacter.In < 61)
                    {
                        returnListFach.Remove(item);
                    }
                }
            }
        }
    }
Beispiel #3
0
    public void Awake()
    {
        Toolbox          globalVars = Toolbox.Instance;
        MidgardCharakter mCharacter = globalVars.mCharacter;

        orderPages.Add(LernFachPage);
        orderPages.Add(LernWaffePage);
        orderPages.Add(LernZauberPage);
        twinPages.Add(FachChosenPage);
        twinPages.Add(WaffenChosenPage);
        twinPages.Add(ZauberChosenPage);

        //Hier lässt sich die Maximalzahl festlegen
        int katIdCharacter = CharacterEngine.GetKategorieForAbenteurerTyp((int)mCharacter.Archetyp + 1);

        //Falls der Zauber mächtig
        if (katIdCharacter == 1 || katIdCharacter == 3)
        {
            orderPagesMax = orderPages.Count - 1;
        }
        else
        {
            orderPagesMax = orderPages.Count - 2;
        }
    }
    /// <summary>
    /// Basiseigenschaft: Geschicklichkeit
    /// </summary>
    /// <param name="mChar">M char.</param>
    public static int ComputeBasisGs(MidgardCharakter mChar)
    {
        const int minHalbling = 61;
        const int minGnom     = 81;

        //Hole min-Wert für Leiteigenschaft
        int aTypID           = (int)mChar.Archetyp + 1;               //enum nullbasiert
        int minValueGsFromLE = GetMinValueForAbenteuerTyp(aTypID, 2); //2==Gs

        //Grundwurf
        mChar.Gs = Mathf.Max(UnityEngine.Random.Range(1, 101), UnityEngine.Random.Range(1, 101));

        //Leiteigenschaften
        mChar.Gs = RepeatThrowBasisEigenschaft(mChar.Gs, minValueGsFromLE);

        //Anpassung
        switch (mChar.Spezies)
        {
        case Races.Halbling:
            mChar.Gs = RepeatThrowBasisEigenschaft(mChar.Gs, minHalbling);
            break;

        case Races.Berggnom:
        case Races.Waldgnom:
            mChar.Gs = RepeatThrowBasisEigenschaft(mChar.Gs, minGnom);
            break;

        default:
            break;
        }

        return(mChar.Gs);
    }
    /// <summary>
    /// Prepares the angeborene fertigkeiten mit den Standardwerten.
    /// </summary>
    public static void PrepareAngeboreneFertigkeiten(MidgardCharakter mChar)
    {
        //Hole die angeborenen Eigenschaften
        List <Sinn> sinne = MidgardResourceReader.GetMidgardResource <AngeboreneFertigkeiten>(MidgardResourceReader.MidgardAngeboren).listSinne;

        mChar.listSinne = sinne;
    }
    public void SerializeMidgardCharacter()
    {
        Toolbox          globalVars = Toolbox.Instance;
        MidgardCharakter mChar      = globalVars.mCharacter;

        MidgardCharacterSaveLoad.Save(mChar);
    }
    /// <summary>
    /// Modifies the waffen for race.
    ///
    /// Elfen nutzen zu Beginn auschließlich folgende Waffen {1,2,7,13,14,15,21,23,24,27,58,57,40,42,43,44,45,47,48,51,4,20,22,35,11,16}:
    ///     Anderthalbhänder, id=1
    ///     Bihänder, id=2
    ///     Dolch, id=7,
    ///     Handaxt, id=13
    ///     Kampfstab, id=14
    ///     Keule, id=15
    ///     Kurzschwert, id=21
    ///     Langschwert, id=23
    ///     Lanze, id=24
    ///     leichter Speer, id=27
    ///     Magierstab,id=58
    ///     Magierstecken, id=57
    ///     Stoßspeer,id=40
    ///     Streitkolben,id=42
    ///     waffenloser Kampf, id=43
    ///     Werfen, id=44
    ///     Wurfaxt, id=45
    ///     Wurfkeule, id=47
    ///     Wurfmesser, id=48
    ///     Wurspeer, id=51
    ///     Bogen, id=4
    ///     Kurzbogen, id=20
    ///     Langbogen, id=22
    ///     Schleuder, id=35
    ///     großer Schild, id=11
    ///     kleiner Schild, id=16
    ///
    /// Gnome: {7,13,15,21,27,58,40,42,43,44,45,47,48,49,51,26,3,4,20,35,6,16}
    ///     Dolch, id=7
    ///     Handaxt,id=13
    ///     Keule,id=15
    ///     Kurzschwert, id=21
    ///     leichter Speer, id=27
    ///     Magierstab, id=58
    ///     Stoßspeer, id=40
    ///     Streitkolben, id=42
    ///     waffenloser Kampf, id=43
    ///     Werfen, id=44
    ///     Wurfaxt,id=45
    ///     Wurfkeule, id=47
    ///     Wurfmesser, id=48
    ///     Wurfpfeil, id=49
    ///     Wurfspeer, id=51
    ///     leichte Armbrust, id=26
    ///     Blasrohr, id=3
    ///     Bogen, id=4
    ///     Kurzbogen,id=20
    ///     Schleuder,id=35
    ///     Buckler, id=6
    ///     kleiner Schild, id=16
    ///
    /// Halblinge: {7,13,15,18,21,23,27,58,40,41,43,44,45,47,51,4,20,35,16}
    ///     Dolch, id=7
    ///     Handaxt, id=13
    ///     Keule, id=15
    ///     Kriegshammer,id=18
    ///     Kurzschwert, id=21
    ///     Langschwert,id=23
    ///     leichter Speer,id=27
    ///     Magierstab, id=58
    ///     Stoßspeer,id=40
    ///     Streitaxt, id=41
    ///     waffenloser Kampf,id=43
    ///     Werfen, id=44
    ///     Wurfaxt, id=45
    ///     Wurfkeule, id=47
    ///     Wurfmesser, id=48
    ///     Wurfspeer, id=51
    ///     Bogen, id=4
    ///     Kurzbogen, id=20
    ///     Schleuder, id=35
    ///     kleiner Schild, id=16
    ///
    /// Zwerge: {1,7,8,12,13,15,54,18,21,23,24,58,28,32,34,38,40,41,39,42,43,44,45,46,47,26,36,3,35,11,16}
    ///     Anderhalbhänder, id=1
    ///     Dolch, id=7
    ///     Faustkampf, id=8
    ///     Handaxt, id=13
    ///     Hellebarde, id=12
    ///     Keule,id=15
    ///     Kriegsflegel, id=54
    ///     Kriegshammer, id=18
    ///     Kurzschwert,id=21
    ///     Langschwert,id=23
    ///     Lanze,id=24
    ///     Magierstab, id=58
    ///     Morgenstern, id=28
    ///     Peitsche, id=32
    ///     Schlachtbeil, id=34
    ///     Stabkeule,id=38
    ///     Stoßspeer,id=40
    ///     Streitaxt,id=41
    ///     Stielhammer, id=39
    ///     Streitkolben, id=42
    ///     waffenloser Kampf, id=43
    ///     Werfen, id=44
    ///     Wurfaxt,id=45
    ///     Wurfhammer, id=46
    ///     Wurfkeule, id=47
    ///     leichte Armbrust,id=26
    ///     schwere Armbrust, id=36
    ///     Blasrohr, id=3
    ///     Schleuder, id=35
    ///     großer Schild,id=11
    ///     kleiner Schild, id=16
    ///
    /// </summary>
    public void ModifyWaffenForRace()
    {
        MidgardCharakter mCharacter = mCharacterHelper.mCharacter;

        if (mCharacter.Spezies == Races.Elf)
        {
            int[] deleteWaffenIds = { 1, 2, 7, 13, 14, 15, 21, 23, 24, 27, 58, 57, 40, 42, 43, 44, 45, 47, 48, 51, 4, 20, 22, 35, 11, 16 };
            DeleteWaffenFromLernplan(deleteWaffenIds);
        }
        else if (mCharacter.Spezies == Races.Halbling)
        {
            int[] deleteWaffenIds = { 7, 13, 15, 18, 21, 23, 27, 58, 40, 41, 43, 44, 45, 47, 51, 4, 20, 35, 16 };
            DeleteWaffenFromLernplan(deleteWaffenIds);
        }
        else if (mCharacter.Spezies == Races.Zwerg)
        {
            int[] deleteWaffenIds = { 1, 7, 8, 12, 13, 15, 54, 18, 21, 23, 24, 58, 28, 32, 34, 38, 40, 41, 39, 42, 43, 44, 45, 46, 47, 26, 36, 3, 35, 11, 16 };
            DeleteWaffenFromLernplan(deleteWaffenIds);
        }
        else if (mCharacter.Spezies == Races.Berggnom || mCharacter.Spezies == Races.Waldgnom)
        {
            int[] deleteWaffenIds = { 7, 13, 15, 21, 27, 58, 40, 42, 43, 44, 45, 47, 48, 49, 51, 26, 3, 4, 20, 35, 6, 16 };
            DeleteWaffenFromLernplan(deleteWaffenIds);
        }
    }
Beispiel #8
0
    //it's static so we can call it from anywhere
    public static bool Save(MidgardCharakter mCharacter)
    {
        bool successSerialize = true;

        MidgardCharacterSaveLoad.midgardSavings.savedCharacters.Add(mCharacter);
        successSerialize = SerializeFile();
        return(successSerialize);
    }
Beispiel #9
0
    //it's static so we can call it from anywhere
    public static bool SaveChosen(MidgardCharakter mCharacter)
    {
        bool successSerialize = true;

        MidgardCharacterSaveLoad.midgardSavings.chosenCharakter = mCharacter;
        successSerialize = SerializeFile();
        return(successSerialize);
    }
    public void SetCharacterDescription()
    {
        Toolbox          globalVars = Toolbox.Instance;
        MidgardCharakter mChar      = globalVars.mCharacter;

        mChar.CharacterName         = inCharName.text;
        mChar.CharacterBeschreibung = inCharBeschreibung.text;
    }
    /// <summary>
    /// Computes the erscheinung quick.
    /// </summary>
    /// <param name="mChar">M char.</param>
    public static void ComputePsychisch(MidgardCharakter mChar)
    {
        ComputePA(mChar);
        ComputeWkSb(mChar);

        //Minimum immer -> Achtung pA muss bei gewissen A-Typen-Min-Werte einhalten
        mChar.pA = Mathf.Max(1, mChar.pA);
        mChar.Sb = Mathf.Max(1, mChar.Sb);
        mChar.Wk = Mathf.Max(1, mChar.Wk);
    }
    /// <summary>
    /// Würfle Händigkeit ohne sie im Charakter zu setzen
    /// </summary>
    /// <returns></returns>
    public static int ComputeHandWurf(MidgardCharakter mChar)
    {
        int handW20 = UnityEngine.Random.Range(1, 21);

        if (mChar.Spezies == Races.Berggnom || mChar.Spezies == Races.Waldgnom)
        {
            handW20 = 20;
        }
        return(handW20);
    }
Beispiel #13
0
    // Use this for initialization
    public virtual void Start()
    {
        Toolbox globalVars = Toolbox.Instance;

        mCharacter      = globalVars.mCharacter;
        characterHelper = globalVars.mCharacterHelper;
        //Lade Charaktere-> Neue werden on top auf alte gespeichert
        MidgardCharacterSaveLoad.Load();
        SetCharacterValues();
    }
Beispiel #14
0
    public void LoadMidgardCharacter()
    {
        MidgardCharacterSaveLoad.Load();
        MidgardCharakter mCharLoaded = MidgardCharacterSaveLoad.savedCharacters [0];

        Assert.AreEqual(mCharacter.St, mCharLoaded.St);
        Assert.AreEqual(mCharacter.fertigkeiten[0].name, mCharLoaded.fertigkeiten[0].name);
        Assert.AreEqual(mCharacter.waffenFertigkeiten[0].name, mCharLoaded.waffenFertigkeiten[0].name);
        Assert.AreEqual(mCharacter.zauberFormeln[0].name, mCharLoaded.zauberFormeln[0].name);
    }
    /// <summary>
    /// Fills the panel fachkenntnisse.
    /// </summary>
    public override void FillPanel()
    {
        Toolbox          globalVars = Toolbox.Instance;
        MidgardCharakter mCharacter = globalVars.mCharacter;

        //Prepare listItems
        List <InventoryItem> listItems = mCharacter.fertigkeiten;

        ConfigurePrefab(listItems);
    }
    public void SetTypAndSex()
    {
        Toolbox          globalVars = Toolbox.Instance;
        MidgardCharakter mCharacter = globalVars.mCharacter;
        //Lädt die relevante ID für die ausgewählten optionstext
        int AbID = ObjectXMLHelper.GetChosenOptionIndex(AbTyp.captionText.text, MidgardResourceReader.GetMidgardResource <AbenteurerTypen> (MidgardResourceReader.MidgardAbenteurerTypen).listAbenteurerTypen);

        mCharacter.Archetyp = (AbenteuerTyp)AbID - 1;        //Achtung enum nullbasiert
        mCharacter.Sex      = (Geschlecht)SexTyp.value;
    }
    void Start()
    {
        Toolbox globalVars = Toolbox.Instance;

        mCharacterChosen = globalVars.mCharacter;
        SetChosenCharaterNameSheet();
        HandleScrollBoxes boxFiller = GetComponent <HandleScrollBoxes> ();

        boxFiller.FillFertigkeiten();
    }
Beispiel #18
0
 public AllgemeinWissenLoader()
 {
     mCharacterHelper          = Toolbox.Instance.mCharacterHelper;
     mCharacter                = Toolbox.Instance.mCharacter;
     midgardFertigkeiten       = Toolbox.Instance.MidgardFertigkeiten;
     midgardWaffenFertigkeiten = Toolbox.Instance.MidgardWaffenFertigkeiten;
     allgemeinWissen           = Toolbox.Instance.MidgardAllgemeinwissen;
     lernPlanModifier          = new LernplanModify();
     lernPlanFachWaffen        = new LernPlanFachWaffen();
 }
Beispiel #19
0
 public SetSpeciesTest()
 {
     _mCharacter        = new MidgardCharakter();
     this._ANZAHLRASSEN = 6;
     this._ANZAHL_ABENTEUERERTYPEN_PRO_MENSCH   = 30;
     this._ANZAHL_ABENTEUERERTYPEN_PRO_ELF      = 8;
     this._ANZAHL_ABENTEUERERTYPEN_PRO_BERGGNOM = 9;
     this._ANZAHL_ABENTEUERERTYPEN_PRO_WALDGNOM = this._ANZAHL_ABENTEUERERTYPEN_PRO_BERGGNOM;
     this._ANZAHL_ABENTEUERERTYPEN_PRO_HALBLING = 7;
     this._ANZAHL_ABENTEUERERTYPEN_PRO_ZWERG    = 9;
 }
    public void SaveChosenCaracter()
    {
        Toolbox globalVars = Toolbox.Instance;

        mCharacterChosen = globalVars.mCharacter;

        if (mCharacterChosen != null)
        {
            MidgardCharacterSaveLoad.SaveChosen(mCharacterChosen);
            SetChosenCharaterNameSheet();
        }
    }
    /// <summary>
    /// Fills the panel fachkenntnisse.
    /// </summary>
    public override void FillPanel()
    {
        Toolbox          globalVars = Toolbox.Instance;
        MidgardCharakter mCharacter = globalVars.mCharacter;

        //Prepare listItems
        List <InventoryItem> listItems = mCharacter.zauberFormeln;

        listItems.AddRange(mCharacter.zauberLieder);
        listItems.AddRange(mCharacter.zauberSalze);
        ConfigurePrefab(listItems);
    }
Beispiel #22
0
    void DeleteFertigkeitFromCharacter(InventoryItem item)
    {
        string           type       = item.type;
        MidgardCharakter mCharacter = Toolbox.Instance.mCharacter;

        if (type == "Fach")
        {
            mCharacter.fertigkeiten.Remove(item);
        }
        else if (type.Contains("waffe"))
        {
            mCharacter.waffenFertigkeiten.Remove(item);
        }
    }
    public void SetHerkunft()
    {
        MidgardCharakter mCharacter = Toolbox.Instance.mCharacter;
        string           herkunft   = dropHerkunft.captionText.text;

        if (herkunft == "Stadt")
        {
            mCharacter.StadtLand = StadtLandFluss.Stadt;
        }
        else
        {
            mCharacter.StadtLand = StadtLandFluss.Land;
        }
    }
Beispiel #24
0
    /// <summary>
    /// Creates the inventory item from the string for a name (charactername)
    /// </summary>
    /// <returns>The inventory item.</returns>
    /// <param name="name">Name.</param>
    private CharacterInventoryItem CreateInventoryItem(MidgardCharakter charakter)
    {
        string name = charakter.CharacterName;

        if (name == null || name.Length == 0)
        {
            name = UNNAMED;
        }

        CharacterInventoryItem newItem = new CharacterInventoryItem();

        newItem.name       = name;
        newItem.mCharacter = charakter;
        return(newItem);
    }
    /// <summary>
    /// Computes the APLP quick.
    /// </summary>
    /// <param name="mChar">M char.</param>

    public static void ComputeAPLP(MidgardCharakter mChar)
    {
        const int APMIN = 4;

        mChar.AP = UnityEngine.Random.Range(1, 7) + 3 + mChar.AusB;

        if (mChar.Archetyp == AbenteuerTyp.BN || mChar.Archetyp == AbenteuerTyp.BS || mChar.Archetyp == AbenteuerTyp.BW || mChar.Archetyp == AbenteuerTyp.Kr ||
            mChar.Archetyp == AbenteuerTyp.Soe || mChar.Archetyp == AbenteuerTyp.Wa)
        {
            mChar.AP += 1;
        }
        else if (mChar.Archetyp == AbenteuerTyp.Be || mChar.Archetyp == AbenteuerTyp.Dr || mChar.Archetyp == AbenteuerTyp.Hl || mChar.Archetyp == AbenteuerTyp.Hx ||
                 mChar.Archetyp == AbenteuerTyp.Ma || mChar.Archetyp == AbenteuerTyp.PF || mChar.Archetyp == AbenteuerTyp.PHa || mChar.Archetyp == AbenteuerTyp.PHe ||
                 mChar.Archetyp == AbenteuerTyp.PK || mChar.Archetyp == AbenteuerTyp.PM || mChar.Archetyp == AbenteuerTyp.PT || mChar.Archetyp == AbenteuerTyp.PW ||
                 mChar.Archetyp == AbenteuerTyp.Th)
        {
            mChar.AP -= 1;
        }

        mChar.LP = Mathf.FloorToInt(mChar.Ko / 10) + UnityEngine.Random.Range(1, 7) + 4;
        switch (mChar.Spezies)
        {
        case Races.Elf:
            mChar.LP += 1;
            break;

        case Races.Halbling:
            mChar.AP -= 1;
            mChar.LP -= 2;
            break;

        case Races.Zwerg:
            mChar.LP += 1;
            break;

        case Races.Berggnom:
        case Races.Waldgnom:
            mChar.AP -= 2;
            mChar.LP -= 4;
            break;

        default:
            break;
        }

        //Mindestens 4 AP!
        mChar.AP = Mathf.Max(mChar.AP, APMIN);
    }
    /// <summary>
    /// Bei Zwergen muss Baukunde geklickt werden.
    /// </summary>
    /// <param name="globalVars">Global variables.</param>
    void PreSelectZwerge(Toolbox globalVars)
    {
        //Bei Zwergen muss Baukunde direkt geklickt werden
        MidgardCharakter mCharacter = globalVars.mCharacter;

        if (mCharacter.Spezies == Races.Zwerg)
        {
            InventoryItemDisplay[] arrayItemDisplayFach = inventoryDisplayPrefab.GetComponentsInChildren <InventoryItemDisplay> ();
            foreach (var itemDisplayFach in arrayItemDisplayFach)
            {
                if (itemDisplayFach.nameItem.text == "Baukunde")
                {
                    itemDisplayFach.Click();
                }
            }
        }
    }
    public void SetCharacterSpecies()
    {
        Toolbox          globalVars = Toolbox.Instance;
        MidgardCharakter mCharacter = globalVars.mCharacter;

        Rassen midgardRassen = MidgardResourceReader.GetMidgardResource <Rassen> (MidgardResourceReader.MidgardRassen);

        //Achtung: Hole die ID der Rasse
        int rassenID = ObjectXMLHelper.GetChosenOptionIndex(DropRasse.captionText.text, midgardRassen.rassenListe);

        mCharacter.Spezies = (Races)rassenID - 1;        //Achtung: enum o-basiert


        //Jetzt müsssen die Optionen für die nächste Dropdown gesetzt werden: Wähle dazu die Abenteuertypen mit der entsprechenden RassenID
        List <AbenteurerTyp> listeTypen = ObjectXMLHelper.GetMidgardObjectAByIndexB <AbenteurerTyp, RasseRef>(MidgardResourceReader.GetMidgardResource <AbenteurerTypen> (MidgardResourceReader.MidgardAbenteurerTypen).listAbenteurerTypen, rassenID);

        ObjectXMLHelper.FillDropBoxMidgardObject <AbenteurerTyp> (listeTypen, DropATyp);
    }
Beispiel #28
0
    public override void DeleteFertigkeitFromCharacter(InventoryItem item)
    {
        string           type       = item.type;
        MidgardCharakter mCharacter = Toolbox.Instance.mCharacter;

        if (type == ("Zauberformel"))
        {
            mCharacter.zauberFormeln.Remove(item);
        }
        else if (type == ("Zaubersalz"))
        {
            mCharacter.zauberSalze.Remove(item);
        }
        else if (type == ("Zauberlied"))
        {
            mCharacter.zauberLieder.Remove(item);
        }
    }
    /// <summary>
    /// Basiseigenschaft: Stärke
    /// </summary>
    /// <param name="mChar">M char.</param>
    public static int ComputeBasisSt(MidgardCharakter mChar)
    {
        const int maxElf      = 90;
        const int maxHalbling = 80;
        const int minZwerg    = 61;
        const int maxGnom     = 60;

        //Hole min-Wert für Leiteigenschaft
        int aTypID           = (int)mChar.Archetyp + 1;               //enum nullbasiert
        int minValueStFromLE = GetMinValueForAbenteuerTyp(aTypID, 1); //1==St

        //Grundwurf -> 2 Würfe simuliert
        mChar.St = Mathf.Max(UnityEngine.Random.Range(1, 101), UnityEngine.Random.Range(1, 101));

        //Leiteigenschaften
        mChar.St = RepeatThrowBasisEigenschaft(mChar.St, minValueStFromLE);


        //Anpassung
        switch (mChar.Spezies)
        {
        case Races.Elf:
            mChar.St = Mathf.Min(mChar.St, maxElf);
            break;

        case Races.Halbling:
            mChar.St = Mathf.Min(mChar.St, maxHalbling);
            break;

        case Races.Zwerg:
            mChar.St = RepeatThrowBasisEigenschaft(mChar.St, minZwerg);
            break;

        case Races.Berggnom:
        case Races.Waldgnom:
            mChar.St = Mathf.Min(maxGnom, mChar.St);
            break;

        default:
            break;
        }

        return(mChar.St);
    }
    /// <summary>
    /// Computes the persönliche Ausstrahlung of the Character.
    /// Achtung bei Händler (Hl), Glücksritter (Gl), Ba (Barde) oder Tiermeister (Tm) muss die pA mind. 61 betragen
    /// </summary>
    /// <param name="mChar">M char.</param>
    static void ComputePA(MidgardCharakter mChar)
    {
        const int minPA = 61;

        mChar.pA = Mathf.Min(UnityEngine.Random.Range(1, 101) + 3 * (Mathf.FloorToInt(mChar.In / 10 + mChar.Aussehen / 10)) - 30, 100);

        switch (mChar.Archetyp)
        {
        case AbenteuerTyp.Hä:
        case AbenteuerTyp.Gl:
        case AbenteuerTyp.Ba:
        case AbenteuerTyp.Tm:
            mChar.pA = Mathf.Max(minPA, mChar.pA);
            break;

        default:
            break;
        }
    }