Ejemplo n.º 1
0
        public override void CalculateAttributeBonuses()
        {
            int levelBonus = 0;

            if (CurrentLevel > 130)
            {
                levelBonus = 2;
            }
            else if (CurrentLevel > 140)
            {
                levelBonus = 3;
            }

            int ptmBonus = GetPtmBonus();

            //Unblessed attributes (WIAS) used to calculate bless attribute mod
            foreach (var attribute in Attributes)
            {
                attribute.WarriorBonus = TimeWarriorBonus / 2;
                attribute.LevelBonus   = levelBonus;
                attribute.BlessBonus   = 0;
            }

            Bless.LevelBonus = levelBonus;
            Bless.PtmBonus   = 0;
            Bless.SetAttributeBonus(Attributes);

            if (Blessed)
            {
                //Calculate attribute bonus from unblessed bless mod
                foreach (var attribute in Attributes)
                {
                    attribute.BlessBonus = (int)((double)Bless.Mod / 4);
                }

                //Calculate bless mod from bless
                Bless.SetAttributeBonus(Attributes);
            }

            base.CalculateAttributeBonuses();

            //Arbitrary bonuses added for balance
            //Makes PTMs less linear
            foreach (var skill in Skills)
            {
                skill.LevelBonus = levelBonus;

                if (skill.Type == Skill.Types.MagicShield && CurrentLevel > 140)
                {
                    skill.LevelBonus -= 1;
                }

                if (skill.Type != Skill.Types.Hitpoints &&
                    skill.Type != Skill.Types.Endurance &&
                    skill.Type != Skill.Types.Mana &&
                    skill.Type != Skill.Types.Profession)
                {
                    skill.PtmBonus = ptmBonus;
                }
            }
        }
Ejemplo n.º 2
0
        private void CalculateAttributeBonuses()
        {
            int levelBonus  = CurrentLevel > 160 ? 1 : 0;
            int ptmBonus    = GetPtmBonus();
            int tacBonus    = GetTacticsSkillBonus();     //will be 0 if not shown
            int tacImmBonus = GetTacticsSkillBonus(true); //will be 0 if not shown

            //Unblessed attributes (WIAS) used to calculate bless attribute mod
            foreach (var attribute in Attributes)
            {
                attribute.WarriorBonus = TimeWarriorBonus / 2;
                attribute.LevelBonus   = levelBonus;
                attribute.BlessBonus   = 0;
            }

            Tactics.LevelBonus = levelBonus;

            //Calculate bless mod from unblessed WIAS
            Bless.LevelBonus = levelBonus;
            Bless.PtmBonus   = 0;
            Bless.SetAttributeBonus(Attributes, tacBonus);

            if (Blessed)
            {
                //Calculate attribute bonus from unblessed bless mod
                foreach (var attribute in Attributes)
                {
                    attribute.BlessBonus = (int)((Bless.Mod + (Tactics.Mod * 0.125)) / 4);
                }

                //Calculate bless mod from bless
                Bless.SetAttributeBonus(Attributes, tacBonus);
            }

            foreach (var skill in Skills)
            {
                skill.LevelBonus = levelBonus;

                if (skill.Type == Skill.Types.Attack ||
                    skill.Type == Skill.Types.Parry ||
                    skill.Type == Skill.Types.Warcry ||
                    skill.Type == Skill.Types.Freeze ||
                    skill.Type == Skill.Types.Lightning ||
                    skill.Type == Skill.Types.Fire)
                {
                    skill.SetAttributeBonus(Attributes, tacBonus);
                }
                else if (skill.Type == Skill.Types.Immunity)
                {
                    skill.SetAttributeBonus(Attributes, tacImmBonus);
                }
                else
                {
                    if (skill.Type == Skill.Types.Bless)
                    {
                        skill.SetAttributeBonus(Attributes, (int)(Tactics.Mod * 0.125));
                    }
                    else
                    {
                        skill.SetAttributeBonus(Attributes);
                    }
                }

                if (skill.Type != Skill.Types.Hitpoints &&
                    skill.Type != Skill.Types.Endurance &&
                    skill.Type != Skill.Types.Mana &&
                    skill.Type != Skill.Types.Profession)
                {
                    skill.PtmBonus = ptmBonus;
                }
            }
        }