/// <summary>
        /// Adds the experience.
        /// </summary>
        internal static void AddXP(this LogicClientAvatar avatar, int value)
        {
            if (value > 0)
            {
                if (avatar.ExpLevel == 35 && avatar.ExpPoints >= 2500000)
                {
                    return;
                }

                double finalValue = value;

                if (avatar.Booster.BoostActive)
                {
                    finalValue *= avatar.Booster.BoostPackage.Boost;
                }

                avatar.ExpPoints += (int)Math.Round(finalValue);

                LogicExperienceLevelData experienceLevels = (LogicExperienceLevelData)CSV.Tables.Get(Gamefile.ExperienceLevels).GetDataWithID(avatar.ExpLevel - 1);

                if (experienceLevels.ExpPoints <= avatar.ExpPoints)
                {
                    avatar.ExpPoints -= experienceLevels.ExpPoints;
                    avatar.ExpLevel++;
                }

                avatar.Save();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a map chest.
        /// </summary>
        internal void CreateMapChest()
        {
            LogicExperienceLevelData expLevelData = (LogicExperienceLevelData)CSV.Tables.Get(Gamefile.ExperienceLevels).GetDataWithID(this.Avatar.ExpLevel - 1);

            this.Gold = Loader.Random.Rand(expLevelData.MapChestMinGold, expLevelData.MapChestMaxGold);
            this.XP   = Loader.Random.Rand(expLevelData.MapChestMinXP, expLevelData.MapChestMaxXP);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates a map chest.
        /// </summary>
        internal void CreateMapChest()
        {
            LogicExperienceLevelData expLevelData = (LogicExperienceLevelData)CSV.Tables.Get(Gamefile.ExperienceLevels).GetDataWithID(this.Avatar.ExpLevel - 1);

            var v40 = this.byte_2B415A[1 % 50 % 50];

            var gold = Loader.Random.Rand(expLevelData.MapChestMinGold, expLevelData.MapChestMaxGold);
            var xp   = Loader.Random.Rand(expLevelData.MapChestMinXP, expLevelData.MapChestMaxXP);

            this.Gold = gold;
            this.XP   = xp;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates the data for the specified row.
        /// </summary>
        internal LogicData Create(Row row)
        {
            LogicData data;

            switch (this.Index)
            {
            case 1:
            {
                data = new LogicLocaleData(row, this);
                break;
            }

            case 2:
            {
                data = new LogicResourceData(row, this);
                break;
            }

            case 3:
            {
                data = new LogicEffectData(row, this);
                break;
            }

            case 4:
            {
                data = new LogicParticleEmitterData(row, this);
                break;
            }

            case 5:
            {
                data = new LogicGlobalData(row, this);
                break;
            }

            case 6:
            {
                data = new LogicQuestData(row, this);
                break;
            }

            case 8:
            {
                data = new LogicAchievementData(row, this);
                break;
            }

            case 10:
            {
                data = new LogicWorldData(row, this);
                break;
            }

            case 11:
            {
                data = new LogicHeroData(row, this);
                break;
            }

            case 12:
            {
                data = new LogicExperienceLevelData(row, this);
                break;
            }

            case 13:
            {
                data = new LogicLeagueData(row, this);
                break;
            }

            case 21:
            {
                data = new LogicAllianceBadgeData(row, this);
                break;
            }

            case 24:
            {
                data = new LogicTauntData(row, this);
                break;
            }

            case 25:
            {
                data = new LogicDecoData(row, this);
                break;
            }

            case 26:
            {
                data = new LogicVariableData(row, this);
                break;
            }

            case 28:
            {
                data = new LogicBoosterData(row, this);
                break;
            }

            case 32:
            {
                data = new LogicEnergyPackageData(row, this);
                break;
            }

            case 35:
            {
                data = new LogicSpellData(row, this);
                break;
            }

            case 36:
            {
                data = new LogicObstacleData(row, this);
                break;
            }

            case 37:
            {
                data = new LogicItemsData(row, this);
                break;
            }

            default:
            {
                data = new LogicData(row, this);
                break;
            }
            }

            return(data);
        }