Ring of Summer Storms

From Soul Co, Your Home for inclusive DnD

Very Rare, Requires Attunement

Ringofsummerstorms.png

Description

Granted to a contributor to the continent of Faeyis and its Mistress, the Ring of Summer Storms is the Heirloom of the Storm Household of the Fey Summer Court. The Ring allows its user to call down the Might of Wind and Lightning for those that are powerful in Magic.

While attuned to this Ring the Cantrips [Shillegagh] and [Gust] can be Cast.

While attuned to this Ring the bearer Spell DC Modifier increases depending on their character level.

Level 1-15 +1

Level 17 +2

Level 20 +3

The Ring has 20 Charges, one Charge can be used to cast

[Gust of Wind] 2nd Level / 2 Charges

[Chain Lightning] 6th Level / 5 Charges

]Etherealness] 7th Level / 6 Charges

[Planeshift] (feywild only) 7th Level / 6 Charges

[Control Weather] 8th Level / 10 Charges

When the wearer has the appropriate Spell Slots available they can be used instead. The Ring regains all used Charges after a long Rest.

When attuned to a Sorcerer that knows the [Haste] Spell, the Ring allows the wearer to cast [Haste] on one additional target, when the Metamagic Twinned is used. This effect can only be used once per long rest.

Code

!alias ringsstorms
<drac2>
#variables
ch=character()
cc="Ring of Summer Storms"
a  = &ARGS&
spell=a[0].lower()
cast_args="""&*&"""
syntax="Use etherealness, plane, gust, chain, or control to cast the associated spell.  `!ringsstorms plane`."

ch.create_cc_nx(cc, 0, 20, "long", "number", None, None, cc, "Ring of Summer Storms Charges")

if spell == "etherealness":
    if ch.get_cc(cc) < 6:
        if ch.spellbook.get_slots(7) > 0:
            ch.spellbook.set_slots(7, ch.spellbook.get_slots(7) - 1)
            return f'cast "etherealness" {cast_args} -i -phrase "Not enough charges, using spell slots **Charges:** {ch.cc_str(cc)}"'            
        else:
            return f'embed -title "Ring of Summer Storms" -f "No Resources|Not enough charges or spell slots to cast Etherealness!"'
    else:
        ch.mod_cc(cc, -6)
        return f'cast "etherealness" {cast_args} -i -phrase "Using the Ring of Summer Storms **Charges:** {ch.cc_str(cc)}"'
    
if spell == "plane":
    if ch.get_cc(cc) < 6:
        if ch.spellbook.get_slots(7) > 0:
            ch.spellbook.set_slots(7, ch.spellbook.get_slots(7) - 1)
            return f'cast "plane shift" {cast_args} -i -phrase "Not enough charges, using spell slots **Charges:** {ch.cc_str(cc)}"'            
        else:
            return f'embed -title "Ring of Summer Storms" -f "No Resources|Not enough charges or spell slots to cast Etherealness!"'    
    else:
        ch.mod_cc(cc, -6)
        return f'cast "plane shift" -i -phrase "Using the Ring of Summer Storms to the Feywilds **Charges:** {ch.cc_str(cc)}"'
    
if spell == "gust":
    if ch.get_cc(cc) < 2:
        if ch.spellbook.get_slots(2) > 0:
            ch.spellbook.set_slots(2, ch.spellbook.get_slots(2) - 1)
            return f'cast "gust of wind" {cast_args} -i -phrase "Not enough charges, using spell slots **Charges:** {ch.cc_str(cc)}"'            
        else:
            return f'embed -title "Ring of Summer Storms" -f "No Resources|Not enough charges or spell slots to cast Etherealness!"'    
    else:
        ch.mod_cc(cc, -2)
        return f'cast "gust of wind" -i {cast_args} -phrase "Using the Ring of Summer Storms **Charges:** {ch.cc_str(cc)}"'
    
if spell == "chain":
    if ch.get_cc(cc) < 5:
        if ch.spellbook.get_slots(6) > 0:
            ch.spellbook.set_slots(5, ch.spellbook.get_slots(5) - 1)
            return f'cast "chain lightning" {cast_args} -i -phrase "Not enough charges, using spell slots **Charges:** {ch.cc_str(cc)}"'            
        else:
            return f'embed -title "Ring of Summer Storms" -f "No Resources|Not enough charges or spell slots to cast Etherealness!"'    
    else:
        ch.mod_cc(cc, -5)
        return f'cast "chain lightning" -i {cast_args} -phrase "Using the Ring of Summer Storms **Charges:** {ch.cc_str(cc)}"'
    
if spell == "control":
    if ch.get_cc(cc) < 10:
        if ch.spellbook.get_slots(8) > 0:
            ch.spellbook.set_slots(8, ch.spellbook.get_slots(8) - 1)
            return f'cast "control weather" {cast_args} -i -phrase "Not enough charges, using spell slots **Charges:** {ch.cc_str(cc)}"'            
        else:
            return f'embed -title "Ring of Summer Storms" -f "No Resources|Not enough charges or spell slots to cast Etherealness!"'    
    else:
        ch.mod_cc(cc, -10)
        return f'cast "control weather" -i phrase "Using the Ring of Summer Storms, **Charges:** {ch.cc_str(cc)}"'
    
else:
    return f'embed -title Ring of Summer Storms" -f **Use:** {syntax}. **Charges:** {ch.cc_str(cc)}'

</drac2>