예제 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="T:Core.Domain.Items.Enchantments.Paizo.CoreRulebook.Slick"/> class.
        /// </summary>
        /// <param name="slickness">The strength of the Slick enchantment.</param>
        /// /// <exception cref="System.ComponentModel.InvalidEnumArgumentException">Thrown when an argument is a nonstandard enum.</exception>
        internal Slick(SlickStrength slickness)
        {
            switch (slickness)
            {
            case SlickStrength.Regular:
                this.CasterLevel = 4;
                this.Cost        = 3750;
                break;

            case SlickStrength.Improved:
                this.CasterLevel = 10;
                this.Cost        = 15_000;
                break;

            case SlickStrength.Greater:
                this.CasterLevel = 15;
                this.Cost        = 33_750;
                break;

            default:
                throw new InvalidEnumArgumentException(nameof(slickness), (int)slickness, slickness.GetType());
            }
            byte skillBonus = Convert.ToByte((int)slickness);

            this.ApplicationEffects = (c) => c.Skills?.EscapeArtist?.CompetenceBonuses?.Add(() => skillBonus);
            this.Name = new NameFragment(Slick.BuildName(slickness), Slick.BuildWebAddress(slickness));
        }
예제 #2
0
        private static string BuildName(SlickStrength slickness)
        {
            string magnitude = (SlickStrength.Regular != slickness)
                             ? $"{ slickness }"
                             : String.Empty;

            return($"{ magnitude } Slick".Trim());
        }
예제 #3
0
        private static string BuildWebAddress(SlickStrength slickness)
        {
            switch (slickness)
            {
            case SlickStrength.Regular:
                return("http://www.d20pfsrd.com/magic-items/magic-armor/magic-armor-and-shield-special-abilities/slick/");

            case SlickStrength.Improved:
                return("http://www.d20pfsrd.com/magic-items/magic-armor/magic-armor-and-shield-special-abilities/slick-improved/");

            case SlickStrength.Greater:
                return("http://www.d20pfsrd.com/magic-items/magic-armor/magic-armor-and-shield-special-abilities/slick-greater/");

            default:
                throw new InvalidEnumArgumentException(nameof(slickness), (int)slickness, slickness.GetType());
            }
        }
예제 #4
0
 /// <summary>
 /// Enchants this armor with Slick.
 /// </summary>
 /// <exception cref="System.InvalidOperationException">Thrown when this armor does not already have a magical enhancement bonus, or when this enchantment has already been applied.</exception>
 /// <exception cref="System.ComponentModel.InvalidEnumArgumentException">Thrown when an argument is a nonstandard enum.</exception>
 new public FullPlate EnchantWithSlick(SlickStrength slickness)
 {
     base.EnchantWithSlick(slickness);
     return(this);
 }
예제 #5
0
 /// <summary>
 /// Enchants this armor with Slick.
 /// </summary>
 /// <exception cref="System.InvalidOperationException">Thrown when this armor does not already have a magical enhancement bonus, or when this enchantment has already been applied.</exception>
 /// <exception cref="System.ComponentModel.InvalidEnumArgumentException">Thrown when an argument is a nonstandard enum.</exception>
 new public ChainShirt EnchantWithSlick(SlickStrength slickness)
 {
     base.EnchantWithSlick(slickness);
     return(this);
 }
예제 #6
0
 /// <summary>
 /// Enchants this armor with Slick.
 /// </summary>
 /// <exception cref="System.InvalidOperationException">Thrown when this armor does not already have a magical enhancement bonus, or when this enchantment has already been applied.</exception>
 /// <exception cref="System.ComponentModel.InvalidEnumArgumentException">Thrown when an argument is a nonstandard enum.</exception>
 new public BandedMail EnchantWithSlick(SlickStrength slickness)
 {
     base.EnchantWithSlick(slickness);
     return(this);
 }
예제 #7
0
 /// <summary>
 /// Enchants this armor with Slick.
 /// </summary>
 /// <exception cref="System.InvalidOperationException">Thrown when this armor does not already have a magical enhancement bonus, or when this enchantment has already been applied.</exception>
 /// <exception cref="System.ComponentModel.InvalidEnumArgumentException">Thrown when an argument is a nonstandard enum.</exception>
 new public PaddedArmor EnchantWithSlick(SlickStrength slickness)
 {
     base.EnchantWithSlick(slickness);
     return this;
 }
예제 #8
0
 /// <summary>
 /// Enchants this armor with Slick.
 /// </summary>
 /// <exception cref="System.InvalidOperationException">Thrown when this armor does not already have a magical enhancement bonus, or when this enchantment has already been applied.</exception>
 /// <exception cref="System.ComponentModel.InvalidEnumArgumentException">Thrown when an argument is a nonstandard enum.</exception>
 new public HideArmor EnchantWithSlick(SlickStrength slickness)
 {
     base.EnchantWithSlick(slickness);
     return(this);
 }
예제 #9
0
 /// <summary>
 /// Enchants this armor with Slick.
 /// </summary>
 /// <exception cref="System.InvalidOperationException">Thrown when this armor does not already have a magical enhancement bonus, or when this enchantment has already been applied.</exception>
 /// <exception cref="System.ComponentModel.InvalidEnumArgumentException">Thrown when an argument is a nonstandard enum.</exception>
 new public StuddedLeatherArmor EnchantWithSlick(SlickStrength slickness)
 {
     base.EnchantWithSlick(slickness);
     return(this);
 }