Druidic Circle: Circle of Wildfire

Druids within the Circle of Wildfire understand that destruction is sometimes the precursor of creation, such as when a forest fire promotes later growth. These druids bond with a primal spirit that harbors both destructive and creative power, allowing the druids to create controlled flames that burn away one thing but give life to another.

name = 'Wildfire'
description = "***Druidic Circle: Circle of Wildfire.*** Druids within the Circle of Wildfire understand that destruction is sometimes the precursor of creation, such as when a forest fire promotes later growth. These druids bond with a primal spirit that harbors both destructive and creative power, allowing the druids to create controlled flames that burn away one thing but give life to another."

Circle Spells

2nd-level Circle of Wildfire feature

You have formed a bond with a wildfire spirit, a primal being of creation and destruction. Your link with this spirit grants you access to some spells when you reach certain levels in this class, as shown on the Circle of Wildfire Spells table.

Once you gain access to one of these spells, you always have it prepared, and it doesn't count against the number of spells you can prepare each day. If you gain access to a spell that doesn't appear on the druid spell list, the spell is nonetheless a druid spell for you.

Druid Level Spells
2nd burning hands, cure wounds
3rd flaming sphere, Scorching Ray
5th Plant Growth, revivify
7th Aura of Life, Fire Shield
9th flame strike, mass cure wounds
circlespells = {
    2: ['burning hands', 'cure wounds'],
    3: ['flaming sphere', 'scorching ray'],
    5: ['flame arrows', 'revivify'],
    7: ['aura of life', 'fire shield'],
    9: ['flame strike', 'mass cure wounds']
}
def level2(npc):
    def circlespellsforlevel(npc):
        spellcasting = npc.spellcasting['Druid']
        results = []
        if npc.levels(spellcasting.casterclass) >= 2: results += circlespells[2]
        if npc.levels(spellcasting.casterclass) >= 3: results += circlespells[3]
        if npc.levels(spellcasting.casterclass) >= 5: results += circlespells[5]
        if npc.levels(spellcasting.casterclass) >= 7: results += circlespells[7]
        if npc.levels(spellcasting.casterclass) >= 9: results += circlespells[9]
        spellcasting.spellsalwaysprepared += results

    npc.defer(lambda npc: circlespellsforlevel(npc))

Summon Wildfire

2nd-level Circle of Wildfire feature

You can summon the primal spirit bound to your soul. As an action, you can expend one use of your Wild Shape feature to summon your wildfire spirit, rather than assuming a beast form.

The spirit appears in an unoccupied space of your choice that you can see within 30 feet of you. Each creature within 10 feet of the spirit (other than you) when it appears must succeed on a Dexterity saving throw against your spell save DC or take 2d6 fire damage.

The spirit is friendly to you and your companions and obeys your commands. You determine the spirit's appearance. Some spirits take the form of a humanoid figure made of gnarled branches covered in flame, while others look like beasts wreathed in fire.

In combat, the spirit shares your initiative count, but it takes its turn immediately after yours. The only action it takes on its turn is the Dodge action, unless you take a bonus action on your turn to command it to take another action. That action can be one in its stat block or some other action. If you are incapacitated, the spirit can take any action of its choice, not just Dodge.

The spirit manifests for 1 hour, until it is reduced to 0 hit points, until you use this feature to summon the spirit again, or until you die.

    npc.actions.append("***Summon Wildfire.*** You expend one use of your Wild Shape to summon your [wildfire spirit](http://azgaarnoth.tedneward.com/creatures/Spirits/#wildfire-spirit). The spirit appears in an unoccupied space of your choice that you can see within 30 feet of you. Each creature within 10 feet of the spirit (other than you) when it appears must succeed on a Dexterity saving throw against your spell save DC or take 2d6 fire damage. The spirit is friendly to you and your companions and obeys your commands. You determine the spirit's appearance. Some spirits take the form of a humanoid figure made of gnarled branches covered in flame, while others look like beasts wreathed in fire. In combat, the spirit shares your initiative count, but it takes its turn immediately after yours. The only action it takes on its turn is the Dodge action, unless you take a bonus action on your turn to command it to take another action. That action can be one in its stat block or some other action. If you are incapacitated, the spirit can take any action of its choice, not just Dodge. The spirit manifests for 1 hour, until it is reduced to 0 hit points, until you use this feature to summon the spirit again, or until you die.")

Enhanced Bond

6th-level Circle of Wildfire feature

The bond with your wildfire spirit enhances your destructive and restorative spells. Whenever you cast a spell that deals fire damage or restores hit points while your wildfire spirit is summoned, roll a d8, and you gain a bonus equal to the number rolled to one damage or healing roll of the spell.

In addition, when you cast a spell with a range other than self, the spell can originate from you or your wildfire spirit.

def level6(npc):
    npc.traits.append("***Enhanced Bond.*** Whenever you cast a spell that deals fire damage or restores hit points while your Wildfire Spirit is summoned, roll a d8, and add that to the damage or healing of the spell. In addition, when you cast a spell with a range other than self, the spell can originate from you or your wildfire spirit.")

Cauterizing Flames

10th-level Circle of Wildfire feature

You gain the ability to turn death into magical flames that can heal or incinerate. When a Small or larger creature dies within 30 feet of you or your Wildfire Spirit, a harmless spectral flame springs forth in the dead creature's space and flickers there for 1 minute. When a creature you can see enters that space, you can use your reaction to extinguish the spectral flame there and either heal the creature or deal fire damage to it. The healing or damage equals 2d10 + your Wisdom modifier.

You can use this reaction a number of times equal to your proficiency bonus, and you regain all expended uses when you finish a long rest.

def level10(npc):
    npc.defer(lambda npc: npc.reactions.append("***Cauterizing Flames ({npc.proficiencybonus()}/Recharges on long rest).*** When a Small or larger creature dies within 30 feet of you or your Wildfire Spirit, a harmless spectral flame springs forth in the dead creature's space and flickers there for 1 minute. When a creature you can see enters that space, you use your reaction to extinguish the spectral flame there and either heal the creature for 2d10 + {npc.WISbonus()} or deal 2d10 + {npc.WISbonus()} fire damage to it.") )

Blazing Revival

14th-level Circle of Wildfire feature

The bond with your wildfire spirit can save you from death. If the spirit is within 120 feet of you when you are reduced to 0 hit points and thereby fall unconscious, you can cause the spirit to drop to 0 hit points. You then regain half your hit points and immediately rise to your feet.

Once you use this feature, you can't use it again until you finish a long rest.

def level14(npc):
    npc.traits.append("***Blazing Revival (Recharges on long rest).*** If your Wildfire Spirit is within 120 feet of you when you are reduced to 0 hit points and fall unconscious, you cause the spirit to drop to 0 hit points. You then regain half your hit points and immediately rise to your feet.")