Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AelarTheElfRogue/8f1d0b9592db9e0d4bd2e7f4cfca6ea9 to your computer and use it in GitHub Desktop.
Save AelarTheElfRogue/8f1d0b9592db9e0d4bd2e7f4cfca6ea9 to your computer and use it in GitHub Desktop.
var iFileName = "Animal Adventures: Tales of Dungeons and Doggies.js";
RequiredSheetVersion(13);
SourceList.DnDog={
name : "Animal Adventures: Tales of Dungeons and Doggies",
abbreviation : "DnDog",
group : "Homebrew",
url : "https://steamforged.com/animal-adventures",
date : "2019/09/19"
};
//Add the Dog Bite Weapon
WeaponsList["dog bite"] = {
regExpSearch : /^(?=.*dog)(?=.*bite).*$/i,
name : "Dog Bite",
source : ["DnDog", 9],
list : "melee",
ability : 1,
type : "Natural",
damage : [1, 4, "piercing"],
range : "Melee",
description : "Counts as a weapon and unarmed attack",
abilitytodamage : true,
};
//Add the Dog Race
RaceList["lap dog"] = {
regExpSearch : /^(?=.*lap)(?=.*dog).*$/i,
name : "Lap Dog",
sortname : "Dog, Lap",
source : ["DnDog", 9],
plural : "Lap Dogs",
size : 4,
speed : {
walk : { spd : 30, enc : 20 },
},
languageProfs : ["Common", 2],
weapons : ["Dog Bite"],
age : " reach maturity around 18 months, and usually live between 10 and 15 years.",
improvements : "Lap Dog: +1 Dexterity, +1 Charisma;",
scores : [0, 1, 0, 0, 0, 1],
trait : "Lap Dog (+1 Dexterity, +1 Charisma)\nBest Friend: I can cast Charm Person once per long rest. My DC is 8 + my Cha Mod\nKeen Senses: I have advantage on Perception checks based on smell or hearing and disadvantage on Perception checks depending upon color recognition.\nBreed Abilities: I choose two Dog Breed Abilities feats.\nSlippery: If my attack is a critical hit, I may dodge as a free action after.",
features : {
"best friend" : {
name : "Best Friend",
minlevel : 1,
usages: 1,
recovery: "long rest",
spellcastingBonus : {
name : "Best Friend (level 1)",
spells : ["charm person"],
selection : ["charm person"],
oncelr : true,
},
},
"worse than the bark" : {
name : "Worse than the Bark",
minlevel : 1,
tooltip : "",
additional : levels.map(function (n) {
return "1d" + (n < 5 ? 4 : n < 10 ? 6 : 8);
}),
calcChanges : {
atkAdd : ["var dogBiteDie = function(n) {return n < 5 ? 4 : n < 10 ? 6 : 8;}; if ((/dog bite/i).test(theWea.name)) {var adogBiteDie = dogBiteDie(Number(What('Character Level'))); try {var curDie = eval(fields.Damage_Die.replace('d', '*'));} catch (e) {var curDie = 'x';}; if (isNaN(curDie) || curDie < adogBiteDie) {fields.Damage_Die = '1d' + adogBiteDie;};}; ", "Dog Bite Scales"]
}
},
}
};
RaceList["regular dog"] = {
regExpSearch : /^(?=.*regular)(?=.*dog).*$/i,
name : "Regular Dog",
sortname : "Dog, Regular",
source : ["DnDog", 9],
plural : "Regular Dogs",
size : 3,
speed : {
walk : { spd : 30, enc : 20 },
},
languageProfs : ["Common", 2],
weapons : ["Dog Bite"],
age : " reach maturity around 18 months, and usually live between 10 and 15 years.",
improvements : "Dog: +1 Strength, +1 Charisma;",
scores : [1, 0, 0, 0, 0, 1],
trait : "Regular Dog (+1 Strength, +1 Charisma)\nBest Friend: I can cast Charm Person once per long rest. My DC is 8 + my Cha Mod\nKeen Senses: I have advantage on Perception checks based on smell or hearing and disadvantage on Perception checks depending upon color recognition.\nBreed Abilities: I choose two Dog Breed Abilities feats.\nBoundless Persistance: Once per long rest, when reduced to 0HP, I can spend one hit die.",
features : {
"best friend" : {
name : "Best Friend",
minlevel : 1,
usages: 1,
recovery: "long rest",
spellcastingBonus : {
name : "Best Friend (level 1)",
spells : ["charm person"],
selection : ["charm person"],
oncelr : true,
},
},
"worse than the bark" : {
name : "Worse than the Bark",
minlevel : 1,
tooltip : "",
additional : levels.map(function (n) {
return "1d" + (n < 5 ? 4 : n < 10 ? 6 : 8);
}),
calcChanges : {
atkAdd : ["var dogBiteDie = function(n) {return n < 5 ? 4 : n < 10 ? 6 : 8;}; if ((/dog bite/i).test(theWea.name)) {var adogBiteDie = dogBiteDie(Number(What('Character Level'))); try {var curDie = eval(fields.Damage_Die.replace('d', '*'));} catch (e) {var curDie = 'x';}; if (isNaN(curDie) || curDie < adogBiteDie) {fields.Damage_Die = '1d' + adogBiteDie;};}; ", "Dog Bite Scales"]
}
},
}
};
RaceList["big dog"] = {
regExpSearch : /^(?=.*big)(?=.*dog).*$/i,
name : "Big Dog",
sortname : "Dog, Big",
source : ["DnDog", 9],
plural : "Dogs",
size : 3,
speed : {
walk : { spd : 30, enc : 20 },
},
languageProfs : ["Common", 2],
weapons : ["Dog Bite"],
age : " reach maturity around 18 months, and usually live between 10 and 15 years.",
improvements : "Big Dog: +1 Constitution, +1 Charisma;",
scores : [0, 0, 1, 0, 0, 1],
trait : "Big Dog (+1 Constitution, +1 Charisma)\nBest Friend: I can cast Charm Person once per long rest. My DC is 8 + my Cha Mod\nKeen Senses: I have advantage on Perception checks based on smell or hearing and disadvantage on Perception checks depending upon color recognition.\nBreed Abilities: I choose two Dog Breed Abilities feats.\nPowerful Bite: I roll 2 dice for my bite damage and take the higher result. On a crit, I roll 3 and choose the best 2.",
features : {
"best friend" : {
name : "Best Friend",
minlevel : 1,
usages: 1,
recovery: "long rest",
spellcastingBonus : {
name : "Best Friend (level 1)",
spells : ["charm person"],
selection : ["charm person"],
oncelr : true,
},
},
"worse than the bark" : {
name : "Worse than the Bark",
minlevel : 1,
tooltip : "",
additional : levels.map(function (n) {
return "1d" + (n < 5 ? 4 : n < 10 ? 6 : 8);
}),
calcChanges : {
atkAdd : ["var dogBiteDie = function(n) {return n < 5 ? 4 : n < 10 ? 6 : 8;}; if ((/dog bite/i).test(theWea.name)) {var adogBiteDie = dogBiteDie(Number(What('Character Level'))); try {var curDie = eval(fields.Damage_Die.replace('d', '*'));} catch (e) {var curDie = 'x';}; if (isNaN(curDie) || curDie < adogBiteDie) {fields.Damage_Die = '1d' + adogBiteDie;};}; ", "Dog Bite Scales"]
}
},
}
};
//Add the Awakened Animal Background
BackgroundList["awakened animal"] = {
regExpSearch : /awakened animal/i,
name : "Awakened Animal",
source : ["DnDog", 17],
skills : ["Insight", "Persuasion"],
skillstxt : "Insight and Persuasion",
gold : 15,
equipleft : [
["Well-chewed toy", 1, ""],
],
equipright : [
["An object related to my awakening", "", 3],
["Collar pouch (with coins)", "", 1],
],
feature : "A Friend By Every Fireside",
trait : [
"I tend to the dramatic; as a creature of impulse I have few middle gears and often narrate my circumstances with great flair and florid expression.",
"I dislike conflict and try to be a calming mediator, seeking common ground in conflict.",
"I have a tendency to diffuse tension with humour and love doing silly tricks to make people like me.",
"When in a new place, I have a need to... establish my ownership...",
"I am the one who charges into every situation with gusto, rarely stopping to think about consequences.",
"I get bored easily if I'm not the centre of attention.",
"I love to play more than anything, be it racing around with children or more cerebral fare.",
"I'm constantly delighted by fooling people into thinking I'm a normal dog, and I'm not against using this to my advantage.",
],
ideal : [
["Selflessness",
"Selflessness: I believe in self-sacrifice and unhesitating action to improve the lives of others."
],
["Aid",
"Aid: My skills are a gift to the world and I must assist in endeavours where I can be of use."
],
["Family",
"Family: Nothing is more important than the people we love. I'd do anything to keep family together."
],
["Comfort",
"Comfort: I cannot stand to see a creature in pain, and will act within my power to provide succour and lift spirits."
],
["Knowledge",
"Knowledge: I have a unique gift and perspective. I must share that, and further my knowledge of the world so maybe more like me can follow."
],
["Change",
"Change. My enhanced understanding of the world shows me many injustices. I have a deep desire to enact change within the world order, one day at a time."
],
],
bond : [
"The magical writings of my lost master gave me this gift, now I bear them to the place they must be laid.",
"The one who did this to me did not expect me to escape. But my return will be even more shocking.",
"When the one who made me this way set off on their long quest, they were ignorant of what they had given me. I will find them and together we will achieve greatness.",
"I made a promise that the child I knew as a pup would always be safe. I work towards that still.",
"This object may look like junk, but it is the last tie to a lost past. One day I will return that past to the world.",
"There are others like me, for I am their kin. I will seek them out no matter what."
],
flaw : [
"I cannot escape the loneliness I feel as a singular intelligence among animals and long to meet another like myself.",
"Deep down, I am angry at the way my species is treated and I am easily offended by condescending attitudes or perceived cruelties.",
"I fear losing my companions and so I can react to strangers with mistrust and even aggression.",
"I regard myself as a superior version of my kind, and I am prone to forcing non sentient dogs into submission.",
"I've never let go of my basic instincts and can be the cause of social awkwardness with my canine behaviour.",
"My willingness to trust and follow people, even strangers, means I am easily led into compromising scenarios.",
],
languageProfs : [1],
};
BackgroundFeatureList["A Friend By Every Fireside"] = {
description : "I am always aware of the local canine population and can seek information about the locality and goings on from the many dogs I encounter. By sniffing popular places and scents, I can instantly learn limited information about a place. I can usually find a friendly local dog who can help me seek safe and welcoming accommodation, food and shelter.",
source : ["DnDog", 17],
};
//Add the Compainion Domain
AddSubClass("cleric", "companion domain", {
regExpSearch : /^(?=.*(cleric|priest|clergy|acolyte))(?=.*(companion)).*$/i,
subname : "Companion Domain",
source : ["DnDog", 18],
spellcastingExtra : ["guiding bolt", "healing word", "aid", "calm emotions", "beacon of hope", "mass healing word", "death ward", "locate creature", "geas", "greater restoration"],
features : {
"subclassfeature1" : {
name : "Aspect of the Amicable",
source : ["DnDog", 18],
minlevel : 1,
description : desc ([
"I can use my Best Friend ability once per short rest.",
]),
usages : 1,
recovery : "short rest",
spellcastingBonus : {
name : "Aspect of the Amicable",
spells : ["charm person"],
selection : ["charm person"],
oncesr : true,
},
},
"subclassfeature2" : {
name : "Channel Divinity: Invoke Companionship",
source : ["DnDog", 18],
minlevel : 2,
description : desc ([
"I can choose a number of allies within 30 feet; each gains temporary",
"hit points equal to my cleric level",
]),
action : ["action", ""],
},
"subclassfeature6" : {
name : "Channel Divinity : Lifted Spirits",
source : ["DnDog", 18],
minlevel : 6,
description : desc ([
"I can choose an ally within 30 ft to gain advantage on a saving thrown",
"type of my choosing. This effect last for one minute. "
]),
action : ["action", ""],
},
"subclassfeature8" : {
name : "Divine Bite",
source : ["DnDog", 18],
minlevel : 8,
description : desc ([
"Once on each of my turns, I can add 1d8 extra damage to my Bite attack.",
"At 14th level, the damage increases to 2d8 extra damage."
]),
additional : levels.map(function (n) {
if (n < 8) return "";
return "+" + (n < 14 ? 1 : 2) + "d8 piercing damage";
}),
calcChanges : {
atkAdd : ["if (classes.known.cleric && classes.known.cleric.level > 7 && (/dog bite/i).test(theWea.name)) {fields.Description += (fields.Description ? '; ' : '') + 'Once per turn +' + (classes.known.cleric.level < 14 ? 1 : 2) + 'd8 piercing damage'; }; ", "Once per turn, I can add additional damage to my dog bite."]
}
},
"subclassfeature17" : {
name : "Leader of the Pack",
source : ["DnDog", 18],
minlevel : 17,
description : desc ([
"While creatures are charmed by my Best Friend ability, I can use a bonus action",
"on each of my turns to command what each of them will do on their next turn.",
]),
}
}
});
//Add Breed Abilties as Feats
FeatsList["dog breed abilities"] = {
name : "Dog Breed Abilities",
source : ["DnDog", 10],
prerequisite : "Being a Dog",
prereqeval: "(/dog/i).test(CurrentRace.known)",
allowDuplicates : true,
description : "I gain abilites that define my uniquely as a dog. I choose two of these options at level 1.",
choices : ["assistance dog", "at their heels", "bloodhound", "catch and fetch", "cattle dog", "comforting companion", "digger", "dogged persistance", "faithful friend", "frenzied fighting", "grabbing bite", "guard dog", "hunting hound", "incessant barking", "old dog, new tricks", "retreiver", "shake it off", "snow dog", "sprinter", "the eyes have it", "thick coat", "upright and alert"],
"assistance dog" : {
name : "Assistance Dog",
description : "I can nominate a creature within 5 feet of me as a bonus action. Whilst in this range, it benefits from my Keen Senses trait as if it possessed the trait itself.",
},
"at their heels" : {
name : "At Their Heels",
description : "When a target provokes an opportunity attack from me, if I hit then I may also move up to half my movement speed towards my foe.",
},
"bloodhound" : {
name : "Bloodhound",
description : "I have advantage on Wisdom (Survival) checks on rolls related to tracking a target using scent.",
},
"catch and fetch" : {
name : "Catch and Fetch",
description : "I can use my reaction to reduce the damage from a ranged weapon attack by 1d10 + my Dexterity modifier. If I reduce the damage to 0 in this way, I catch the weapon.",
action : ["reaction", " (Reduce Damage)"]
},
"cattle dog" : {
name : "Cattle Dog",
description : "When I hit a creature with an opportunity attack, I may move that creature up to 10 feet in any direction before it resolves the rest of its movement.",
},
"comforting companion" : {
name : "Comforting Companion",
description : "When I share an entire short or long with up to six creatures I choose within 30 feet of me, each regains hit points equal to my level.",
},
"digger" : {
name : "Digger",
description : "In combat, if I am in an environment which can be dug into by my paws, I may take an action to go prone and gain half cover.",
action : ["action", " (Go Prone)"]
},
"dogged persistance" : {
name : "Dogged Persistance",
description : "When I take damage, I can use my reaction to gain resistance to all of the triggering damage. After I use this ability, I can’t use it again until I complete a short or long rest.",
usages : 1,
recovery : "short rest"
},
"faithful friend" : {
name : "Faithful Friend",
description : "Once per short rest, as your reaction, I can use my reaction to allow an ally within 30 feet to re-roll a failed saving throw, ability check, or attack roll, or force an opponent to re-roll a successful attack against an ally you can see within 30 feet.",
usages : 1,
recovery : "short rest"
},
"frenzied fighting" : {
name : "Frenzied Fighting",
description : "Once per long rest, I may cause each creature in a 15ft cube originating from me to make a Con save. On a failed save, a creature takes 2d8 damage and is pushed 10 ft away from me. On a successful save, the creature takes half as much damage and isn't pushed.",
usages : 1,
recovery : "long rest"
},
"grabbing bite" : {
name : "Grabbing Bite",
description : "When I succeed in hitting a creature of my size or smaller with my Bite attack I may also declare it is grappled. I may use this ability against a creature larger than me, but if I do, my move becomes 0 while grappling and I will move along with the grappled creature.",
},
"guard dog" : {
name : "Guard Dog",
description : "If an ally is hit by an attack within five feet of me, I may use my reaction to make an attack against the attacker.",
action : ["action", ""]
},
"hunting hound" : {
name : "Hunting Hound",
description : "I have advantage on an attack roll against a creature if at least one of my allies is within 5 feet of the creature and the ally isn't incapacitated.",
},
"incessant barking" : {
name : "Incessant Barking",
description : "Once per long rest, I may bark incessantly, casting the Dissonant Whispers spell on all creatures within a 15 feet cube of me. This affect deals 2d8 damage instead of the normal amount.",
spellcastingBonus : {
name : "Incessant Barking",
spells : ["dissonant whispers"],
selection : ["dissonant whispers"],
oncelr : true,
},
spellChanges : {
"dissonant whispers" : {
name : "Incessant Barking",
range : "15ft",
description : "All crea in 15ft cube 2d8 Psychic dmg and flee; save halves and no flee; deaf crea are immune",
descriptionFull : "You bark incessantly, wracking all creatures within a 15ft cube with terrible pain. Targets must make a Wisdom saving throw. On a failed save, it takes 2d8 psychic damage and must immediately use its reaction, if available, to move as far as its speed allows away from you. The creature doesn't move into obviously dangerous ground, such as a fire or a pit. On a successful save, the target takes half as much damage and doesn't have to move away. A deafened creature automatically succeeds on the save.",
changes : "Name changed, damage is dealt to all creatures within 15ft cube, with 2d8 damage."
},
},
},
"old dog, new tricks" : {
name : "Old Dog, New Tricks",
description : "I gain proficiency with any two skills.",
skills : "\n\n" + toUni("Old Dog, New Tricks (Dog Breed Ability)") + ": Choose two skills."
},
"retreiver" : {
name : "Retreiver",
description : "I gain advantage on Intelligence (Investigation) checks.",
eval : function () {
SetProf("advantage", true, ["Investigation", true], "Dog Breed Ability: Retreiver");
},
removeeval : function () {
SetProf("advantage", false, ["Investigation", true], "Dog Breed Ability: Retreiver");
}
},
"shake it off" : {
name : "Shake It Off",
description : "Once per long rest, I can gain advatage on a saving throw to end the blinded, deafened, paralyzed, or poisoned conditions.",
usages : 1,
recovery : "long rest"
},
"snow dog" : {
name : "Snow Dog",
description : "I am naturally adapted to cold climates, and ignore the effects of extreme cold.",
},
"sprinter" : {
name : "Sprinter",
description : "My movement speed inceases by 10ft. When I take the dash action, I ignore the first opportunity attack that I would provoke.",
speed : { allModes : "+10" }
},
"the eyes have it" : {
name : "The Eyes Have It",
description : "I have advantage on Charisma base ability checks with non-hostile creatures.",
},
"thick coat" : {
name : "Thick Coat",
description : "While not wearing armor, my AC is 12 + my Dexterity modifier.",
armorOptions : {
regExpSearch : /justToAddToDropDown/,
name : "Thick Coat",
source : [["SRD", 8], ["P", 48]],
ac : 12,
},
armorAdd : "Thick Coat"
},
"upright and alert" : {
name : "Upright and Alert",
description : "I can never be surprised. If my party is surprised, I can act normally in the initiative order.",
},
};
//Add the class feats
//Barbarian Feats
FeatsList["alpha of the pack"] = {
name : "Alpha of the Pack",
source : ["DnDog", 12],
prerequisite : "Being a Dog Barbarian",
prereqeval: "classes.known.barbarian && (/dog/i).test(CurrentRace.known)",
description : "While raging, my allies have advantage against a single target that I am engaged with.",
};
FeatsList["feral cooperation"] = {
name : "Feral Cooperation",
source : ["DnDog", 12],
prerequisite : "Being a Dog Barbarian with the Savage Howl feat",
prerequisite: "classes.known.barbarian && (/dog/i).test(CurrentRace.known) && CurrentFeats.known.indexOf('savage howl') != -1",
description : "While raging, if my first attack hits a target, an ally may use their reaction to move half thier speed (not provoking opportunity attacks) and make a melee attack against the same target",
};
FeatsList["savage howl"] = {
name : "Savage Howl",
source : ["DnDog", 12],
prerequisite : "Being a Dog Barbarian",
prereqeval : "classes.known.barbarian && (/dog/i).test(CurrentRace.known)",
description : "Each turn while I am raging, if I hit with at least one attack, I may nominate one ally within 30 feet of you. That ally receives a 1d6 bonus to its next damage roll. I may nominate the same or a different ally each round, but damage bonuses do not stack.",
};
//Bard Feats
FeatsList["bard of amity"] = {
name : "Bard of Amity",
source : ["DnDog", 12],
prerequisite : "Being a Dog Bard",
prereqeval : "classes.known.bard && (/dog/i).test(CurrentRace.known)",
description : "A creature who uses my Bardic Inspiration die to make a successful roll may, as a bonus action, pass the Bardic Inspiration die to an ally within 30 feet. They must use the die on their next attack roll, ability check, or saving throw. The die is not passed again. [+1 Cha]",
scores : [0, 0, 0, 0, 0, 1]
};
FeatsList["calming and charming"] = {
name : "calming and charming",
source : ["DnDog", 12],
prerequisite : "Being a Dog Bard",
prereqeval : "classes.known.bard && (/dog/i).test(CurrentRace.known)",
description : "My Best Friend racial talent now allows me to cast Calm Emotions instead of Charm Person; I add Charm Person to my list of Bard Spells Known.",
spellcastingBonus : {
name : "Best Friend (level 1)",
spells : ["calm emotions"],
selection : ["calm emotions"],
oncelr : true,
},
};
FeatsList["howling melody"] = {
name : "Howling Melody",
source : ["DnDog", 12],
prerequisite : "Being a Dog Bard",
prereqeval : "classes.known.bard && (/dog/i).test(CurrentRace.known)",
description : "I may cast the spell Dissonant Whispers once per short rest at 1st level without expending a spell slot.",
spellcastingBonus : {
name : "Howling Melody",
spells : ["dissonant whispers"],
selection : ["dissonant whispers"],
oncesr : true,
},
};
//Druid Feats
FeatsList["bond of the wildblood"] = {
name : "Bond of the Wildblood",
source : ["DnDog", 13],
prerequisite : "Being a Dog Druid",
prereqeval : "classes.known.druid && (/dog/i).test(CurrentRace.known)",
description : "I can issue a howling cry which nearby creatures will respond to. A group of 1d3 creatures of the Beast subtype within 5 minutes if able. Their CR is equal to my Wild Shape form Max. CR. They fight for me and leave at my next short rest.",
usages : 1,
recovery : "short rest"
};
FeatsList["mark the ground"] = {
name : "Mark the Ground",
source : ["DnDog", 13],
prerequisite : "Being a Dog Druid",
prereqeval : "classes.known.druid && (/dog/i).test(CurrentRace.known)",
description : "I learn a ten minute ritual to mark the ground and create a Circle of Territory which functions as the spell Leomund’s Tiny Hut with a 20 ft radius. While within the Circle, I may use my Natural Recovery to replenish other creatures’ spell slots instead of my own.",
spellcastingBonus : {
name : "Mark the Ground",
spells : ["circle of territory"],
selection : ["circle of territory"],
markedbox : true,
},
};
SpellsList["cirle of territory"] = {
name : "Circle of Territory",
classes : [],
source : ["DnDog", 13],
ritual : true,
level : 3,
school : "Evoc",
time : "1 min",
range : "20-ft rad",
components : "V,S,M",
duration : "8 h",
description : "20-ft rad immobile dome of force holds 9 Medium crea; blocks magic; ends if I leave; see book",
descriptionFull : "A 20-foot-radius immobile dome of force springs into existence around and above you and remains stationary for the duration. The spell ends if you leave its area." + "\n " + "Nine creatures of Medium size or smaller can fit inside the dome with you. The spell fails if its area includes a larger creature or more than nine creatures. Creatures and objects within the dome when you cast this spell can move through it freely. All other creatures and objects are barred from passing through it. Spells and other magical effects can't extend through the dome or be cast through it. The atmosphere inside the space is comfortable and dry, regardless of the weather outside." + "\n " + "Until the spell ends, you can command the interior to become dimly lit or dark. The dome is opaque from the outside, of any color you choose, but it is transparent from the inside."
};
FeatsList["the soul of the pack"] = {
name : "The Soul of the Pack",
source : ["DnDog", 13],
prerequisite : "Being a Dog Druid with the Mark the Ground feat",
prereqeval : "classes.known.druid && (/dog/i).test(CurrentRace.known) && CurrentFeats.known.indexOf('mark the ground') != -1",
description : "During the Mark the Ground Ritual, I may create a Pack Bond for myself and a number of allies up to my Druid level. For 1 hour, a Pack Bonded ally may roll one of its hit dice as an action and take that much psychic damage to heal a Pack Bonded ally (60 ft) that amt",
};
//Fighter Feats
FeatsList["fangs of the wolf"] = {
name : "Fangs of the Wolf",
source : ["DnDog", 13],
prerequisite : "Being a Dog Fighter",
prereqeval : "classes.known.fighter && (/dog/i).test(CurrentRace.known)",
description : "I may use my reaction to attack a creature that hits me with my bite.",
action : ["reaction", ""]
};
FeatsList["hound the foes"] = {
name : "Hound the Foes",
source : ["DnDog", 13],
prerequisite : "Being a Dog Fighter",
prereqeval : "classes.known.fighter && (/dog/i).test(CurrentRace.known)",
description : "When I hit a target in melee with a critical hit, their speed becomes 0 for their next turn. I may move to engage a different target within 15 feet as a bonus action without provoking opportunity attacks.",
};
FeatsList["pack fighter"] = {
name : "Pack Fighter",
source : ["DnDog", 13],
prerequisite : "Being a Dog Fighter",
prereqeval : "classes.known.fighter && (/dog/i).test(CurrentRace.known)",
description : "Once per short rest, allies who remain within ten feet of me gain a +2 AC bonus for one minute.",
usages : 1,
recovery : "short rest"
};
//Monk Feats
FeatsList["guiding paw strike"] = {
name : "Guiding Paw Strike",
source : ["DnDog", 13],
prerequisite : "Being a Dog Monk",
prereqeval : "classes.known.monk && (/dog/i).test(CurrentRace.known)",
description : "When I hit with a melee attack using a Monk weapon or Unarmed Strike, I may spend one ki point to give one creature within 30 feet of me advantage on its next attack against the target or resistance to the next source of damage caused by the target.",
};
FeatsList["the pack is many, the pack is one"] = {
name : "The Pack is Many, The Pack is One",
source : ["DnDog", 13],
prerequisite : "Being a Dog Monk",
prereqeval : "classes.known.monk && (/dog/i).test(CurrentRace.known)",
description : "As an action, I can distribute healing equal to three times my Monk level among any number of creatures within 30 feet. I must finish a long rest before I can use this ability again.",
usages : 1,
recovery : "short rest"
};
FeatsList["the wisdom of playfulness"] = {
name : "The Wisdom of Playfulness",
source : ["DnDog", 13],
prerequisite : "Being a Dog Monk",
prereqeval : "classes.known.monk && (/dog/i).test(CurrentRace.known)",
description : "I can spend one Ki point per creature to activate each of the following effects for 1 hour: Laughing at danger: Gain resistance to 1 damage type - The folly of fear: Become immune to fear effects - Irrepressible joy: Gain advantage on all Int, Wis, and Cha saving throws",
};
//Paladin Feats
FeatsList["a friend indeed"] = {
name : "A Friend Indeed",
source : ["DnDog", 14],
prerequisite : "Being a Dog Paladin",
prereqeval : "classes.known.paladin && (/dog/i).test(CurrentRace.known)",
description : "I may use my Sacred Weapon Channel Divinity on a friendly creature’s weapon within 15 feet of me. As a Dog, I may ignore the restriction on holding a weapon.",
};
FeatsList["devoted to the pack"] = {
name : "Devoted to the Pack",
source : ["DnDog", 14],
prerequisite : "Being a Dog Paladin",
prereqeval : "classes.known.paladin && (/dog/i).test(CurrentRace.known)",
description : "When I use my Channel Divinity feature, in addition to my chosen effect, one friendly creature I nominate within 30 feet is encouraged for one minute, becoming immune to fear and resistant to necrotic damage.",
};
FeatsList["loyalty to the last"] = {
name : "Loyalty to the Last",
source : ["DnDog", 14],
prerequisite : "Being a Dog Paladin",
prereqeval : "classes.known.paladin && (/dog/i).test(CurrentRace.known)",
description : "If a friendly creature within 15 feet of me is reduced to 0 hit points, I may use my reaction to use my your Lay on Hands ability. I must then take a long rest to regain this ability.",
};
//Ranger Feats
FeatsList["guide the pack"] = {
name : "Guide the Pack",
source : ["DnDog", 14],
prerequisite : "Being a Dog Ranger",
prereqeval : "classes.known.ranger && (/dog/i).test(CurrentRace.known)",
description : "Once per long rest, when I reduce a target to 0 hit points, I grant up to three creatures within 30 feet of me advantage on their next attack.",
};
FeatsList["lead the hunt"] = {
name : "Lead the Hunt",
source : ["DnDog", 14],
prerequisite : "Being a Dog Ranger",
prereqeval : "classes.known.ranger && (/dog/i).test(CurrentRace.known)",
description : "When I cast Hunter’s Mark on a target, choose a willing creature within 30 feet. That creature gains a 1d4 damage bonus to attacks against the same target for the duration of the effect.",
};
FeatsList["Apex Predator"] = {
name : "Apex Predator",
source : ["DnDog", 14],
prerequisite : "Being a Dog Ranger with the Lead the Hunt feat",
prereqeval : "classes.known.ranger && (/dog/i).test(CurrentRace.known) && CurrentFeats.known.indexOf('lead the hunt') != -1",
description : "When I cast Hunter’s Mark on a target, I choose up to three willing creatures within 30 feet. They each gain a 1d4 damage bonus to attacks against the same target for the duration of the effect. (One creature will also benefit from Lead the Hunt).",
};
//Rogue Feats
FeatsList["ankle cutter"] = {
name : "Ankle Cutter",
source : ["DnDog", 14],
prerequisite : "Being a Dog Rogue",
prereqeval : "classes.known.rogue && (/dog/i).test(CurrentRace.known)",
description : "When making a Sneak Attack, if any of the Sneak Attack dice roll their maximum face value, my target’s speed is reduced to 0 until they pass a Con Saving Throw at the end of one of their turns. The DC for this is 8 + my proficiency bonus + my Dex modifier.",
};
FeatsList["shadow paw rogue"] = {
name : "Shadow Paw Rogue",
source : ["DnDog", 14],
prerequisite : "Being a Dog Rogue",
prereqeval : "classes.known.rogue && (/dog/i).test(CurrentRace.known)",
description : "If I hit in combat with a Sneak Attack, I may choose to move up to ten feet as a free action. This movement does not provoke opportunity attacks.",
};
FeatsList["slashing claws, silent paws"] = {
name : "Slashing Claws, Silent Paws",
source : ["DnDog", 14],
prerequisite : "Being a Dog Rogue",
prereqeval : "classes.known.rogue && (/dog/i).test(CurrentRace.known)",
description : "When making a Sneak Attack, if any of the Sneak Attack dice roll their maximum face value, I may Hide as a free action.",
};
//Sorcerer Feats
FeatsList["buried in the veil"] = {
name : "Buried in the Veil",
source : ["DnDog", 14],
prerequisite : "Being a Dog Sorcerer",
prereqeval : "classes.known.sorcerer && (/dog/i).test(CurrentRace.known)",
description : "Once per long rest I may ‘bury’ an object of no more than one cubic foot in size as an action. It passes beyond the material plane. I may ‘retrieve’ it at any time as an action. I may bury a number of objects in total equal to my Charisma modifier.",
usages : 1,
recovery : "long rest"
};
FeatsList["dimension digger"] = {
name : "Dimension Digger",
source : ["DnDog", 14],
prerequisite : "Being a Dog Sorcerer",
prereqeval : "classes.known.sorcerer && (/dog/i).test(CurrentRace.known)",
description : "I can dig and scramble through the weave of reality. Once per long rest, whenever I expend one or more sorcery points, I may cast the Misty Step spell.",
usages : 1,
recovery : "long rest",
spellcastingBonus : {
name : "Dimension Digger",
spells : ["misty step"],
selection : ["misty step"],
oncelr : true,
},
};
FeatsList["supportive spell"] = {
name : "Supportive Spell",
source : ["DnDog", 14],
prerequisite : "Being a Dog Sorcerer",
prereqeval : "classes.known.sorcerer && (/dog/i).test(CurrentRace.known)",
description : "When I cast a spell which successfully affects an enemy creature, I may spend a sorcery point to give a friendly creature I choose within 15 feet of you advantage on their next roll against the target.",
};
//Wizard Feats
FeatsList["arcanine scrounger"] = {
name : "Arcanine Scrounger",
source : ["DnDog", 15],
prerequisite : "Being a Dog Wizard",
prereqeval : "classes.known.wizard && (/dog/i).test(CurrentRace.known)",
description : "I can choose a willing creature and spend 15 minutes with them. I may learn a spell that the creature knows as if I have it prepared, but it does not count against the number of spells I can prepare. I can cast this spell until then end of your next long rest.",
};
FeatsList["dogged casting"] = {
name : "Dogged Casting",
source : ["DnDog", 15],
prerequisite : "Being a Dog Wizard",
prereqeval : "classes.known.wizard && (/dog/i).test(CurrentRace.known)",
description : "I have advantage on any concentration checks to retain concentration spells that I am required to make.",
};
FeatsList["familiar friends"] = {
name : "Familiar Friends",
source : ["DnDog", 15],
prerequisite : "Being a Dog Wizard",
prereqeval : "classes.known.wizard && (/dog/i).test(CurrentRace.known)",
description : "I may prepare the Find Familiar spell without a spellbook. I also reduce the casting time of Find Familiar to 1 minute and the cost of materials consumed to 1 gp.",
};
//Warlock Feats
FeatsList["dark bark"] = {
name : "Dark Bark",
source : ["DnDog", 15],
prerequisite : "Being a Dog Warlock",
prereqeval : "classes.known.warlock && (/dog/i).test(CurrentRace.known)",
description : "Once per turn a creature that takes damage from my Eldritch Blast must make a Wisdom saving throw versus my Spell Save DC or become Frightened of me until the end of their next turn.",
};
FeatsList["fey friend"] = {
name : "Fey Friend",
source : ["DnDog", 15],
prerequisite : "Being a Dog Warlock",
prereqeval : "classes.known.warlock && (/dog/i).test(CurrentRace.known)",
description : "I may use Find Familiar once per long rest without requiring material components. Regardless of the creature type I summon, its appearance is a smaller version of my own canine appearance, although it retains the abilities of the creature type I call upon.",
spellcastingBonus : {
name : "Fey Friend",
spells : ["find familiar"],
selection : ["find familiar"],
oncelr : true,
},
spellChanges : {
"find familiar" : {
name : "Fey Friend",
components : "V,S",
changes : "Find Familar can be cast without material components"
},
},
};
FeatsList["netherhound companion"] = {
name : "Netherhound Companion",
source : ["DnDog", 15],
prerequisite : "Being a Dog Warlock with the Fey Friend feat",
prereqeval : "classes.known.warlock && (/dog/i).test(CurrentRace.known) && CurrentFeats.known.indexOf('fey friend') != -1",
description : "My Patron has gifted you a fully formed hunting companion. I may call upon this companion twice per long rest. It follows the same rules and behaviors as the Channel Divinity effect, Invoke Duplicity and may cast my spells and Eldritch Invocations.",
usages : 2,
recovery : "long rest"
};
//Add the Magic Items
MagicItemsList["barley’s ball of fetching"] = {
name : "Barley’s Ball of Fetching",
source : ["DnDog", 19],
type : "wonderous item",
rarity : "uncommon",
allowDuplicates : false,
description : "This seemingly normal rubber ball can throw itself up to 120ft upon speaking the command bark from up to 15 feet away. This allows me to play fetch without needing someone to throw the ball. However a successful Spell Attack allows the ball to be used as a ranged attack for 1d4+Dex bludgeoning damage.",
descriptionLong: "This seemingly normal rubber ball can throw itself up to 120ft upon speaking the command bark from up to 15 feet away. The most basic of these balls has no other effect but to allow me to play fetch without needing someone to throw the ball. However a successful Spell Attack allows the ball to be used as a ranged attack for 1d4+Dex bludgeoning damage.",
weaponsAdd : ["Barley’s Ball of Fetching"],
}
WeaponsList["barley’s ball of fetching"] = {
regExpSearch : /(?=.*barley's)(?=.*ball)(?=.*fetching).*$/i,
name : "Barley’s Ball of Fetching",
source : ["DnDog", 19],
list : "spell",
ability : 2,
type : "Spell",
damage : [1, 4, "bludgeoning"],
range : "120 ft",
description : "",
abilitytodamage : true,
};
MagicItemsList["bun-bun of soothing"] = {
name : "Bun-Bun of Soothing",
source : ["DnDog", 19],
type : "wonderous item",
rarity : "uncommon",
allowDuplicates : false,
description : "The Bun-Bun is a tattered looking stuffed rabbit toy which seems to be forever on the verge of falling to pieces. Chewing on or stroking the Bun-Bun as an Action casts the spell Calm Emotions with a DC of 12 + the bearer’s Cha modifier. The Bun-Bun has two charges and resets after being cuddled through a long rest.",
descriptionLong: "The Bun-Bun is a tattered looking stuffed rabbit toy which seems to be forever on the verge of falling to pieces. Chewing on or stroking the Bun-Bun as an Action casts the spell Calm Emotions with a DC of 12 + the bearer’s Cha modifier. The Bun-Bun has two charges and resets after being cuddled through a long rest.",
spellcastingBonus : {
name : "Bun-Bun of Soothing",
spells : ["calm emotions"],
selection : ["calm emotions"],
},
usages : 2,
recovery : "long rest"
}
MagicItemsList["collar of command"] = {
name : "Collar of Command",
source : ["DnDog", 19],
type : "wonderous item",
rarity : "rare",
allowDuplicates : false,
description : "The wearer of this brown leather collar may cast the Command spell once per long rest at 2nd level. The DC for resisting the Command is equal to 10 + the wearer’s Cha modifier.",
descriptionLong: "The wearer of this brown leather collar may cast the Command spell once per long rest at 2nd level. The DC for resisting the Command is equal to 10 + the wearer’s Cha modifier.",
spellcastingBonus : {
name : "Collar of Command",
spells : ["command"],
selection : ["command"],
oncelr : true,
},
usages : 1,
recovery : "long rest"
}
MagicItemsList["pavlov's bell of conditioning"] = {
name : "Pavlov's Bell of Conditioning",
source : ["DnDog", 19],
type : "wonderous item",
rarity : "very rare",
allowDuplicates : false,
description : "The brass bell of the ancient mage Pavol may be rung three times per long rest. Each time it is rung, it casts the Suggestion spell. The DC for the saving throw is 10 + the ringer’s Cha modifier. If the Bell is used on the same target more than once between long rests, the DC increases by 5 each time.",
descriptionLong: "The brass bell of the ancient mage Pavol may be rung three times per long rest. Each time it is rung, it casts the Suggestion spell. The DC for the saving throw is 10 + the ringer’s Cha modifier. If the Bell is used on the same target more than once between long rests, the DC increases by 5 each time.",
spellcastingBonus : {
name : "Pavlov's Bell of Conditioning",
spells : ["suggestion"],
selection : ["suggestion"],
},
usages : 3,
recovery : "long rest"
}
MagicItemsList["tymon’s tugrope of tenacity"] = {
name : "Tymon’s Tugrope of Tenacity",
source : ["DnDog", 19],
type : "wonderous item",
rarity : "uncommon",
allowDuplicates : false,
description : "This 3 foot length of brightly colored knotted rope exhibits the same qualities as an Immovable Rod, except that one end still moves freely and is therefore perfect for solo tug of war games. The rope is activated and deactivated by twisting the brightly colored rubber bead set at its center point.",
descriptionLong: "This 3 foot length of brightly colored knotted rope exhibits the same qualities as an Immovable Rod, except that one end still moves freely and is therefore perfect for solo tug of war games. The rope is activated and deactivated by twisting the brightly colored rubber bead set at its center point.",
action : [["action", " (activate/deactivate)"]]
}
MagicItemsList["snack sack of scoobus"] = {
name : "Snack Sack of Scoobus",
source : ["DnDog", 20],
type : "wonderous item",
rarity : "rare",
allowDuplicates : false,
description : "This bag starts each dawn with 6 treats in it. Eating a treat is a Bonus Action and grants one of the following benefits: Granting advantage or taking the effects of Bless on the next Action, or canceling one Exhaustion Level. Eating five or more snacks in one go will give the eater the effects of a Lesser Restoration.",
descriptionLong: "This bag starts each dawn with 6 small snack treats in it. Eating a treat is a Bonus Action and confers the following benefit, chosen by the creature consuming the snack. Choose between granting advantage on the next Action, taking the effects of Bless on the next Action, or cancelling one Exhaustion Level. Eating five or more snacks in one go will give the eater the effects of a Lesser Restoration.",
usages : 6,
recovery : "dawn",
}
MagicItemsList["eye of wagamoto"] = {
name : "Eye of Wagamoto",
source : ["DnDog", 20],
type : "wonderous item",
rarity : "very rare",
allowDuplicates : false,
attunement : true,
description : "Can see into the Ethereal Plane. Once per Long Rest can activate the eye as a Bonus Action or a Reaction. Bonus Action allows the wearer to retake an Action - the original action is canceled. As a Reaction the bearer can make one target re-roll an Attack or Saving Throw, and the second result stands instead.",
descriptionLong: "This is a glowing yellow stone with a black vertical flaw that resembles a snakelike pupil. The bearer of the Eye, once attuned, can see into the Ethereal Plane. In addition, once per Long Rest the wearer can use the Eye to manipulate time. The Eye may be activated in this manner as a Bonus Action or a Reaction. As a Bonus Action it allows the wearer to retake an Action - the original action is canceled and a new Action occurs in its stead. As a Reaction the bearer can make one target re-roll an Attack or Saving Throw, and the second result stands instead.",
usages : 1,
recovery : "long rest",
action : [["bonus action", " (retake action)"],["reaction", " (reroll)"]]
}
MagicItemsList["festooned flea collar"] = {
name : "Festooned Flea Collar",
source : ["DnDog", 20],
type : "wonderous item",
rarity : "rare",
allowDuplicates : false,
description : "This tatty collar has five charges, which replenish weekly. Each charge allows the wearer to summon a Swarm of Insects under their direct bidding.",
usages : 5,
recovery : "1 week"
}
MagicItemsList["hegglewyddle’s handy helper"] = {
name : "Hegglewyddle’s Handy Helper",
source : ["DnDog", 20],
type : "wonderous item",
rarity : "uncommon",
allowDuplicates : false,
description : "This pendant allows the user to cast Mage Hand with the following changes: it can remain active for as long as the user wishes, being activated and deactivated with a command as a Free Action, and its range is reduced to 5 feet around the user.",
descriptionLong: "Hegglewyddle the Houndwitch, Bull Terrier Arcanist, crafted this easily replicated magical item to aid herself in the daily tasks for which opposable thumbs and a free hand would be useful. This small, nondescript stone is roughly square and has a dog’s paw engraved on one side. It is usually hung from a collar or cord as a pendant. The Helper exhibits the standard properties of Mage Hand with the following changes - it can remain active for as long as the user wishes, being activated and deactivated with a command as a Free Action, and its range is reduced to 5 feet around the user.",
spellcastingBonus : {
name : "Hegglewyddle’s Handy Helper",
spells : ["mage hand"],
selection : ["mage hand"],
},
spellChanges : {
"mage hand" : {
range : "5ft",
duration : "Ongoing (D)",
changes : "Range and Duration"
},
},
}
MagicItemsList["silken mantle of lustrous pelt cloak"] = {
name : "Silken Mantle of Lustrous Pelt Cloak",
source : ["DnDog", 20],
type : "wonderous item",
rarity : "uncommon",
allowDuplicates : false,
description : "This finely made silken mantle hangs from a silver collar. If worn it grants the user the ability to shake as a Bonus Action and be magically cleaned and groomed.",
action : ["bonus action", " (shake)"],
}
MagicItemsList["franzible’s favourite bone"] = {
name : "Franzible’s Favourite Bone",
source : ["DnDog", 20],
type : "wonderous item",
rarity : "rare",
allowDuplicates : false,
attunement : true,
description : "This well-chewed bone belonged to the faithful pet of the great sorcerer Franzible the Fated. Once attuned to this item, the owner will always know where the bone is, sensing instinctively its direction and distance. This effect is constant provided both the Bone and the owner are on the same Plane.",
}
MagicItemsList["groof’s gobblecharm necklace"] = {
name : "Groof’s Gobblecharm Necklace",
source : ["DnDog", 20],
type : "wonderous item",
rarity : "very rare",
allowDuplicates : false,
attunement : true,
description : "May be activated for one minute three times a day. Whilst activated, consumed items are not ingested but instead moved into an extra-dimensional pocket. At will, the wearer may regurgitate an item. The wearer must then pass a DC 12 Con saving throw or suffer one level of Exhaustion for five minutes.",
descriptionLong: "Created by the possibly insane wizard Groof Grimgullet, the Gobblecharm is worn at the neck and may be activated three times a day. Whilst activated, the attuned user has one minute during which anything that they consume is not ingested but instead moved into an extra-dimensional pocket in the same fashion as a Bag of Holding. At will, the wearer may regurgitate anything consumed in this manner. After regurgitating an item, the wearer must pass a DC 12 Con saving throw or suffer one level of Exhaustion for five minutes, and a distinctly queasy feeling.",
usages : 3,
recovery : "long rest"
}
MagicItemsList["earthtouch harness"] = {
name : "Earthtouch Harness",
source : ["DnDog", 21],
type : "wonderous item",
rarity : "rare",
allowDuplicates : false,
description : "This magical harness allows an attuned user to call upon the earth itself for aid. The harness can be activated as a Bonus Action once per long rest. Whilst active, the wearer may not be involuntarily moved by any effects and has a +5 AC bonus whilst stationary.",
usages : 1,
recovery : "long rest",
action : ["bonus action", ""]
}
MagicItemsList["cone of shame"] = {
name : "Cone of Shame",
source : ["DnDog", 21],
type : "wonderous item",
rarity : "rare",
allowDuplicates : false,
attunement : true,
description : "This fine silver necklace grants +2 AC. If the wearer engages in any bad actions, a cone projects from the necklace for 1d4 hours, giving disadvantage on all Perception checks from lack of peripheral vision and all Charisma checks from the sense of shame and guilt.",
descriptionLong: "A fine silver necklace which grants +2 AC. However, if the wearer engages in bad behavior then a loud, booming voice calls out from the aether, ‘BAD DOG! NO!’ and a magical cone of energy projects around the wearer’s head, obscuring their senses. Whilst the cone is projected, the wearer suffers disadvantage on all Perception checks due to the enclosure and disadvantage on all Charisma checks due to the sense of shame and guilt projected by the magical field. The Cone remains in place for 1d4 hours after which a voice can be heard saying ‘LEARNED YOUR LESSON? BE A GOOD DOG!’ and the cone vanishes.",
descriptionFull : "What appears to be a fine silver necklace with magical property to grant additional Armor (+2AC). However, if the wearer engages in any of the following activities:\n\u25C6 Assault of a defenseless victim\n\u25C6 Murder\n\u25C6 Theft\n\u25C6 Willful Destruction of Property\n\u25C6 Outright Lying\n Then a loud, booming voice calls out from the aether, ‘BAD DOG! NO!’ and a magical cone of energy projects around the wearer’s head, obscuring their senses. Whilst the cone is projected, the wearer suffers disadvantage on all Perception checks due to the enclosure and disadvantage on all Charisma checks due to the sense of shame and guilt projected by the magical field. The Cone remains in place for 1d4 hours after which a voice can be heard saying ‘LEARNED YOUR LESSON? BE A GOOD DOG!’ and the cone vanishes.",
extraAC : [{name : "The Cone of Shame", mod : 2, magic : true, text : "I gain a +2 bonus to AC while attuned."}],
}
MagicItemsList["hermal’s halitoid hoop"] = {
name : "Hermal’s Halitoid Hoop",
source : ["DnDog", 21],
type : "wonderous item",
rarity : "uncommon",
allowDuplicates : false,
description : "This hoop can be thrown up to 30 feet as an Action. Once it lands, all creatures in a 15 foot square centered on the hoop must make a DC 12 Con saving throw or suffer the Poisoned condition. The Hoop has 5 charges and can be recharged by being “played with” by a dog at a rate of one charge per day.",
descriptionLong: "A braided woven leather throwing hoop that seems covered in semi dried slobber, the hoop can be thrown up to 30 feet as an Action. Once it lands, all creatures in a 15 foot square centered on the hoop are assailed by the odors of wet dog, poor dental care and bad digestive processes. Affected creatures must make a DC 12 Con saving throw or suffer the Poisoned condition. The Hoop has 5 charges and can be recharged by being “played with” by a dog at a rate of one charge per day.",
usages : 5,
recovery : "1/Play Time"
}
MagicItemsList["silgoon’s sleepytime blanket"] = {
name : "Silgoon’s Sleepytime Blanket",
source : ["DnDog", 21],
type : "wonderous item",
rarity : "rare",
allowDuplicates : false,
description : "This apparently well loved yet still fluffy blanket, when laid out on the floor, grants the benefits of a long rest for up to five creatures after only one hour of gentle snoozing. Once used, the blanket is inactive for one week.",
usages : 1,
recovery : "1 week"
}
MagicItemsList["everwater drinking bowl"] = {
name : "Everwater Drinking Bowl",
source : ["DnDog", 21],
type : "wonderous item",
rarity : "rare",
allowDuplicates : false,
description : "This blue ceramic drinking bowl, when placed on a flat surface, produces enough water to fill to the brim. If the water is drained from the bowl, it will refill again one hour later. The water is always refreshingly cool and clean.",
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment