City of Arabel
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Least Spell Mantle duration is too short

    Scheduled Pinned Locked Moved Closed Bugs
    3 Posts 2 Posters 57 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      LeastWeasel The Justiciars
      last edited by

      Least Spell Mantle lasts for 9 seconds, but the description says 2 rounds per level.

      Mr.MolochM 1 Reply Last reply Reply Quote
      • Mr.MolochM
        Mr.Moloch @LeastWeasel
        last edited by

        @LeastWeasel

        Unless I'm missing something; this is correctly scripted.

        //Absorb 1d4 + 2 spell levels for 2 round / level
        void LeastSpellMantle(object oPC, int iSpell) {
            object oTarget = oPC;
            effect eVis = EffectVisualEffect(VFX_DUR_SPELLTURNING);
            effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
            int nDuration = GetAdjustedCasterLevel(oPC) * 2;
            int nAbsorb = d4() + 3;
        
            if (GetHasFeat(FEAT_GREATER_SPELL_FOCUS_ABJURATION))
            {
                nDuration += 8;
                nAbsorb = d2() + 5;
            }
            else if (GetHasFeat(FEAT_SPELL_FOCUS_ABJURATION))
            {
                nDuration += 4;
                nAbsorb = d3() + 4;
            }
        
            if (GetMetaMagicFeat() == METAMAGIC_EXTEND) nDuration *= 2;
        
            effect eAbsob = EffectSpellLevelAbsorption(9, nAbsorb);
            effect eLink = EffectLinkEffects(eDur, eAbsob);
            SignalEvent(oTarget, EventSpellCastAt(oPC, iSpell, FALSE));
            RemoveEffectsFromSpell(oTarget, SPELL_GREATER_SPELL_MANTLE);
            RemoveEffectsFromSpell(oTarget, SPELL_SPELL_MANTLE);
            ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
            ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis, oTarget, 9.0f);
        }
        

        In the future, there are two simple rules to remember:

        NO SPITTING.

        DO NOT CROSS MISTER MOLOCH.

        https://youtu.be/dQw4w9WgXcQ?si=uHdfqTMS7FMTWREf

        1 Reply Last reply Reply Quote
        • L
          LeastWeasel The Justiciars
          last edited by

          Alright, its the last two lines that confused me. The VFX lasts 9 seconds, but the effect is good for the duration 2 rounds per caster level.

          I was being somewhat confounded by how it interacts with dispel (it doesn't) when trying to use it.

          1 Reply Last reply Reply Quote
          • Mr.MolochM Mr.Moloch moved this topic from Bug Reports
          • 1 / 1
          • First post
            Last post