Beispiel #1
0
    /// <summary>
    /// Sets the trophy.
    /// </summary>
    /// <returns>The trophy.</returns>
    /// <param name="upbring">Upbring.</param>
    /// <param name="charClass">Char class.</param>


    int setTrophy(NPCData.BgUpgring upbring, NPCData.CharClass charClass)
    {
        if (upbring == NPCData.BgUpgring.Rich || upbring == NPCData.BgUpgring.VeryRich || upbring == NPCData.BgUpgring.Noble)
        {
            switch (charClass)
            {
            default:
                return(120000);
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.Royal)
        {
            switch (charClass)
            {
            default:
                return(120000);
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.MiddleClass)
        {
            switch (charClass)
            {
            default:
                return(120000);
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.Poor || upbring == NPCData.BgUpgring.VeryPoor)
        {
            switch (charClass)
            {
            default:
                return(120000);
            }
        }

        return(120000);
    }
    public float setGold(NPCData.BgUpgring upbring)
    {
        iterator += 1;
        int chargold;

        switch (upbring)
        {
        case NPCData.BgUpgring.VeryPoor:
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
            chargold = Random.Range(0, 6);
            return((float)chargold);

        case NPCData.BgUpgring.Poor:
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
            chargold = Random.Range(4, 15);
            return((float)chargold);

        case NPCData.BgUpgring.MiddleClass:
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
            chargold = Random.Range(25, 50);
            return((float)chargold);

        case NPCData.BgUpgring.Rich:
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
            chargold = Random.Range(100, 200);
            return((float)chargold);

        case NPCData.BgUpgring.VeryRich:
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
            chargold = Random.Range(300, 700);
            return((float)chargold);

        case NPCData.BgUpgring.Noble:
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
            chargold = Random.Range(1000, 1500);
            return((float)chargold);

        case NPCData.BgUpgring.Royal:
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
            chargold = Random.Range(2000, 3000);
            return((float)chargold);

        default:
            return(0f);
        }
    }
Beispiel #3
0
    //1000 weapons, 2000 armor, 3000 head, 4000 face, 5000 neck, 6000 shoulders, 7000 arms, 8000 legs, 9000 make up, 10000 ring, 11000 amulet, 12000 trophy
    //public int[] charEquipment = new int[12];

    public int setCharEquipment(int selector, NPCData.BgUpgring upbring, NPCData.CharClass charClass, NPCData.CharRace charRace)
    {
        iterator += 1;
        switch (selector)
        {
        case 0:
            return(setWeapon(upbring, charClass));

        case 1:
            return(setArmour(upbring, charClass, charRace));

        case 2:
            return(setHead(upbring, charClass));

        case 3:
            return(setFace(upbring, charClass));

        case 4:
            return(setNeck(upbring, charClass));

        case 5:
            return(setShoulder(upbring, charClass));

        case 6:
            return(setArms(upbring, charClass));

        case 7:
            return(setLegs(upbring, charClass));

        case 8:
            return(setMakeUp(upbring, charClass));

        case 9:
            return(setRing(upbring, charClass));

        case 10:
            return(setAmulet(upbring, charClass));

        case 11:
            return(setTrophy(upbring, charClass));

        default:
            return(0);
        }
    }
    NPCData.CharTraits setUpbringTraits(NPCData.BgUpgring upbring, NPCData.CharSex charSex)
    {
        iterator += 1;
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);

        switch (upbring)
        {
        case NPCData.BgUpgring.Royal:
            randNum = Random.Range(0, 4);
            switch (randNum)
            {
            case 0:
                if (charSex == NPCData.CharSex.Man || charSex == NPCData.CharSex.Trap || charSex == NPCData.CharSex.Cuntboy)
                {
                    return(NPCData.CharTraits.Prince);
                }
                else
                {
                    return(NPCData.CharTraits.Princess);
                }

            case 1:
                if (charSex == NPCData.CharSex.Man || charSex == NPCData.CharSex.Trap || charSex == NPCData.CharSex.Cuntboy)
                {
                    return(NPCData.CharTraits.King);
                }
                else
                {
                    return(NPCData.CharTraits.Queen);
                }

            case 2:
                return(NPCData.CharTraits.Noble);

            case 3:
                return(NPCData.CharTraits.Prideful);

            case 4:
                return(NPCData.CharTraits.Elegant);

            default:
                return(setRandomTrait());
            }

        case NPCData.BgUpgring.Noble:
            randNum = Random.Range(0, 6);
            switch (randNum)
            {
            case 0:
                return(NPCData.CharTraits.Noble);

            case 1:
                return(NPCData.CharTraits.Duelist);

            case 2:
                return(NPCData.CharTraits.Musician);

            case 3:
                return(NPCData.CharTraits.Prideful);

            case 4:
                return(NPCData.CharTraits.Slothful);

            case 5:
                return(NPCData.CharTraits.Smoker);

            case 6:
                return(NPCData.CharTraits.Elegant);

            default:
                return(setRandomTrait());
            }

        case NPCData.BgUpgring.VeryRich:
            randNum = Random.Range(0, 5);
            switch (randNum)
            {
            case 0:
                return(NPCData.CharTraits.Hedonist);

            case 1:
                return(NPCData.CharTraits.Prideful);

            case 2:
                return(NPCData.CharTraits.Eccentric);

            case 3:
                return(NPCData.CharTraits.Craven);

            case 4:
                return(NPCData.CharTraits.Greedy);

            case 5:
                return(NPCData.CharTraits.Smoker);

            default:
                return(setRandomTrait());
            }

        case NPCData.BgUpgring.Rich:
            randNum = Random.Range(0, 5);
            switch (randNum)
            {
            case 0:
                return(NPCData.CharTraits.Hedonist);

            case 1:
                return(NPCData.CharTraits.Prideful);

            case 2:
                return(NPCData.CharTraits.Eccentric);

            case 3:
                return(NPCData.CharTraits.Craven);

            case 4:
                return(NPCData.CharTraits.Greedy);

            case 5:
                return(NPCData.CharTraits.Smoker);

            default:
                return(setRandomTrait());
            }

        case NPCData.BgUpgring.MiddleClass:
            randNum = Random.Range(0, 5);
            switch (randNum)
            {
            case 0:
                return(NPCData.CharTraits.Administrator);

            case 1:
                return(NPCData.CharTraits.Diligent);

            case 2:
                return(NPCData.CharTraits.Studious);

            case 3:
                return(NPCData.CharTraits.Alcoholic);

            case 4:
                return(NPCData.CharTraits.Hopeful);

            case 5:
                return(NPCData.CharTraits.Cooperative);

            default:
                return(setRandomTrait());
            }

        case NPCData.BgUpgring.Poor:
            randNum = Random.Range(0, 5);
            switch (randNum)
            {
            case 0:
                return(NPCData.CharTraits.DrugAddict);

            case 1:
                return(NPCData.CharTraits.Hopeless);

            case 2:
                return(NPCData.CharTraits.Honest);

            case 3:
                return(NPCData.CharTraits.Humble);

            case 4:
                return(NPCData.CharTraits.Vigorous);

            case 5:
                return(NPCData.CharTraits.Rough);

            default:
                return(setRandomTrait());
            }

        case NPCData.BgUpgring.VeryPoor:
            randNum = Random.Range(0, 5);
            switch (randNum)
            {
            case 0:
                return(NPCData.CharTraits.DrugAddict);

            case 1:
                return(NPCData.CharTraits.BrokenWill);

            case 2:
                return(NPCData.CharTraits.Honest);

            case 3:
                return(NPCData.CharTraits.Humble);

            case 4:
                return(NPCData.CharTraits.Vigorous);

            case 5:
                return(NPCData.CharTraits.Rough);

            default:
                return(setRandomTrait());
            }

        default:
            return(setRandomTrait());
        } //
    }     // // // //
    public NPCData.CharTraits setTrait(int iter, NPCData.CharClass charClass, NPCData.CharRace charRace, NPCData.CharPersonality charPersonality, NPCData.BgUpgring upbring, float beauty, NPCData.CharSex charSex)
    {
        int multi = 100 / iter;

        iterator += 1;
        int retValue = 0;

        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
        //randNum = Random.Range (0, count);
        randNum = Random.Range(0, 100);

        if (randNum <= multi)
        {
            iterator += 1;
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator + 50);
            randNum = Random.Range(0, 100);

            if (randNum >= 83)
            {
                retValue = (int)setRaceTraits(charRace);
            }
            else if (randNum >= 66)
            {
                retValue = (int)setClassTraits(charClass);
            }
            else if (randNum >= 50)
            {
                retValue = (int)setPersonalityTraits(charPersonality);
            }
            else if (randNum >= 34)
            {
                retValue = (int)setUpbringTraits(upbring, charSex);
            }
            else if (randNum >= 16)
            {
                retValue = (int)setBeautyTraits(beauty);
            }
            else
            {
                retValue = (int)setRandomTrait();
            }
        }


        if (retValue == trait1)
        {
            return(NPCData.CharTraits.NONE);
        }
        else if (retValue == trait2)
        {
            return(NPCData.CharTraits.NONE);
        }
        else if (retValue == trait3)
        {
            return(NPCData.CharTraits.NONE);
        }
        else if (retValue == trait4)
        {
            return(NPCData.CharTraits.NONE);
        }
        else if (retValue == trait5)
        {
            return(NPCData.CharTraits.NONE);
        }
        else if (retValue == trait6)
        {
            return(NPCData.CharTraits.NONE);
        }
        else if (retValue == trait7)
        {
            return(NPCData.CharTraits.NONE);
        }
        else if (retValue == trait8)
        {
            return(NPCData.CharTraits.NONE);
        }
        else if (retValue == trait9)
        {
            return(NPCData.CharTraits.NONE);
        }
        else if (retValue == trait10)
        {
            return(NPCData.CharTraits.NONE);
        }


        switch (iter)
        {
        case 1:

            trait1 = retValue;
            break;

        case 2:
            trait2 = retValue;
            break;

        case 3:
            trait3 = retValue;
            break;

        case 4:
            trait4 = retValue;
            break;

        case 5:
            trait5 = retValue;
            break;

        case 6:
            trait6 = retValue;
            break;

        case 7:
            trait7 = retValue;
            break;

        case 8:
            trait8 = retValue;
            break;

        case 9:
            trait9 = retValue;
            break;

        case 10:
            trait10 = retValue;
            break;

        default:

            break;
        }



        return((NPCData.CharTraits)retValue);
    }
Beispiel #6
0
    /// <summary>
    /// Sets the arms.
    /// </summary>
    /// <returns>The arms.</returns>
    /// <param name="upbring">Upbring.</param>
    /// <param name="charClass">Char class.</param>

    int setArms(NPCData.BgUpgring upbring, NPCData.CharClass charClass)
    {
        if (upbring == NPCData.BgUpgring.Royal)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Soldier:
                return(70001);

            case NPCData.CharClass.DarkPaladin:
                return(70001);

            case NPCData.CharClass.Paladin:
                return(70001);

            default:
                if (randNum > 80)
                {
                    return(70000);
                }
                else
                {
                    return(70000);
                }
            }
        }

        //////////
        ///
        if (upbring == NPCData.BgUpgring.Rich || upbring == NPCData.BgUpgring.VeryRich || upbring == NPCData.BgUpgring.Noble)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Soldier:
                return(70001);

            case NPCData.CharClass.DarkPaladin:
                return(70001);

            case NPCData.CharClass.Paladin:
                return(70001);

            default:
                if (randNum > 80)
                {
                    return(70000);
                }
                else
                {
                    return(70000);
                }
            }
        }



        //////////

        if (upbring == NPCData.BgUpgring.MiddleClass)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Soldier:
                return(70001);

            case NPCData.CharClass.DarkPaladin:
                return(70001);

            case NPCData.CharClass.Paladin:
                return(70001);

            default:
                if (randNum > 80)
                {
                    return(70007);
                }
                else
                {
                    return(70000);
                }
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.Poor || upbring == NPCData.BgUpgring.VeryPoor)
        {
            switch (charClass)
            {
            default:
                if (randNum > 80)
                {
                    return(70006);
                }
                else
                {
                    return(70000);
                }
            }
        }

        return(70000);
    }
Beispiel #7
0
    /// <summary>
    /// Sets the weapon.
    /// </summary>
    /// <returns>The weapon.</returns>
    /// <param name="upbring">Upbring.</param>
    /// <param name="charClass">Char class.</param>



    int setWeapon(NPCData.BgUpgring upbring, NPCData.CharClass charClass)
    {
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator + 50);
        randNum = Random.Range(0, 100);

        if (upbring == NPCData.BgUpgring.Royal)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Inquisitor:
                return(10014);

            case NPCData.CharClass.Barbarian:
                return(10007);

            case NPCData.CharClass.DarkPaladin:
                return(10015);

            case NPCData.CharClass.Paladin:
                return(10015);

            case NPCData.CharClass.Enforcer:
                return(10008);

            case NPCData.CharClass.Monk:
                return(10014);

            default:
                if (randNum > 66)
                {
                    return(10020);
                }
                else if (randNum > 33)
                {
                    return(10021);
                }
                else
                {
                    return(10009);
                }
            }
        }
        //////////



        if (upbring == NPCData.BgUpgring.Rich || upbring == NPCData.BgUpgring.VeryRich || upbring == NPCData.BgUpgring.Noble)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Inquisitor:
                return(10014);

            case NPCData.CharClass.Barbarian:
                return(10007);

            case NPCData.CharClass.DarkPaladin:
                return(10015);

            case NPCData.CharClass.Paladin:
                return(10015);

            case NPCData.CharClass.Enforcer:
                return(10008);

            case NPCData.CharClass.Soldier:
                return(10019);

            case NPCData.CharClass.Monk:
                return(10014);

            default:
                if (randNum > 66)
                {
                    return(10020);
                }
                else if (randNum > 33)
                {
                    return(10015);
                }
                else
                {
                    return(10007);
                }
            }
        }



        //////////

        if (upbring == NPCData.BgUpgring.MiddleClass)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Soldier:
                return(10019);

            case NPCData.CharClass.Inquisitor:
                return(10013);

            case NPCData.CharClass.Monk:
                return(10013);

            default:
                if (randNum > 66)
                {
                    return(10002);
                }
                else if (randNum > 33)
                {
                    return(10001);
                }
                else
                {
                    return(10010);
                }
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.Poor || upbring == NPCData.BgUpgring.VeryPoor)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Soldier:
                return(10001);

            case NPCData.CharClass.Warrior:
                return(10001);

            case NPCData.CharClass.Barbarian:
                return(10017);

            case NPCData.CharClass.Inquisitor:
                return(10013);

            case NPCData.CharClass.Monk:
                return(10013);

            default:
                if (randNum > 66)
                {
                    return(10016);
                }
                else if (randNum > 33)
                {
                    return(10018);
                }
                else
                {
                    return(10017);
                }
            }
        }

        return(10001);
    }
Beispiel #8
0
    /// <summary>
    /// Sets the face.
    /// </summary>
    /// <returns>The face.</returns>
    /// <param name="upbring">Upbring.</param>
    /// <param name="charClass">Char class.</param>



    int setFace(NPCData.BgUpgring upbring, NPCData.CharClass charClass)
    {
        if (upbring == NPCData.BgUpgring.Royal)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Scholar:
                return(40003);

            case NPCData.CharClass.Warrior:
                return(40002);

            default:
                if (randNum > 80)
                {
                    return(40005);
                }
                else
                {
                    return(40000);
                }
            }
        }


        //////////


        if (upbring == NPCData.BgUpgring.Rich || upbring == NPCData.BgUpgring.VeryRich || upbring == NPCData.BgUpgring.Noble)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Scholar:
                return(40003);

            case NPCData.CharClass.Warrior:
                return(40002);

            default:
                if (randNum > 80)
                {
                    return(40005);
                }
                else
                {
                    return(40000);
                }
            }
        }



        //////////

        if (upbring == NPCData.BgUpgring.MiddleClass)
        {
            switch (charClass)
            {
            default:
                if (randNum > 80)
                {
                    return(40001);
                }
                else
                {
                    return(40000);
                }
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.Poor || upbring == NPCData.BgUpgring.VeryPoor)
        {
            switch (charClass)
            {
            default:
                if (randNum > 80)
                {
                    return(40001);
                }
                else
                {
                    return(40000);
                }
            }
        }

        return(40001);
    }
Beispiel #9
0
    /// <summary>
    /// Sets the head.
    /// </summary>
    /// <returns>The head.</returns>
    /// <param name="upbring">Upbring.</param>
    /// <param name="charClass">Char class.</param>



    int setHead(NPCData.BgUpgring upbring, NPCData.CharClass charClass)
    {
        if (upbring == NPCData.BgUpgring.Royal)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Inquisitor:
                return(30008);

            case NPCData.CharClass.Politician:
                return(30006);

            default:
                if (randNum > 80)
                {
                    return(30006);
                }
                else
                {
                    return(30005);
                }
            }
        }
        //////////

        if (upbring == NPCData.BgUpgring.Rich || upbring == NPCData.BgUpgring.VeryRich || upbring == NPCData.BgUpgring.Noble)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Inquisitor:
                return(30008);

            case NPCData.CharClass.Politician:
                return(30005);

            default:
                if (randNum > 80)
                {
                    return(30005);
                }
                else
                {
                    return(30004);
                }
            }
        }



        //////////

        if (upbring == NPCData.BgUpgring.MiddleClass)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Inquisitor:
                return(30008);

            case NPCData.CharClass.Politician:
                return(30008);

            default:
                if (randNum > 80)
                {
                    return(30008);
                }
                else
                {
                    return(30009);
                }
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.Poor || upbring == NPCData.BgUpgring.VeryPoor)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Inquisitor:
                return(30008);

            case NPCData.CharClass.Politician:
                return(30009);

            default:
                if (randNum > 80)
                {
                    return(30003);
                }
                else
                {
                    return(30000);
                }
            }
        }

        return(30001);
    }
Beispiel #10
0
    /// <summary>
    /// Sets the armour.
    /// </summary>
    /// <returns>The armour.</returns>
    /// <param name="upbring">Upbring.</param>
    /// <param name="charClass">Char class.</param>



    int setArmour(NPCData.BgUpgring upbring, NPCData.CharClass charClass, NPCData.CharRace charRace)
    {
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator + 50);
        randNum = Random.Range(0, 100);

        switch (charRace)
        {
        case NPCData.CharRace.Elf:
            if (charClass == NPCData.CharClass.DarkPaladin || charClass == NPCData.CharClass.Paladin || charClass == NPCData.CharClass.Warrior || charClass == NPCData.CharClass.Soldier || charClass == NPCData.CharClass.Inquisitor)
            {
                return(20025);                // we need to add the armor
            }
            else
            {
                if (randNum > 80)
                {
                    return(20028);
                }
                else
                {
                    return(20026);                    // we need to add the armor
                }
            }

        default:
            break;
        }


        if (upbring == NPCData.BgUpgring.Rich || upbring == NPCData.BgUpgring.VeryRich || upbring == NPCData.BgUpgring.Noble)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Soldier:
                return(20002);

            case NPCData.CharClass.Inquisitor:
                return(20017);

            case NPCData.CharClass.Paladin:
                return(20019);

            case NPCData.CharClass.Monk:
                return(20009);

            case NPCData.CharClass.Priest:
                return(20009);

            case NPCData.CharClass.Scholar:
                return(20009);

            case NPCData.CharClass.DarkPaladin:
                if (randNum > 50)
                {
                    return(20028);
                }
                else
                {
                    return(20019);                    // we need to add the armor
                }

            default:
                if (randNum > 95)
                {
                    return(20028);
                }
                else if (randNum > 80)
                {
                    if (charRace == NPCData.CharRace.Wolf)
                    {
                        return(20010);
                    }
                    return(20011);
                }
                else if (randNum > 50)
                {
                    return(20003);
                }
                else
                {
                    return(20010);
                }
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.Royal)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Soldier:
                return(20003);

            case NPCData.CharClass.Inquisitor:
                return(20017);

            case NPCData.CharClass.Paladin:
                return(20019);

            case NPCData.CharClass.DarkPaladin:
                return(20019);

            case NPCData.CharClass.Monk:
                return(20009);

            case NPCData.CharClass.Priest:
                return(20009);

            case NPCData.CharClass.Scholar:
                return(20009);

            default:
                if (randNum > 90)
                {
                    return(20028);
                }
                else if (randNum > 75)
                {
                    return(20004);
                }
                else
                {
                    if (charRace == NPCData.CharRace.Wolf)
                    {
                        return(20004);
                    }
                    return(20011);
                }
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.MiddleClass)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Soldier:
                return(20001);

            case NPCData.CharClass.Inquisitor:
                return(20017);

            case NPCData.CharClass.Paladin:
                return(20022);

            case NPCData.CharClass.DarkPaladin:
                return(20022);

            case NPCData.CharClass.Monk:
                return(20009);

            case NPCData.CharClass.Priest:
                return(20009);

            case NPCData.CharClass.Scholar:
                return(20009);

            default:
                if (randNum > 90)
                {
                    return(20028);
                }
                else if (randNum > 70)
                {
                    return(20021);
                }
                else if (randNum > 65)
                {
                    return(20029);
                }
                else
                {
                    return(20008);
                }
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.Poor || upbring == NPCData.BgUpgring.VeryPoor)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Soldier:
                return(20015);

            case NPCData.CharClass.Inquisitor:
                return(20017);

            case NPCData.CharClass.Paladin:
                return(20023);

            case NPCData.CharClass.DarkPaladin:
                return(20023);

            case NPCData.CharClass.Monk:
                return(20009);

            case NPCData.CharClass.Priest:
                return(20009);

            case NPCData.CharClass.Scholar:
                return(20009);


            default:
                if (randNum > 90)
                {
                    return(20028);
                }
                else if (randNum > 75)
                {
                    return(20016);
                }
                else if (randNum > 60)
                {
                    return(20029);
                }
                else
                {
                    return(20020);
                }
            }
        }

        return(20001);
    }
Beispiel #11
0
    /// <summary>
    /// Sets the make up.
    /// </summary>
    /// <returns>The make up.</returns>
    /// <param name="upbring">Upbring.</param>
    /// <param name="charClass">Char class.</param>

    int setMakeUp(NPCData.BgUpgring upbring, NPCData.CharClass charClass)
    {
        if (upbring == NPCData.BgUpgring.Royal)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Barbarian:
                return(90003);

            case NPCData.CharClass.Feral:
                return(90003);

            case NPCData.CharClass.W***e:
                return(90002);

            default:
                if (randNum > 80)
                {
                    return(90000);
                }
                else
                {
                    return(90004);
                }
            }
        }

        //////////


        if (upbring == NPCData.BgUpgring.Rich || upbring == NPCData.BgUpgring.VeryRich || upbring == NPCData.BgUpgring.Noble)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Barbarian:
                return(90003);

            case NPCData.CharClass.Feral:
                return(90003);

            case NPCData.CharClass.W***e:
                return(90002);

            default:
                if (randNum > 80)
                {
                    return(90000);
                }
                else
                {
                    return(90004);
                }
            }
        }



        //////////

        if (upbring == NPCData.BgUpgring.MiddleClass)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Barbarian:
                return(90003);

            case NPCData.CharClass.Feral:
                return(90003);

            case NPCData.CharClass.W***e:
                return(90002);


            default:
                if (randNum > 80)
                {
                    return(90004);
                }
                else
                {
                    return(90000);
                }
            }
        }

        //////////

        if (upbring == NPCData.BgUpgring.Poor || upbring == NPCData.BgUpgring.VeryPoor)
        {
            switch (charClass)
            {
            case NPCData.CharClass.Barbarian:
                return(90003);

            case NPCData.CharClass.Feral:
                return(90003);

            case NPCData.CharClass.W***e:
                return(90002);


            default:
                if (randNum > 80)
                {
                    return(90001);
                }
                else
                {
                    return(90000);
                }
            }
        }

        return(90000);
    }
    public void charCreator(int sexselector, int factionselector, int recruitselector, int positionselector, int classselector, int rankselector,
                            int fetishselector, int beautyselector, int upbringselector, int raceselector, int racespecific, bool pregnantselector)
    {
        //public enum CharSex { Woman, Man, Dickgirl, Futanari, Cuntboy, Trap, Eunuch }; // 0 female, trap 5
        // faction: use 0
        //0 recruited, 1 enemy, 2 monster, 3 neutral, 4 your prisoner, 5 your slave
        // use 12 for retainer in position selector, 1000 for none
        //class: 0 soldier,1 warrior, 2 clerk, 3 bureaucrat, 4 monk/nun, 5 priest, 6 alchemist UNC, 7 mystic UNC, 8 thief, 9 infiltrator, 10 paladin, 11 dark paladin, 12 feral, 13 barbarian
        //14 scout, 15 ranger, 16 community worker, 17 w***e, 18 farmer, 19 industry worker, 20 politician, 21 diplomat, 22 inquisitor, 23 enforcer, 24 Performer, 25 Artist, 26 Scholar
        // 0 C, 1 B, 2 A, 3 S, 1000 random
        //	Fetish: 0 None, 1 Dominant, 2 Submissive, AnalWhore, GroupSex, CumSlut, Incest, Crossdressing, Exhibitionism, PetPlay, RapeFantasy, Voyeurism, Monsters, SizeDifference, 1000 random
        // beauty selector: 0, 20, 40, etc. up to 80+  enter more or less what you want from 0 to 100, it will be random. Any other number is a random
        //upbring:  VeryPoor, Poor, MiddleClass, Rich, VeryRich, Noble, Royal, Count, 1000 for random
        // race: 0 human, 1 furry, 2 avian. 3 aquatic, 4 exotics
        //race specific: 0 human, else check list
        // pregnant selector, use false to have her non pregnant. Need texts for pregnancy before adding this feature
        //race specific: 1000 random, check NPCSettlerRace for info



        charID = NPCControl.NPCGenID;          // id thats going to be used to look for him, should use a genNPC control for this
        NPCControl.NPCGenID += 1;

        charSexC     = npcSettlerSex.setSex(sexselector);
        charName     = npcSettlerName.setName(charSexC);
        charSurname  = npcSettlerName.setSurname();
        charGenderC  = npcSettlerSex.setGender(charSexC);
        cityFactionC = npcSettlerfaction.setFaction(factionselector);

        isRecruited = npcSettlerSide.recruitStatus(recruitselector);
        isEnemy     = npcSettlerSide.enemyStatus(recruitselector);
        isMonster   = npcSettlerSide.monsterStatus(recruitselector);
        isPrisoner  = npcSettlerSide.prisonerStatus(recruitselector);
        isNeutral   = npcSettlerSide.neutralStatus(recruitselector);
        isSlave     = npcSettlerSide.slaveStatus(recruitselector);

        cityPositionC = npcSettlerPosition.setPosition(positionselector);

        charClassC = npcSettlerClass.setClass(classselector);

        charRankC = npcSettlerRank.setRank(rankselector);

        charFetishC = npcSettlerFetish.setFetish(fetishselector);

        charPersonalityC = npcSettlerPersonAtt.setPersonality();

        attPhysical   = npcSettlerAttributes.setPhysical(charClassC);
        attMental     = npcSettlerAttributes.setMental(charClassC);
        attSocial     = npcSettlerAttributes.setSocial(charClassC);
        attMagicPower = npcSettlerAttributes.setMagicPower(charClassC);

        coreSkillMartial     = npcSettlerCoreSkills.setCoreMartial(charClassC);     //0
        coreSkillSecurity    = npcSettlerCoreSkills.setCoreSecurity(charClassC);
        coreSkillLabor       = npcSettlerCoreSkills.setCoreLabor(charClassC);
        coreSkillTactics     = npcSettlerCoreSkills.setCoreTactics(charClassC);
        coreSkillGovernance  = npcSettlerCoreSkills.setCoreGovernance(charClassC);
        coreSkillStewardship = npcSettlerCoreSkills.setStewardship(charClassC);
        coreSkillPersuasion  = npcSettlerCoreSkills.setCorePersuasion(charClassC);
        coreSkillIntrigue    = npcSettlerCoreSkills.setIntrigue(charClassC);
        coreSkillDiplomacy   = npcSettlerCoreSkills.setDiplomacy(charClassC);

        utilitySkillCrafting     = npcSettlerUtilitySkills.setUtilityCrafting(charClassC);
        utilitySkillHouseKeeping = npcSettlerUtilitySkills.setHouseKeeping(charClassC);
        utilitySkillFarmHand     = npcSettlerUtilitySkills.setUtilityFarm(charClassC);
        utilitySkillMedicine     = npcSettlerUtilitySkills.setUtilityMedicine(charClassC);
        utilitySkillAlchemy      = npcSettlerUtilitySkills.setUtilityAlchemy(charClassC);
        utilitySkillLearning     = npcSettlerUtilitySkills.setUtilityLearning(charClassC);
        utilitySkillPerformance  = npcSettlerUtilitySkills.setUtilityPerformance(charClassC);
        utilitySkillEtiquette    = npcSettlerUtilitySkills.setUtilityEtiquette(charClassC);
        utilitySkillStreetwise   = npcSettlerUtilitySkills.setUtilityStreetwise(charClassC);

        sexSkillMasseuse    = npcSettlerSexSkills.setSkillMasseuse(charClassC);
        sexSkillStripping   = npcSettlerSexSkills.setSkillStripping(charClassC);
        sexSkillBondage     = npcSettlerSexSkills.setSkillBondage(charClassC);
        sexSkillPetplay     = npcSettlerSexSkills.setSkillPetPlay(charClassC);
        sexSkillPetting     = npcSettlerSexSkills.setSkillPetting(charClassC);
        sexSkillGroupSex    = npcSettlerSexSkills.setSkillGroupSex(charClassC);
        sexSkillPenetration = npcSettlerSexSkills.setSkillDemonstration(charClassC);
        sexSkillWhoring     = npcSettlerSexSkills.setSkillWhoring(charClassC);
        sexSkillEscorting   = npcSettlerSexSkills.setSkillEscorting(charClassC);

        attBeauty      = npcSettlerPersonAtt.setBeauty(beautyselector);  //(ugly, plain, good looking, captivating, stunning)
        attTemperament = npcSettlerPersonAtt.setTemperament(charClassC); //(apathethic,cold, reserved, lively, passional)
        attWillpower   = npcSettlerPersonAtt.setWillpower(charClassC);   // (submissive, docile, humble, assertive, willful)
        attNature      = npcSettlerPersonAtt.setNature(charClassC);      //(spinless, coward, uncertain, brave, determined)
        attOpenness    = npcSettlerPersonAtt.setOpenness(charClassC);    //(Frigthened, uninterested, timid, open, unashamed)
        attDignity     = npcSettlerPersonAtt.setDignity(charClassC);     // how much self worth it has
        attObedience   = npcSettlerPersonAtt.setObedience(charClassC);
        attHappiness   = npcSettlerPersonAtt.setHappiness(charClassC);
        attLibido      = npcSettlerPersonAtt.setLibido(charClassC);    //
        attMorality    = npcSettlerPersonAtt.setMorality(charClassC);  // how good and bad, it can be corrupt good, it means the person is just twisted
        attPiety       = npcSettlerPersonAtt.setPiety(charClassC);

        bgUpbringC = npcSettlerBG.setUpbring(upbringselector);

        if (isPrisoner == true || isSlave == true || isNeutral == true)
        {
            charGold = 0;
        }
        else
        {
            charGold = npcSettlerBG.setGold(bgUpbringC);
        }

        bgChildhoodC = npcSettlerBG.setBGChildhood();
        bgAdulthoodC = npcSettlerBG.setBGAdulthood();

        bgStory [0] = npcSettlerBG.setChildStory(bgChildhoodC);
        bgStory [1] = npcSettlerBG.setAdultStory(bgAdulthoodC);
        bgStory [2] = npcSettlerBG.setCurrentStory(charClassC);


        charRaceC = npcSettlerRace.setRace(raceselector, racespecific);
        charRaceC = npcSettlerRace.adjustRaceGender(charRaceC, charSexC);

        charFurColorC = raceCreator.setFur(charRaceC);

        charFeatherColorC = raceCreator.setFeathers(charRaceC);

        charSkinColorC = raceCreator.setSkinColor(charRaceC);

        charSkinTypeC = raceCreator.setSkinType(charRaceC);

        dickTypeC = raceCreator.setDickType(charRaceC);

        lowerBackC = raceCreator.setLowerBack(charRaceC);

        shoulderBladesC = raceCreator.setShoulderBlades(charRaceC);

        headTypeC = raceCreator.setHeadType(charRaceC);

        //tailTypeC = raceCreator.setTailType (charRaceC);

        armsTypeC = raceCreator.setArms(charRaceC);

        legsTypeC = raceCreator.setLegs(charRaceC);

        headAccesory1C = raceCreator.setHeadAcc1(charRaceC);

        headAccesory2C = raceCreator.setHeadAcc2(charRaceC);

        eyesTypeC = raceCreator.setEyes(charRaceC);

        hasFur       = raceCreator.setHasFur(charRaceC);   // everyone uses the fur colours tho
        hasFeathers  = raceCreator.setHasFeathers(charRaceC);
        hasScales    = raceCreator.setHasScales(charRaceC);
        hasTentacles = raceCreator.setHasTentacles(charRaceC);
        isFlying     = raceCreator.setIsFlying(charRaceC);

        isFurry = raceCreator.setIsFurry(charRaceC);         // to determine portrait
        isFuta  = raceCreator.setIsFuta(charSexC);


        beardStyleC = npcSettlerHead.setBeardStyle(charSexC, charRaceC);

        beardLengthC = npcSettlerHead.setBeardLength(charSexC, charRaceC);

        hairColorC = npcSettlerHead.setHairColor();

        hairStyleC = npcSettlerHead.setHairStyle();

        hairTypeC = npcSettlerHead.setHairType(charRaceC);

        hairLengthCM = npcSettlerHead.setHairLengthCM();

        hairLengthC = npcSettlerHead.setHairLength(hairLengthCM);

        eyesColorC = npcSettlerHead.setEyesColor(charRaceC);

        genderBehaviorStat = npcSettlerPersonAtt.setBehaviorStat(charGenderC);
        genderBehaviorC    = npcSettlerPersonAtt.setGenderBehavior(genderBehaviorStat);

        facialFeaturesStat = npcSettlerHead.setFacialFeatStat(charGenderC);
        facialFeaturesC    = npcSettlerHead.setFacialFeat(facialFeaturesStat);

        bodyFeaturesStat = npcSettlerBody.setBodyFeatStat(charGenderC);
        bodyFeaturesC    = npcSettlerBody.setBodyFeatures(facialFeaturesStat);

        heightChar  = npcSettlerBody.SetHeightChar(charRaceC);        // in cm
        heightNameC = npcSettlerBody.setHeightName(heightChar);


        bodyPhysStat  = npcSettlerBody.SetBodyPhysStat();        // to change it, 0 to 100
        bodyPhysiqueC = npcSettlerBody.setBodyPhysique(bodyPhysStat);

        bodyBuildStat = npcSettlerBody.setBodyBuildStat();         // to change it
        bodyBuildC    = npcSettlerBody.setBodyBuild(bodyBuildStat);


        dickNum    = npcSettlerBody.setDickNum(charSexC);                //how many dicks it has
        dickSizeCM = npcSettlerBody.setDickSizeCM(heightChar, charSexC); // in cm
        dickSizeC  = npcSettlerBody.setDickSize(dickSizeCM);


        testicleSizeCM = npcSettlerBody.setTesticleSizeCM(charSexC, heightChar);
        testiclesSizeC = npcSettlerBody.setTesticlesSize(testicleSizeCM);         // in cm, used to determine if you have or not

        clitorisSize = npcSettlerBody.setClitorisSize();



        breastRow   = npcSettlerBody.setBreastRow(charRaceC);
        breast1Size = npcSettlerBody.setBreast1Size(charSexC, charRaceC); // to determine its current size. Each point is +1 cup, each X changes name, check NPCSettler
        breast2Size = npcSettlerBody.setBreast2Size(breastRow);           // to determine its current size. Each point is +1 cup, each X changes name, check NPCSettler

        breast1NameC = npcSettlerBody.setBreastName(breast1Size);
        breast2NameC = npcSettlerBody.setBreastName(breast2Size);

        breast1CupC = npcSettlerBody.setBreastCup(breast1Size);
        breast2CupC = npcSettlerBody.setBreastCup(breast2Size);


        areola1Size = npcSettlerBody.setAureoleSize(); // aerola size of the first row, 1 change, in cm
        areola2Size = areola1Size;                     // aerola size of the first row, 1 change, in cm



        waistSize  = npcSettlerBody.waistSize();
        waistNameC = npcSettlerBody.setWaistName(waistSize);

        hipsSize  = npcSettlerBody.setHipsSize(waistSize);
        hipsNameC = npcSettlerBody.setHipsName(hipsSize);

        assSize  = npcSettlerBody.setAssSize(hipsSize);
        assNameC = npcSettlerBody.setAssName(assSize);


        hasKnot       = npcSettlerFertility.setHasKnot(charRaceC);
        hasVagina     = npcSettlerFertility.setHasVagina(charSexC);
        isVirgin      = npcSettlerFertility.setIsVirgin(charRaceC);
        isFertile     = npcSettlerFertility.setIsFertile();
        charFertility = npcSettlerFertility.setCharFertility();
        isPregnant    = npcSettlerFertility.isPregnant(pregnantselector, charSexC);
        childRaceC    = npcSettlerFertility.setChildRace(charRaceC);
        pregnantCD    = npcSettlerFertility.setPregnantCD(isPregnant);            // turns until giving birth
        pregnantText  = npcSettlerFertility.pregnantText(isPregnant, childRaceC); //
        isLactating   = isPregnant;
        lactationML   = npcSettlerFertility.setLactationML(charRaceC);            // how much it lactates in ml


        vagLooseness = npcSettlerFertility.setVagLooseness(isVirgin);
        vagLoose     = npcSettlerFertility.setVagLoose(vagLooseness);


        maxHealth     = npcSettlerCombatStats.setMaxHealth(charRaceC);
        currentHealth = maxHealth;

        maxArousal     = npcSettlerCombatStats.setMaxArousal(charRaceC);
        currentArousal = 0;

        maxMP     = npcSettlerCombatStats.setMaxMP(charRaceC, charClassC);
        currentMP = maxMP;



        // power and politics
        charReputation = npcSettlerPosition.setCharReputation(cityPositionC, charClassC);
        politicalPower = npcSettlerPosition.setPoliticalPower(cityPositionC);

        charAgeC = npcSettlerPersonAtt.setCharAge(charRaceC);


        charLoyalty    = npcSettlerPersonAtt.setLoyalty(charRaceC, charClassC);
        charCorruption = npcSettlerPersonAtt.setCorruption(charRaceC, charClassC);
        int i;

        i = 0;
        while (i < 8)
        {
            charAddictions [i] = npcSettlerPersonAtt.setAddiction(i, charRaceC, charClassC);
            i++;
        }

        charValue = npcSettlerPersonAtt.setCharValue(charRankC, charClassC, bgUpbringC, charRaceC, attBeauty, attWillpower, attObedience);



        //	public List<NPCData.CharTraits> charTraits;

        TempList.Clear();

        setChar();

        TempList[0].charTattoos = new string[18];
        i = 0;
        while (i < 18)
        {
            TempList[0].charTattoos[i] = "";
            i++;
        }

        TempList[0].charPiercings = new string[21];
        i = 0;
        while (i < 21)
        {
            TempList[0].charPiercings[i] = "";
            i++;
        }

        TempList[0].charEquipment = new int[12];
        i = 0;
        while (i < 12)
        {
            TempList[0].charEquipment[i] = npcSettlerEquip.setCharEquipment(i, bgUpbringC, charClassC, charRaceC);
            i++;
        }
        //CHANGE TO SOMETHING MORE DYNAMIC... LATER
        TempList [0].charDodge = 10;

        NPCSettlerTraits.trait1 = 1000; NPCSettlerTraits.trait2 = 1000;  NPCSettlerTraits.trait3 = 1000; NPCSettlerTraits.trait4 = 1000; NPCSettlerTraits.trait5 = 1000; NPCSettlerTraits.trait6 = 1000; NPCSettlerTraits.trait7 = 1000; NPCSettlerTraits.trait8 = 1000; NPCSettlerTraits.trait9 = 1000; NPCSettlerTraits.trait10 = 1000;

        i = 0;
        while (i < 10)
        {
            i++;

            TempList[0].charTraits.Add(npcSettlerTraits.setTrait(i, charClassC, charRaceC, charPersonalityC, bgUpbringC, attBeauty, charSexC));
        }

        i = TempList[0].charTraits.Count;
        while (i > 0)
        {
            i--;

            if (TempList[0].charTraits[i] == NPCData.CharTraits.NONE)
            {
                TempList[0].charTraits.RemoveAt(i);
            }
        }

        int count = TempList[0].charTraits.Count;

        i = 0;
        while (i < count)
        {
            npcSettlerTraitsBonus.setTraitBonus(TempList[0].charTraits[i]);
            i++;
        }

        npcSettlerRankAdjustment.rankAdjustment();


        i = 0;
        while (i < 4)
        {
            iterator += 1;
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
            if (i >= 2 && Random.Range(0, 100) >= 85)
            {
                break;
            }
            attacksTempList.Add(npcSettlerAttacks.classAttacks(charClassC, charRaceC));
            i++;
        }

        i = 0;
        while (i < 4)
        {
            iterator += 1;
            Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
            if (i >= 2 && Random.Range(0, 100) >= 85)
            {
                break;
            }
            attacksTempList.Add(npcSettlerAttacks.raceAttacks(charRaceC));
            i++;
        }

        List <NPCData.CharAttacks> attacksDistinctList = attacksTempList.Distinct().ToList();

        foreach (NPCData.CharAttacks value in attacksDistinctList)
        {
            TempList [0].charAttacks.Add(value);
        }



        NPCSettlerPortrait.createPortrait();



        if (isRecruited == true && isPrisoner == false && isSlave == false)
        {
            NPCCharList.CharRetainers.Add(TempList [0]);
        }
        if (isEnemy == true && isPrisoner == false && isSlave == false)
        {
            NPCCharList.CharEnemies.Add(TempList [0]);
        }
        if (isNeutral == true)
        {
            NPCCharList.CharRetainers.Add(TempList [0]);

            //NPCCharList.CharNeutral.Add (TempList [0]);
        }
        if (isMonster == true)
        {
            //this is for debug, remove
            NPCCharList.CharMonster.Add(TempList[0]);
        }
        if (isPrisoner == true && isRecruited == true)
        {
            NPCCharList.CharRetainerPrisoner.Add(TempList [0]);
        }
        if (isSlave == true && isRecruited == true)
        {
            NPCCharList.CharRetainers.Add(TempList [0]);
        }
        if (isPrisoner == true && isEnemy == true)
        {
            NPCCharList.CharEnemyPrisoner.Add(TempList [0]);
        }
        if (isSlave == true && isEnemy == true)
        {
            NPCCharList.CharEnemySlave.Add(TempList [0]);
        }



        //	 attStyle; sets after equipment, use the dedicated settler in game for this
    }
    public float setCharValue(NPCData.CharRank charRank, NPCData.CharClass charClass, NPCData.BgUpgring upbring, NPCData.CharRace charRace, float beauty, float willpower, float obedience)
    {
        float retValue = 0;

        iterator += 1;
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
        switch (charRank)
        {
        case NPCData.CharRank.S:
            retValue = Random.Range(250, 400);
            break;

        case NPCData.CharRank.A:
            retValue = Random.Range(100, 200);
            break;

        case NPCData.CharRank.B:
            retValue = Random.Range(50, 80);
            break;

        default:
            retValue = Random.Range(5, 40);
            break;
        }

        iterator += 1;
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);

        switch (charClass)
        {
        case NPCData.CharClass.Alchemist:
            retValue += Random.Range(30, 80);
            break;

        case NPCData.CharClass.Artist:
            retValue += Random.Range(50, 100);
            break;

        case NPCData.CharClass.DarkPaladin:
            retValue += Random.Range(20, 40);
            break;

        case NPCData.CharClass.Farmer:
            retValue += Random.Range(20, 40) - 40;
            break;

        case NPCData.CharClass.Feral:
            retValue += Random.Range(20, 40) - 40;
            break;

        case NPCData.CharClass.GuildWorker:
            retValue += Random.Range(20, 40) - 30;
            break;

        case NPCData.CharClass.Paladin:
            retValue += Random.Range(20, 40);
            break;

        case NPCData.CharClass.Performer:
            retValue += Random.Range(10, 30);
            break;

        case NPCData.CharClass.Warrior:
            retValue += Random.Range(20, 40) - 40;
            break;

        default:
            retValue += Random.Range(5, 20);
            break;
        }


        iterator += 1;
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
        switch (upbring)
        {
        case NPCData.BgUpgring.Royal:
            retValue += Random.Range(1000, 1500);
            break;

        case NPCData.BgUpgring.Noble:
            retValue += Random.Range(500, 750);
            break;

        case NPCData.BgUpgring.VeryRich:
            retValue += Random.Range(350, 500);
            break;

        case NPCData.BgUpgring.Rich:
            retValue += Random.Range(200, 350);
            break;

        case NPCData.BgUpgring.MiddleClass:
            retValue += Random.Range(100, 200);
            break;

        case NPCData.BgUpgring.Poor:
            retValue += Random.Range(50, 100);
            break;

        default:
            retValue += Random.Range(20, 50);
            break;
        }

        iterator += 1;
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
        switch (charRace)
        {
        case NPCData.CharRace.Human:
            retValue += Random.Range(50, 100);
            break;

        case NPCData.CharRace.angel:
            retValue += Random.Range(100, 150);
            break;

        case NPCData.CharRace.succubus:
            retValue += Random.Range(30, 70);
            break;

        case NPCData.CharRace.incubus:
            retValue += Random.Range(30, 70);
            break;

        default:
            retValue += Random.Range(10, 40);
            break;
        }

        iterator += 1;
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
        if (beauty >= 80)
        {
            retValue += Random.Range(150, 300);
        }
        else if (beauty >= 60)
        {
            retValue += Random.Range(60, 100);
        }
        else if (beauty >= 40)
        {
            retValue += Random.Range(40, 60);
        }
        else if (beauty >= 20)
        {
            retValue += Random.Range(0, 60) - 20;
        }
        else
        {
            retValue += Random.Range(0, 50) - 100;
        }

        iterator += 1;
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
        if (willpower >= 80)
        {
            retValue += Random.Range(50, 100);
        }
        else if (willpower >= 60)
        {
            retValue += Random.Range(40, 80);
        }
        else if (willpower >= 40)
        {
            retValue += Random.Range(30, 60);
        }
        else if (willpower >= 20)
        {
            retValue += Random.Range(20, 40);
        }
        else
        {
            retValue += Random.Range(0, 20) - 40;
        }

        iterator += 1;
        Random.InitState(hashcode + WorldControl.day * System.DateTime.Now.Millisecond + iterator);
        if (obedience >= 80)
        {
            retValue += Random.Range(150, 200);
        }
        else if (obedience >= 60)
        {
            retValue += Random.Range(100, 150);
        }
        else if (obedience >= 40)
        {
            retValue += Random.Range(50, 100);
        }
        else if (obedience >= 20)
        {
            retValue += Random.Range(0, 100) - 50;
        }
        else
        {
            retValue += Random.Range(0, 50) - 100;
        }

        if (retValue < 50)
        {
            retValue = 50;
        }

        return(retValue);
    }