Beispiel #1
0
        public bool CanBoostSpell(Spell spell, ushort level, bool send = true)
        {
            if (Owner.IsFighting())
            {
                if (send)
                {
                    ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                }

                return(false);
            }

            if (spell.CurrentLevel == level || level > 6)
            {
                if (send)
                {
                    ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                }

                return(false);
            }

            if (Owner.SpellsPoints < CalculateSpellPoints(level, spell.CurrentLevel))
            {
                if (send)
                {
                    ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                }

                return(false);
            }

            if (spell.ByLevel[level].MinPlayerLevel > Owner.Level)
            {
                if (send)
                {
                    ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                }

                return(false);
            }

            return(true);
        }
Beispiel #2
0
        public bool BoostSpell(int id, ushort level)
        {
            var spell = GetSpell(id);

            if (spell == null)
            {
                ContextRoleplayHandler.SendSpellModifyFailureMessage(Owner.Client);
                return(false);
            }

            if (!CanBoostSpell(spell, level))
            {
                return(false);
            }

            Owner.SpellsPoints -= (ushort)CalculateSpellPoints(level, spell.CurrentLevel);
            spell.CurrentLevel  = (byte)level;

            ContextRoleplayHandler.SendSpellModifySuccessMessage(Owner.Client, spell);

            return(true);
        }