예제 #1
0
        /// <summary>
        /// </summary>
        /// <param name="dynel">
        /// </param>
        /// <returns>
        /// </returns>
        public static uint CalculateNanoPoints(IStatList dynel)
        {
            int[,] tableProfNanoPoints =
            {
                { 4, 4,  4, 4, 5, 4, 4, 4, 4,  4,  4,  4, 4, 4 },
                { 4, 4,  5, 4, 5, 5, 5, 5, 4,  5,  5,  5, 4, 4 },
                { 4, 4,  6, 4, 6, 5, 5, 5, 4,  6,  6,  6, 4, 4 },
                { 4, 4,  7, 4, 6, 6, 5, 5, 4,  7,  7,  7, 4, 4 },
                { 4, 4,  8, 4, 7, 6, 6, 6, 4,  8,  8,  8, 4, 4 },
                { 4, 4,  9, 4, 7, 7, 7, 7, 4, 10, 10, 10, 4, 4 },
                { 5, 5, 10, 5, 8, 8, 7, 7, 5, 10, 10, 10, 4, 4 },

                // TitleLevel 7
                // TitleLevel 6
                // TitleLevel 5
                // TitleLevel 4
                // TitleLevel 3
                // TitleLevel 2
                // TitleLevel 1
                // Sol|MA|ENG|FIX|AGE|ADV|TRA|CRA|ENF|DOC| NT| MP|KEP|SHA  // geprüfte Prof & TL = Soldier, Martial Artist, Engineer, Fixer
            };

            // Sol|Opi|Nan|Tro
            int[] breedBaseNanoPoints          = { 10, 10, 15, 8 };
            int[] breedMultiplicatorNanoPoints = { 3, 3, 4, 2 };
            int[] breedModificatorNanoPoints   = { 0, -1, 1, -2 };

            uint breed      = dynel[StatIds.breed].BaseValue;
            uint profession = dynel[StatIds.profession].BaseValue;
            uint titleLevel = dynel[StatIds.titlelevel].BaseValue;
            uint level      = dynel[StatIds.level].BaseValue;

            // BreedBaseNP+(Level*(TableProfNP+BreedModiNP))+(NanoEnergyPool*BreedMultiNP))
            return
                ((uint)
                 (breedBaseNanoPoints[breed - 1]
                  + (level
                     * (tableProfNanoPoints[titleLevel - 1, profession - 1] + breedModificatorNanoPoints[breed - 1]))
                  + (dynel[StatIds.nanoenergypool].Value * breedMultiplicatorNanoPoints[breed - 1])));
        }
예제 #2
0
 /// <summary>
 /// </summary>
 public Statel()
 {
     this.stats = new StatelStats();
 }
예제 #3
0
        /// <summary>
        /// </summary>
        /// <param name="dynel">
        /// </param>
        /// <returns>
        /// </returns>
        public static double CalculateIP(IStatList dynel)
        {
            double calc       = 0;
            uint   breed      = dynel[StatIds.breed].BaseValue;          // 4 = Breed
            uint   profession = dynel[StatIds.profession].BaseValue - 1; // 60 = Profession

            double[,] skillCosts =
            {
                { 100, 2.8, 1.6, 2.8, 2.0, 1.6, 2.8, 2.8, 3.0, 1.0, 2.8, 2.8, 1.6, 2.0, 2.0 },
                { 101, 1.4, 2.5, 4.0, 3.2, 1.0, 4.0, 2.5, 3.2, 2.5, 4.0, 4.0, 1.0, 2.0, 3.2 },
                { 102, 1.5, 1.6, 3.2, 2.4, 1.0, 2.4, 2.5, 3.2, 2.5, 2.6, 4.0, 4.0, 2.5, 1.8 },
                { 103, 1.0, 2.0, 4.0, 2.4, 1.0, 3.2, 2.0, 3.2, 2.0, 4.0, 4.0, 4.0, 2.0, 3.2 },
                { 106, 1.5, 2.5, 4.0, 2.4, 1.0, 3.2, 2.5, 3.2, 2.0, 3.2, 4.0, 1.0, 2.5, 2.5 },
                { 107, 1.5, 2.5, 4.0, 3.2, 1.4, 3.2, 3.2, 3.2, 2.0, 4.0, 3.2, 4.0, 2.5, 2.5 },
                { 105, 1.5, 2.5, 4.0, 3.2, 1.0, 3.2, 2.5, 1.0, 2.0, 2.5, 2.5, 4.0, 2.5, 2.5 },
                { 104, 1.5, 3.2, 4.0, 3.2, 1.8, 4.0, 3.2, 3.2, 3.0, 4.0, 3.2, 4.0, 2.2, 2.5 },
                { 108, 1.6, 1.2, 3.2, 3.2, 1.6, 3.2, 2.5, 4.0, 1.0, 3.2, 2.4, 1.6, 1.6, 2.4 },
                { 109, 1.6, 1.6, 4.0, 3.2, 2.5, 2.0, 2.2, 4.0, 2.4, 4.0, 2.4, 4.0, 1.6, 2.4 },
                { 110, 3.0, 3.0, 4.0, 4.0, 2.5, 2.0, 2.5, 4.0, 4.0, 4.0, 4.0, 4.0, 1.0, 4.0 },
                { 111, 1.8, 2.0, 4.0, 4.0, 4.0, 4.0, 2.4, 4.0, 1.0, 2.5, 4.0, 4.0, 2.4, 4.0 },
                { 112, 1.0, 1.8, 1.6, 1.6, 3.0, 1.5, 1.6, 4.0, 3.5, 2.4, 1.6, 4.0, 1.0, 2.0 },
                { 113, 1.7, 1.3, 4.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 4.0, 4.0, 2.0, 2.8 },
                { 114, 2.5, 2.5, 3.2, 3.2, 2.5, 3.2, 1.0, 4.0, 3.0, 3.2, 3.2, 4.0, 1.5, 2.4 },
                { 115, 2.4, 3.2, 3.2, 2.4, 2.5, 3.2, 1.8, 4.0, 4.0, 4.0, 3.0, 4.0, 1.5, 1.5 },
                { 116, 1.6, 3.0, 4.0, 4.0, 3.5, 3.0, 2.8, 4.0, 4.0, 4.0, 4.5, 4.0, 1.0, 4.0 },
                { 117, 1.0, 2.4, 2.4, 2.4, 1.6, 1.6, 1.0, 2.4, 2.5, 2.5, 2.4, 3.2, 1.6, 1.4 },
                { 118, 1.8, 1.6, 4.0, 3.2, 1.0, 3.2, 2.5, 1.0, 2.0, 3.0, 3.5, 1.0, 2.4, 3.2 },
                { 119, 2.0, 1.6, 3.2, 3.2, 3.0, 3.2, 1.6, 3.8, 2.4, 4.0, 3.0, 4.0, 1.0, 2.5 },
                { 120, 1.6, 1.6, 2.0, 2.0, 1.6, 3.0, 2.4, 3.8, 1.0, 3.2, 3.2, 3.4, 2.4, 3.2 },
                { 121, 1.6, 2.0, 4.0, 4.0, 2.0, 3.5, 2.0, 4.0, 1.0, 2.5, 4.0, 4.0, 2.0, 4.0 },
                { 122, 1.6, 1.6, 1.0, 1.6, 2.5, 2.4, 2.4, 2.4, 1.6, 1.6, 1.0, 1.6, 2.4, 1.8 },
                { 123, 1.2, 2.0, 2.0, 1.0, 1.6, 2.0, 1.2, 1.2, 1.6, 2.0, 2.0, 2.5, 2.0, 1.6 },
                { 124, 1.0, 2.0, 2.0, 1.0, 2.0, 1.6, 1.2, 1.8, 2.0, 2.0, 2.0, 1.5, 2.0, 1.6 },
                { 125, 1.2, 1.5, 1.8, 2.0, 2.0, 1.0, 1.5, 3.2, 2.4, 2.0, 2.0, 3.2, 2.0, 1.2 },
                { 126, 1.6, 2.0, 2.4, 1.6, 1.8, 1.0, 1.5, 3.2, 3.2, 2.0, 1.6, 3.2, 2.4, 1.0 },
                { 127, 1.8, 1.2, 1.6, 1.0, 2.5, 1.0, 2.4, 3.2, 2.0, 1.0, 1.0, 3.2, 2.0, 1.6 },
                { 128, 1.5, 1.6, 1.0, 1.0, 2.5, 2.4, 3.2, 1.8, 1.6, 1.0, 1.0, 1.9, 2.4, 1.8 },
                { 129, 1.8, 1.6, 1.0, 1.6, 2.5, 2.4, 2.4, 1.6, 2.0, 1.6, 1.0, 1.4, 2.0, 1.5 },
                { 130, 1.8, 1.4, 1.6, 1.6, 2.5, 1.0, 2.5, 3.2, 2.4, 1.0, 1.0, 3.2, 2.5, 1.5 },
                { 131, 1.8, 2.4, 1.6, 1.6, 2.5, 1.0, 3.2, 1.4, 1.6, 1.0, 1.0, 1.9, 3.2, 1.5 },
                { 132, 1.6, 1.2, 1.4, 1.0, 2.0, 1.8, 1.6, 2.2, 1.6, 1.0, 1.0, 2.5, 2.0, 1.2 },
                { 133, 2.4, 2.5, 4.0, 4.0, 4.0, 3.0, 2.5, 4.0, 4.0, 4.0, 4.0, 4.0, 1.0, 3.0 },
                { 134, 1.5, 1.8, 4.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 2.5, 4.0, 4.0, 2.0, 2.5 },
                { 135, 1.6, 2.0, 2.4, 2.4, 2.4, 1.6, 1.0, 2.4, 2.5, 2.4, 2.4, 1.8, 2.4, 2.4 },
                { 136, 1.6, 1.0, 1.6, 2.4, 2.4, 2.4, 1.0, 1.2, 1.6, 2.4, 2.4, 2.4, 2.4, 1.4 },
                { 137, 1.0, 3.0, 2.0, 2.0, 1.5, 2.0, 2.0, 1.8, 1.6, 2.0, 2.0, 1.6, 1.5, 1.4 },
                { 138, 1.0, 1.6, 2.0, 2.0, 2.0, 2.0, 2.0, 1.8, 1.4, 2.0, 2.0, 1.4, 1.5, 1.5 },
                { 139, 1.0, 2.4, 2.0, 2.4, 1.6, 1.6, 1.0, 2.4, 3.0, 2.5, 2.4, 3.2, 1.6, 1.4 },
                { 140, 1.0, 1.6, 2.0, 1.6, 1.6, 1.6, 2.0, 1.2, 2.0, 2.0, 1.6, 2.4, 1.6, 1.3 },
                { 141, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 },
                { 142, 2.4, 2.8, 3.2, 2.8, 1.0, 2.4, 1.8, 2.0, 1.2, 2.8, 2.8, 4.0, 2.0, 2.0 },
                { 143, 3.2, 3.0, 3.2, 3.2, 1.2, 3.2, 2.4, 1.0, 1.0, 3.2, 2.4, 1.4, 2.4, 3.2 },
                { 144, 4.0, 1.6, 3.0, 4.0, 4.0, 4.0, 4.0, 1.3, 1.2, 2.5, 2.5, 1.0, 4.0, 4.0 },
                { 145, 1.5, 1.6, 3.2, 2.4, 1.4, 4.0, 2.4, 1.0, 1.5, 4.0, 3.2, 1.4, 2.5, 2.5 },
                { 146, 1.5, 1.0, 2.4, 3.2, 2.0, 4.0, 3.9, 4.0, 3.0, 4.0, 3.2, 1.0, 3.0, 4.0 },
                { 147, 2.0, 2.5, 4.0, 2.4, 1.5, 4.0, 2.5, 1.0, 2.0, 4.0, 3.2, 1.4, 2.4, 3.0 },
                { 148, 1.8, 3.2, 4.0, 3.0, 3.0, 3.0, 1.5, 4.0, 4.0, 4.0, 4.0, 4.0, 1.5, 3.5 },
                { 149, 2.0, 1.6, 1.0, 1.0, 2.4, 1.6, 2.4, 3.2, 2.5, 1.0, 1.0, 2.8, 4.0, 1.5 },
                { 150, 1.0, 3.2, 4.0, 2.4, 3.5, 3.2, 1.6, 4.0, 3.2, 4.0, 4.0, 4.0, 1.0, 2.5 },
                { 151, 2.2, 1.1, 4.0, 3.2, 3.5, 4.0, 2.5, 4.0, 3.0, 4.0, 3.2, 4.0, 1.8, 2.5 },
                { 152, 1.2, 2.4, 2.4, 2.0, 1.0, 2.4, 1.8, 1.2, 1.5, 2.4, 2.4, 2.6, 1.1, 2.0 },
                { 153, 1.6, 1.6, 2.4, 2.4, 2.0, 2.2, 1.0, 1.6, 1.0, 2.4, 2.4, 1.2, 1.8, 1.9 },
                { 154, 1.6, 2.1, 2.4, 2.4, 2.0, 2.5, 1.0, 1.6, 1.0, 1.6, 2.4, 2.4, 1.5, 1.9 },
                { 155, 1.8, 2.4, 2.4, 3.2, 1.5, 4.0, 1.6, 1.4, 1.0, 1.6, 3.2, 1.0, 2.0, 1.9 },
                { 156, 1.0, 1.6, 2.4, 2.4, 2.4, 2.0, 1.0, 2.0, 1.0, 2.4, 2.4, 1.0, 2.0, 1.9 },
                { 157, 1.6, 2.0, 2.4, 1.6, 3.2, 1.0, 1.5, 3.2, 3.2, 2.4, 1.6, 1.4, 2.4, 1.2 },
                { 158, 1.6, 4.0, 2.5, 1.5, 1.5, 1.0, 1.3, 2.0, 2.4, 2.5, 3.2, 3.2, 1.5, 1.0 },
                { 159, 2.4, 1.6, 2.4, 1.0, 1.6, 1.5, 1.5, 3.2, 2.4, 2.0, 2.4, 1.8, 2.0, 1.0 },
                { 160, 4.0, 2.4, 1.6, 1.6, 2.4, 1.2, 2.0, 3.2, 2.4, 1.0, 1.0, 4.0, 2.0, 1.4 },
                { 161, 1.6, 1.6, 1.0, 1.0, 1.6, 1.3, 1.0, 2.4, 2.0, 1.0, 1.0, 2.4, 2.0, 1.5 },
                { 162, 1.6, 1.0, 1.0, 2.3, 1.0, 2.4, 1.5, 1.0, 1.6, 1.6, 2.4, 2.4, 1.5, 1.0 },
                { 163, 1.6, 1.5, 2.4, 2.0, 1.0, 1.2, 2.0, 3.2, 2.4, 2.0, 2.0, 3.2, 2.4, 1.3 },
                { 164, 1.7, 1.0, 2.4, 2.4, 2.0, 3.2, 1.5, 3.2, 1.5, 2.5, 2.5, 1.0, 2.0, 1.8 },
                { 165, 2.0, 1.5, 2.0, 2.0, 2.0, 1.6, 1.0, 2.4, 2.0, 2.4, 2.5, 1.6, 2.0, 1.8 },
                { 166, 1.0, 2.4, 2.4, 1.6, 1.0, 1.6, 1.0, 2.4, 2.5, 2.5, 2.4, 3.2, 1.0, 1.4 },
                { 167, 2.4, 4.0, 4.0, 4.0, 3.0, 3.0, 2.2, 4.0, 4.0, 4.0, 5.0, 4.0, 1.5, 3.5 },
                { 168, 2.4, 1.6, 1.6, 1.2, 2.2, 1.5, 1.6, 1.8, 1.6, 1.6, 1.0, 1.5, 2.2, 1.6 }
            };

            int[] professionMatrix = { 12, 8, 5, 6, 1, 0, 13, 2, 4, 3, 10, 9, -1, 7, 11 };
            double[,] attributeCost =
            {
                { 16, 2, 2, 3, 1 }, { 17, 2, 1, 3, 2 }, { 18, 2, 3, 2, 1 }, { 19, 2, 2, 1, 3 },
                { 20, 2, 1, 2, 3 }, { 21, 2, 2, 1, 3 }
            };

            double[,] baseAttributes =
            {
                {  6, 6,  6, 6, 6, 6 }, { 3, 15, 6, 6, 10, 3 }, { 3, 3, 3, 15, 6, 10 },
                { 15, 6, 10, 3, 3, 3 }
            };

            int counter = 0;
            int c2;
            int stat = 0;

            // start with attributes...
            for (counter = 0; counter < 6; counter++)
            {
                stat = (Int32)dynel[Convert.ToInt32(attributeCost[counter, 0])].BaseValue;
                for (c2 = (Int32)baseAttributes[breed - 1, counter]; c2 < stat; c2++)
                {
                    calc += attributeCost[counter, breed] * c2;
                }
            }

            for (counter = 0; counter < 69; counter++)
            {
                stat = (Int32)dynel[Convert.ToInt32(skillCosts[counter, 0])].BaseValue - 1;
                for (c2 = 5; c2 <= stat; c2++)
                {
                    calc += Math.Floor(skillCosts[counter, professionMatrix[profession] + 1] * c2);
                }
            }

            return(calc);
        }
예제 #4
0
        /// <summary>
        /// </summary>
        /// <param name="dynel">
        /// </param>
        /// <returns>
        /// </returns>
        public static double CalculateIP(IStatList dynel)
        {
            double calc = 0;
            uint breed = dynel[StatIds.breed].BaseValue; // 4 = Breed
            uint profession = dynel[StatIds.profession].BaseValue - 1; // 60 = Profession

            double[,] skillCosts =
            {
                { 100, 2.8, 1.6, 2.8, 2.0, 1.6, 2.8, 2.8, 3.0, 1.0, 2.8, 2.8, 1.6, 2.0, 2.0 },
                { 101, 1.4, 2.5, 4.0, 3.2, 1.0, 4.0, 2.5, 3.2, 2.5, 4.0, 4.0, 1.0, 2.0, 3.2 },
                { 102, 1.5, 1.6, 3.2, 2.4, 1.0, 2.4, 2.5, 3.2, 2.5, 2.6, 4.0, 4.0, 2.5, 1.8 },
                { 103, 1.0, 2.0, 4.0, 2.4, 1.0, 3.2, 2.0, 3.2, 2.0, 4.0, 4.0, 4.0, 2.0, 3.2 },
                { 106, 1.5, 2.5, 4.0, 2.4, 1.0, 3.2, 2.5, 3.2, 2.0, 3.2, 4.0, 1.0, 2.5, 2.5 },
                { 107, 1.5, 2.5, 4.0, 3.2, 1.4, 3.2, 3.2, 3.2, 2.0, 4.0, 3.2, 4.0, 2.5, 2.5 },
                { 105, 1.5, 2.5, 4.0, 3.2, 1.0, 3.2, 2.5, 1.0, 2.0, 2.5, 2.5, 4.0, 2.5, 2.5 },
                { 104, 1.5, 3.2, 4.0, 3.2, 1.8, 4.0, 3.2, 3.2, 3.0, 4.0, 3.2, 4.0, 2.2, 2.5 },
                { 108, 1.6, 1.2, 3.2, 3.2, 1.6, 3.2, 2.5, 4.0, 1.0, 3.2, 2.4, 1.6, 1.6, 2.4 },
                { 109, 1.6, 1.6, 4.0, 3.2, 2.5, 2.0, 2.2, 4.0, 2.4, 4.0, 2.4, 4.0, 1.6, 2.4 },
                { 110, 3.0, 3.0, 4.0, 4.0, 2.5, 2.0, 2.5, 4.0, 4.0, 4.0, 4.0, 4.0, 1.0, 4.0 },
                { 111, 1.8, 2.0, 4.0, 4.0, 4.0, 4.0, 2.4, 4.0, 1.0, 2.5, 4.0, 4.0, 2.4, 4.0 },
                { 112, 1.0, 1.8, 1.6, 1.6, 3.0, 1.5, 1.6, 4.0, 3.5, 2.4, 1.6, 4.0, 1.0, 2.0 },
                { 113, 1.7, 1.3, 4.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 4.0, 4.0, 2.0, 2.8 },
                { 114, 2.5, 2.5, 3.2, 3.2, 2.5, 3.2, 1.0, 4.0, 3.0, 3.2, 3.2, 4.0, 1.5, 2.4 },
                { 115, 2.4, 3.2, 3.2, 2.4, 2.5, 3.2, 1.8, 4.0, 4.0, 4.0, 3.0, 4.0, 1.5, 1.5 },
                { 116, 1.6, 3.0, 4.0, 4.0, 3.5, 3.0, 2.8, 4.0, 4.0, 4.0, 4.5, 4.0, 1.0, 4.0 },
                { 117, 1.0, 2.4, 2.4, 2.4, 1.6, 1.6, 1.0, 2.4, 2.5, 2.5, 2.4, 3.2, 1.6, 1.4 },
                { 118, 1.8, 1.6, 4.0, 3.2, 1.0, 3.2, 2.5, 1.0, 2.0, 3.0, 3.5, 1.0, 2.4, 3.2 },
                { 119, 2.0, 1.6, 3.2, 3.2, 3.0, 3.2, 1.6, 3.8, 2.4, 4.0, 3.0, 4.0, 1.0, 2.5 },
                { 120, 1.6, 1.6, 2.0, 2.0, 1.6, 3.0, 2.4, 3.8, 1.0, 3.2, 3.2, 3.4, 2.4, 3.2 },
                { 121, 1.6, 2.0, 4.0, 4.0, 2.0, 3.5, 2.0, 4.0, 1.0, 2.5, 4.0, 4.0, 2.0, 4.0 },
                { 122, 1.6, 1.6, 1.0, 1.6, 2.5, 2.4, 2.4, 2.4, 1.6, 1.6, 1.0, 1.6, 2.4, 1.8 },
                { 123, 1.2, 2.0, 2.0, 1.0, 1.6, 2.0, 1.2, 1.2, 1.6, 2.0, 2.0, 2.5, 2.0, 1.6 },
                { 124, 1.0, 2.0, 2.0, 1.0, 2.0, 1.6, 1.2, 1.8, 2.0, 2.0, 2.0, 1.5, 2.0, 1.6 },
                { 125, 1.2, 1.5, 1.8, 2.0, 2.0, 1.0, 1.5, 3.2, 2.4, 2.0, 2.0, 3.2, 2.0, 1.2 },
                { 126, 1.6, 2.0, 2.4, 1.6, 1.8, 1.0, 1.5, 3.2, 3.2, 2.0, 1.6, 3.2, 2.4, 1.0 },
                { 127, 1.8, 1.2, 1.6, 1.0, 2.5, 1.0, 2.4, 3.2, 2.0, 1.0, 1.0, 3.2, 2.0, 1.6 },
                { 128, 1.5, 1.6, 1.0, 1.0, 2.5, 2.4, 3.2, 1.8, 1.6, 1.0, 1.0, 1.9, 2.4, 1.8 },
                { 129, 1.8, 1.6, 1.0, 1.6, 2.5, 2.4, 2.4, 1.6, 2.0, 1.6, 1.0, 1.4, 2.0, 1.5 },
                { 130, 1.8, 1.4, 1.6, 1.6, 2.5, 1.0, 2.5, 3.2, 2.4, 1.0, 1.0, 3.2, 2.5, 1.5 },
                { 131, 1.8, 2.4, 1.6, 1.6, 2.5, 1.0, 3.2, 1.4, 1.6, 1.0, 1.0, 1.9, 3.2, 1.5 },
                { 132, 1.6, 1.2, 1.4, 1.0, 2.0, 1.8, 1.6, 2.2, 1.6, 1.0, 1.0, 2.5, 2.0, 1.2 },
                { 133, 2.4, 2.5, 4.0, 4.0, 4.0, 3.0, 2.5, 4.0, 4.0, 4.0, 4.0, 4.0, 1.0, 3.0 },
                { 134, 1.5, 1.8, 4.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 2.5, 4.0, 4.0, 2.0, 2.5 },
                { 135, 1.6, 2.0, 2.4, 2.4, 2.4, 1.6, 1.0, 2.4, 2.5, 2.4, 2.4, 1.8, 2.4, 2.4 },
                { 136, 1.6, 1.0, 1.6, 2.4, 2.4, 2.4, 1.0, 1.2, 1.6, 2.4, 2.4, 2.4, 2.4, 1.4 },
                { 137, 1.0, 3.0, 2.0, 2.0, 1.5, 2.0, 2.0, 1.8, 1.6, 2.0, 2.0, 1.6, 1.5, 1.4 },
                { 138, 1.0, 1.6, 2.0, 2.0, 2.0, 2.0, 2.0, 1.8, 1.4, 2.0, 2.0, 1.4, 1.5, 1.5 },
                { 139, 1.0, 2.4, 2.0, 2.4, 1.6, 1.6, 1.0, 2.4, 3.0, 2.5, 2.4, 3.2, 1.6, 1.4 },
                { 140, 1.0, 1.6, 2.0, 1.6, 1.6, 1.6, 2.0, 1.2, 2.0, 2.0, 1.6, 2.4, 1.6, 1.3 },
                { 141, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 },
                { 142, 2.4, 2.8, 3.2, 2.8, 1.0, 2.4, 1.8, 2.0, 1.2, 2.8, 2.8, 4.0, 2.0, 2.0 },
                { 143, 3.2, 3.0, 3.2, 3.2, 1.2, 3.2, 2.4, 1.0, 1.0, 3.2, 2.4, 1.4, 2.4, 3.2 },
                { 144, 4.0, 1.6, 3.0, 4.0, 4.0, 4.0, 4.0, 1.3, 1.2, 2.5, 2.5, 1.0, 4.0, 4.0 },
                { 145, 1.5, 1.6, 3.2, 2.4, 1.4, 4.0, 2.4, 1.0, 1.5, 4.0, 3.2, 1.4, 2.5, 2.5 },
                { 146, 1.5, 1.0, 2.4, 3.2, 2.0, 4.0, 3.9, 4.0, 3.0, 4.0, 3.2, 1.0, 3.0, 4.0 },
                { 147, 2.0, 2.5, 4.0, 2.4, 1.5, 4.0, 2.5, 1.0, 2.0, 4.0, 3.2, 1.4, 2.4, 3.0 },
                { 148, 1.8, 3.2, 4.0, 3.0, 3.0, 3.0, 1.5, 4.0, 4.0, 4.0, 4.0, 4.0, 1.5, 3.5 },
                { 149, 2.0, 1.6, 1.0, 1.0, 2.4, 1.6, 2.4, 3.2, 2.5, 1.0, 1.0, 2.8, 4.0, 1.5 },
                { 150, 1.0, 3.2, 4.0, 2.4, 3.5, 3.2, 1.6, 4.0, 3.2, 4.0, 4.0, 4.0, 1.0, 2.5 },
                { 151, 2.2, 1.1, 4.0, 3.2, 3.5, 4.0, 2.5, 4.0, 3.0, 4.0, 3.2, 4.0, 1.8, 2.5 },
                { 152, 1.2, 2.4, 2.4, 2.0, 1.0, 2.4, 1.8, 1.2, 1.5, 2.4, 2.4, 2.6, 1.1, 2.0 },
                { 153, 1.6, 1.6, 2.4, 2.4, 2.0, 2.2, 1.0, 1.6, 1.0, 2.4, 2.4, 1.2, 1.8, 1.9 },
                { 154, 1.6, 2.1, 2.4, 2.4, 2.0, 2.5, 1.0, 1.6, 1.0, 1.6, 2.4, 2.4, 1.5, 1.9 },
                { 155, 1.8, 2.4, 2.4, 3.2, 1.5, 4.0, 1.6, 1.4, 1.0, 1.6, 3.2, 1.0, 2.0, 1.9 },
                { 156, 1.0, 1.6, 2.4, 2.4, 2.4, 2.0, 1.0, 2.0, 1.0, 2.4, 2.4, 1.0, 2.0, 1.9 },
                { 157, 1.6, 2.0, 2.4, 1.6, 3.2, 1.0, 1.5, 3.2, 3.2, 2.4, 1.6, 1.4, 2.4, 1.2 },
                { 158, 1.6, 4.0, 2.5, 1.5, 1.5, 1.0, 1.3, 2.0, 2.4, 2.5, 3.2, 3.2, 1.5, 1.0 },
                { 159, 2.4, 1.6, 2.4, 1.0, 1.6, 1.5, 1.5, 3.2, 2.4, 2.0, 2.4, 1.8, 2.0, 1.0 },
                { 160, 4.0, 2.4, 1.6, 1.6, 2.4, 1.2, 2.0, 3.2, 2.4, 1.0, 1.0, 4.0, 2.0, 1.4 },
                { 161, 1.6, 1.6, 1.0, 1.0, 1.6, 1.3, 1.0, 2.4, 2.0, 1.0, 1.0, 2.4, 2.0, 1.5 },
                { 162, 1.6, 1.0, 1.0, 2.3, 1.0, 2.4, 1.5, 1.0, 1.6, 1.6, 2.4, 2.4, 1.5, 1.0 },
                { 163, 1.6, 1.5, 2.4, 2.0, 1.0, 1.2, 2.0, 3.2, 2.4, 2.0, 2.0, 3.2, 2.4, 1.3 },
                { 164, 1.7, 1.0, 2.4, 2.4, 2.0, 3.2, 1.5, 3.2, 1.5, 2.5, 2.5, 1.0, 2.0, 1.8 },
                { 165, 2.0, 1.5, 2.0, 2.0, 2.0, 1.6, 1.0, 2.4, 2.0, 2.4, 2.5, 1.6, 2.0, 1.8 },
                { 166, 1.0, 2.4, 2.4, 1.6, 1.0, 1.6, 1.0, 2.4, 2.5, 2.5, 2.4, 3.2, 1.0, 1.4 },
                { 167, 2.4, 4.0, 4.0, 4.0, 3.0, 3.0, 2.2, 4.0, 4.0, 4.0, 5.0, 4.0, 1.5, 3.5 },
                { 168, 2.4, 1.6, 1.6, 1.2, 2.2, 1.5, 1.6, 1.8, 1.6, 1.6, 1.0, 1.5, 2.2, 1.6 }
            };

            int[] professionMatrix = { 12, 8, 5, 6, 1, 0, 13, 2, 4, 3, 10, 9, -1, 7, 11 };
            double[,] attributeCost =
            {
                { 16, 2, 2, 3, 1 }, { 17, 2, 1, 3, 2 }, { 18, 2, 3, 2, 1 }, { 19, 2, 2, 1, 3 },
                { 20, 2, 1, 2, 3 }, { 21, 2, 2, 1, 3 }
            };

            // TODO: Find base attributes for Monster breeds!
            double[,] baseAttributes =
            {
                { 6, 6, 6, 6, 6, 6 }, { 3, 15, 6, 6, 10, 3 }, { 3, 3, 3, 15, 6, 10 },
                { 15, 6, 10, 3, 3, 3 }, { 3, 3, 3, 15, 6, 10 }, { 3, 3, 3, 15, 6, 10 },
                { 3, 3, 3, 15, 6, 10 }
            };

            int counter = 0;
            int c2;
            int stat = 0;

            // start with attributes...
            for (counter = 0; counter < 6; counter++)
            {
                stat = (Int32)dynel[Convert.ToInt32(attributeCost[counter, 0])].BaseValue;
                for (c2 = (Int32)baseAttributes[breed - 1, counter]; c2 < stat; c2++)
                {
                    calc += attributeCost[counter, breed] * c2;
                }
            }

            for (counter = 0; counter < 69; counter++)
            {
                stat = (Int32)dynel[Convert.ToInt32(skillCosts[counter, 0])].BaseValue - 1;
                for (c2 = 5; c2 <= stat; c2++)
                {
                    calc += Math.Floor(skillCosts[counter, professionMatrix[profession] + 1] * c2);
                }
            }

            return calc;
        }
예제 #5
0
        /// <summary>
        /// </summary>
        /// <param name="dynel">
        /// </param>
        /// <returns>
        /// </returns>
        public static uint CalculateNanoPoints(IStatList dynel)
        {
            int[,] tableProfNanoPoints =
            {
                { 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
                { 4, 4, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 4, 4 },
                { 4, 4, 6, 4, 6, 5, 5, 5, 4, 6, 6, 6, 4, 4 },
                { 4, 4, 7, 4, 6, 6, 5, 5, 4, 7, 7, 7, 4, 4 },
                { 4, 4, 8, 4, 7, 6, 6, 6, 4, 8, 8, 8, 4, 4 },
                { 4, 4, 9, 4, 7, 7, 7, 7, 4, 10, 10, 10, 4, 4 },
                { 5, 5, 10, 5, 8, 8, 7, 7, 5, 10, 10, 10, 4, 4 },

                // TitleLevel 7
                // TitleLevel 6
                // TitleLevel 5
                // TitleLevel 4
                // TitleLevel 3
                // TitleLevel 2
                // TitleLevel 1
                // Sol|MA|ENG|FIX|AGE|ADV|TRA|CRA|ENF|DOC| NT| MP|KEP|SHA  // geprüfte Prof & TL = Soldier, Martial Artist, Engineer, Fixer
            };

            // Sol|Opi|Nan|Tro
            int[] breedBaseNanoPoints = { 10, 10, 15, 8 };
            int[] breedMultiplicatorNanoPoints = { 3, 3, 4, 2 };
            int[] breedModificatorNanoPoints = { 0, -1, 1, -2 };

            uint breed = dynel[StatIds.breed].BaseValue;
            uint profession = dynel[StatIds.profession].BaseValue;
            uint titleLevel = dynel[StatIds.titlelevel].BaseValue;
            uint level = dynel[StatIds.level].BaseValue;

            // BreedBaseNP+(Level*(TableProfNP+BreedModiNP))+(NanoEnergyPool*BreedMultiNP))
            return
                (uint)
                    (breedBaseNanoPoints[breed - 1]
                     + (level
                        * (tableProfNanoPoints[titleLevel - 1, profession - 1] + breedModificatorNanoPoints[breed - 1]))
                     + (dynel[StatIds.nanoenergypool].Value * breedMultiplicatorNanoPoints[breed - 1]));
        }
예제 #6
0
 /// <summary>
 /// </summary>
 public Statel()
 {
     this.stats = new StatelStats();
 }