Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var iFileName = "Magus [Paladin Variant].js";
- RequiredSheetVersion("13.0.6");
- SourceList["AA:SM"] = {
- name : "Magus",
- abbreviation : "AA:SM",
- group : "Magus",
- url : "https://www.dmsguild.com/product/194217/Battlemage-Class",
- date : "2019/06/17"
- };
- ClassList.wizard.regExpSearch = /wizard/i;
- //first make the sheet know which spells are magus spells
- [//level 1
- "absorb elements","bane","command","compelled duel","comprehend languages","disguise self","dissonant whispers","faerie fire","find familiar","ice knife","mage armor","protection from evil and good","searing smite","shield","thunderous smite","wrathful smite",
- //level 2
- "blindness/deafness","branding smite","darkness","find steed","mind spike","mirror image","phantasmal force","silence","tasha's mind whip","warding bond","zone of truth",
- //level 3
- "blinding smite","counterspell","daylight","dispel magic","feign death","hunger of hadar","major image","sleet storm","slow","speak with dead","spirit shroud",
- //level 4
- "dimension door","find greater steed","greater invisibility","locate creature","phantasmal killer","raulothim's psychic lance","staggering smite",
- //level 5
- "animate objects", "cloudkill", "cone of cold", "far step", "immolation", "skill empowerment", "steel wind strike", "telekinesis", "teleportation circle"
- ].forEach(function (magusSpells) {
- if (SpellsList[magusSpells]) SpellsList[magusSpells].classes.push("magus");
- });
- ClassList["magus"] = {
- regExpSearch : /^((?=.*magus)|((?=.*(exalted|sacred|holy|divine))(?=.*(knight|fighter|warrior|warlord|trooper)))).*$/i,
- name : "Magus",
- source : [["SRD", 30], ["P", 82]],
- primaryAbility : "Strength and Intelligence",
- abilitySave : 6,
- prereqs : "Strength 13 and Intelligence 13",
- improvements : [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5],
- die : 10,
- saves : ["Wis", "Int"],
- skillstxt : {
- primary : "Choose two from Athletics, Insight, Intimidation, Medicine, Persuasion, and Religion"
- },
- armorProfs : {
- primary : [true, true, true, true],
- secondary : [true, true, false, true]
- },
- weaponProfs : {
- primary : [true, true],
- secondary : [true, true]
- },
- equipment : "Magus starting equipment:" +
- "\n \u2022 A martial weapon and a shield -or- two martial weapons;" +
- "\n \u2022 Five javelins -or- any simple melee weapon;" +
- "\n \u2022 A priest's pack -or- an explorer's pack;" +
- "\n \u2022 Chain mail and a holy symbol." +
- "\n\nAlternatively, choose 5d4 \xD7 10 gp worth of starting equipment instead of both the class' and the background's starting equipment.",
- subclasses : ["Sacred Oath", []],
- attacks : [1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
- abilitySave : 4,
- spellcastingFactor : 2,
- spellcastingKnown : {
- spells : "list",
- prepared : true
- },
- features : {
- "arcane sight" : {
- name : "Arcane Sight",
- source : [["SRD", 30], ["P", 84]],
- minlevel : 1,
- description : desc([
- "I can cast detect magic as a ritual. Additionally, as an action, I can touch a creature",
- "or object and cast identify without requiring any components. I can cast it this way a",
- "number of times equal to my Int mod. When I finish a long rest, I regain all expended uses"
- ]),
- usages : "Intelligence modifier per ",
- usagescalc : "event.value = What('Int Mod');",
- recovery : "long rest",
- spellcastingBonus : [{
- name : "Detect Magic",
- spells : ["detect magic"],
- selection : ["detect magic"],
- firstCol : "(R)"
- }, {
- name : "Identify",
- spells : ["identify"],
- selection : ["identify"]
- }],
- spellChanges : {
- "detect magic" : {
- time : "10 min",
- changes : "I can cast this spell only as a ritual."
- },
- "identify" : {
- time : "10 min",
- changes : "I don't require spell slots or material components to cast this."
- }
- },
- action : ["action", ""]
- },
- "touch of magic" : {
- name : "Touch of Magic",
- source : [["SRD", 31], ["P", 84]],
- minlevel : 1,
- description : desc([
- "As an action, I can touch a creature and spend up to my Int mod. They gain 5 temp hp per use.",
- "At any point, they can give up remaining temp hp to get a bonus to an attack, check, or save",
- "equal to the uses spent."
- ]),
- usages : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
- recovery : "long rest",
- action : ["action", ""]
- },
- "fighting style" : {
- name : "Fighting Style",
- source : [["SRD", 31], ["P", 84]],
- minlevel : 2,
- description : desc('Choose a Fighting Style for the Magus using the "Choose Feature" button above'),
- choices : ["Defense", "Dueling", "Great Weapon Fighting", "Protection"],
- "defense" : FightingStyles.defense,
- "dueling" : FightingStyles.dueling,
- "great weapon fighting" : FightingStyles.great_weapon,
- "protection" : FightingStyles.protection
- },
- "spellcasting" : {
- name : "Spellcasting",
- source : [["SRD", 31], ["P", 84]],
- minlevel : 2,
- description : desc([
- "I can cast prepared Magus spells, using Intelligence as my spellcasting ability",
- "I can use an arcane focus as a spellcasting focus for my Magus spells"
- ])
- },
- "elemental smite" : {
- name : "Elemental Smite",
- source : [["SRD", 31], ["P", 85]],
- minlevel : 2,
- description : desc([
- "When I hit a melee weapon attack, I can expend a spell slot to do +2d8 radiant damage",
- "This damage must be of a type dealt by a leveled Magus spell I have prepared"
- ])
- },
- "subclassfeature3.0-channel arcana" : {
- name : "Channel Arcana",
- source : [["SRD", 32], ["P", 85]],
- minlevel : 3,
- description : "",
- usages : 1,
- recovery : "short rest"
- },
- "subclassfeature3" : {
- name : "Sacred Oath",
- source : [["SRD", 32], ["P", 85]],
- minlevel : 3,
- description : desc('Choose a Sacred Oath you swear to and put it in the "Class" field ')
- },
- "knowledge arcana" : {
- name : "Knowledge Arcana",
- source : [["SRD", 32], ["P", 85]],
- minlevel : 3,
- description : desc("I have advantage on Arcana checks to reveal info about something I see.")
- },
- "aura of protection" : {
- name : "Aura of Protection",
- source : [["SRD", 32], ["P", 85]],
- minlevel : 6,
- description : desc("While I'm conscious, allies within range and I can add my Int mod (min 1) to saves"),
- additional : ["", "", "", "", "", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "30-foot aura", "30-foot aura", "30-foot aura"],
- addMod : { type : "save", field : "all", mod : "max(Int|1)", text : "While I'm conscious I can add my Int modifier (min 1) to all my saving throws." }
- },
- "aura of courage" : {
- name : "Aura of Courage",
- source : [["SRD", 32], ["P", 85]],
- minlevel : 10,
- description : desc("While I'm conscious, allies within range and I can't be frightened"),
- additional : ["", "", "", "", "", "", "", "", "", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "10-foot aura", "30-foot aura", "30-foot aura", "30-foot aura"],
- savetxt : { immune : ["frightened"] }
- },
- "improved arcane smite" : {
- name : "Improved Arcane Smite",
- source : [["SRD", 32], ["P", 85]],
- minlevel : 11,
- description : desc(["Whenever I hit a creature with a melee weapon, I do an extra 1d8 damage",
- "This damage must be of a type dealt by a leveled Magus spell I have prepared"]),
- calcChanges : {
- atkAdd : [
- function (fields, v) {
- if (v.isMeleeWeapon) fields.Description += (fields.Description ? '; ' : '') + '+1d8 damage';
- },
- "With my melee weapon attacks I deal an extra 1d8 damage."
- ]
- }
- },
- "cleansing touch" : {
- name : "Cleansing Touch",
- source : [["SRD", 32], ["P", 85]],
- minlevel : 14,
- description : desc("As an action, I can end one spell on me or another willing creature by touch"),
- usages : "Intelligence modifier per ",
- usagescalc : "event.value = Math.max(1, What('Int Mod'));",
- recovery : "long rest",
- action : ["action", ""]
- }
- }
- };
- AddSubClass("magus", "oath of conquest", {
- regExpSearch : /^((?=.*(knight tyrant|iron mongers))|((?=.*(conquest|tyranny|tyrant))(((?=.*Magus)|((?=.*(exalted|sacred|holy|divine))(?=.*(knight|fighter|warrior|warlord|trooper))))))).*$/i,
- subname : "Oath of Conquest",
- source : [["X", 37]],
- features : {
- "subclassfeature3" : {
- name : "Form of Dread",
- source : [["VRGtR", 30]],
- minlevel : 3,
- description : desc([
- "As a bonus action, I can transform for 1 minute and gain the following benefits:",
- " \u2022 Once per turns when I hit an attack, I can force the target to make a Wis save",
- " If the target fails this save, it is frightened of me until the end of my next turn"
- ]),
- action : [["bonus action", ""]],
- spellcastingExtra : ["armor of agathys", "command", "hold person", "spiritual weapon", "bestow curse", "fear", "dominate beast", "stoneskin", "cloudkill", "dominate person"]
- },
- "subclassfeature3.1" : {
- name : "Channel Divinity: Guided Strike",
- source : [["X", 38]],
- minlevel : 3,
- description : "\n " + "When I make an attack roll, I can add a +10 bonus to the roll after seeing the d20 roll"
- },
- "subclassfeature7" : {
- name : "Aura of Conquest",
- source : [["X", 38]],
- minlevel : 7,
- description : desc([
- "Creatures that are frightened of me have their speed reduced to 0 while in my aura",
- "They also take psychic damage whenever they start theirs turn within my aura"
- ]),
- additional : levels.map(function (n) {
- if (n < 7) return "";
- return (n < 18 ? 10 : 30) + "-foot aura; " + Math.floor(n / 2) + " psychic damage";
- })
- },
- "subclassfeature15" : {
- name : "Scornful Rebuke",
- source : [["X", 38]],
- minlevel : 15,
- description : desc([
- "Whenever I'm hit with an attack while I'm not incapacitated, the attacker takes damage",
- "This is psychic damage equal to my Intelligence modifier (minimum of 1)"
- ])
- },
- "subclassfeature20" : {
- name : "Invincible Conqueror",
- source : [["X", 38]],
- minlevel : 20,
- description : desc([
- "As an action, I can gain the following benefits for 1 minute:",
- " - I have resistance to all damage",
- " - I can make an additional attack as part of my Attack action",
- " - My melee weapons score critical hits on a roll of 19 or 20"
- ]),
- recovery : "long rest",
- usages : 1,
- action : ["action", ""]
- }
- }
- });
- AddFightingStyle(["magus"], "Arcane Warrior", {
- name : "Arcane Warrior Fighting Style",
- source : [["T", 52], ["UA:CFV", 6]],
- description : desc([
- "I learn two wizard cantrips that count as magus spells for me and use Int for spellcasting",
- "Whenever I gain a magus level, I can swap one of these for another wizard cantrip"
- ]),
- spellcastingBonus : {
- name : "Arcane Warrior",
- "class" : "wizard",
- level : [0, 0],
- times : 2
- }
- });
- AddFightingStyle(["magus"], "Blind Fighting", {
- name : "Blind Fighting Style",
- source : [["T", 41]],
- description : desc([
- "I have blindsight with 10 ft range, allowing me to see anything not behind total cover",
- "In range, I can see invisible, but not hidden, things, even when blinded or in darkness"
- ]),
- vision : [["Blindsight", 10]]
- });
- AddFightingStyle(["magus"], "Interception", {
- name : "Interception Fighting Style",
- source : [["T", 41], ["UA:CFV", 12]],
- description : desc([
- "As a reaction when a creature I can see hits another within 5 ft of me, I can intercept",
- "I reduce the damage the target takes by 1d10 + my Proficiency Bonus (min 0 damage)",
- "I can't be the target and it requires me wielding a shield or a simple or martial weapon"
- ]),
- action : [["reaction", ""]]
- });
- AddFeatureChoice(ClassList.magus.features["subclassfeature3.0-channel arcana"], true, "Harness Arcane Power", {
- name : "Channel Arcana: Harness Arcane Power",
- extraname : "Optional Magus 3",
- source : [["T", 52]],
- description : desc([
- "As a bonus action, I can expend a use of my channel arcana to regain one used spell slot",
- "The level of this spell slot can be no more than half my Proficiency Bonus (rounded up)",
- "I can only do this so many times per long rest, even if I have uses of channel divinity left"
- ]),
- action : [["bonus action", ""]],
- usages : levels.map(function(n) {
- return n < 3 ? "" : n < 7 ? 1 : n < 15 ? 2 : 3;
- }),
- recovery : "long rest"
- }, "Optional 3rd-level magus features");
Add Comment
Please, Sign In to add comment