Commit 457c3607 authored by Joe Ziemba's avatar Joe Ziemba
Browse files

adding feat levels

parent 0371cbbb
This diff is collapsed.
......@@ -47,8 +47,6 @@ export const Modal = ({
{ "md:w-9/12": large, "md:w-6/12": !large }
)
// const
return (
<div className={overlayClasses}>
<FocusTrap>
......@@ -61,6 +59,7 @@ export const Modal = ({
className="py-2 px-8"
onClick={closeModal}
aria-label="Close Modal"
id="close-modal"
>
<i className="fas fa-times"></i>
</button>
......
import React from "react"
const FeatEntry = (props) => {
const FeatEntry = ({ addFeat, feat, deleteFeat }) => {
const add = () => addFeat(feat.type)
const remove = () => {
deleteFeat(feat)
}
const isMisc = feat.type.includes("misc")
return (
<div className="mx-4 mb-2 last:mb-0 border-b border-gray-300 pb-2">
{!props.feat.name ? (
{!feat.name ? (
<button
onClick={props.addFeat}
onClick={add}
className={
"w-full px-4 py-3 rounded-md " +
"bg-gray-200 text-gray-400 " +
......@@ -14,23 +20,20 @@ const FeatEntry = (props) => {
aria-label="Choose Feat"
>
<i className="fas fa-plus text-sm mr-2" />
Choose {props.label} Feat
Choose {!isMisc && "Lv." + feat.level} Feat
</button>
) : (
<div className="grid grid-cols-8 gap 2">
<span className="text-lg col-span-1 text-gray-400 pl-2">
{props.label}
{!isMisc && "Lv." + feat.level}
</span>
<span className="col-span-6">
<p className="text-lg mb-1">{props.feat.name}</p>
<p className="text-lg mb-1">{feat.name}</p>
<p
className="text-sm"
dangerouslySetInnerHTML={{ __html: props.feat.desc }}
/>
<p className="text-sm">{feat.desc}</p>
</span>
<button
onClick={props.removeFeat}
onClick={remove}
className="col-span-1 text-gray-400 hover:text-red-700 rounded-md transition-colors"
aria-label="Remove Feat"
title="Delete"
......
......@@ -4,7 +4,7 @@ import FEATS from "data/feats/allFeats.json"
import { Modal } from "components"
export const FeatSelection = ({
featKey,
featType,
character,
selectFeat,
show,
......@@ -21,7 +21,7 @@ export const FeatSelection = ({
.map((t) => t.toLowerCase())
.includes(trait.toLowerCase())
let isLevel = Number(feat.level) <= Number(level)
let isLevel = +feat.reqLevel <= +level
return hasTrait && isLevel
})
......@@ -67,25 +67,28 @@ export const FeatSelection = ({
useEffect(() => {
let filteredFeats = _.cloneDeep(FEATS)
let [type, level] = featKey.split("_")
let [type] = featType.split("_")
// Filter to correct feat list
filteredFeats = filterFeatsBy(filteredFeats, getFeatTag(type), level)
filteredFeats = filterFeatsBy(
filteredFeats,
getFeatTag(type),
character.level
)
// Additionally filter by query if present
if (query) filteredFeats = filterFeatsByQuery(filteredFeats)
setFeats(
filteredFeats.sort((a, b) =>
Number(a.level) < Number(b.level) ? -1 : 1
)
filteredFeats.sort((a, b) => Number(a.reqLevel) - Number(b.reqLevel))
)
}, [
query,
character.ancestry.name,
character.class.name,
featKey,
featType,
filterFeatsByQuery,
getFeatTag,
character.level,
])
return (
......@@ -117,7 +120,7 @@ export const FeatSelection = ({
<div className="uppercase text-xs mb-2 text-blue-800">
<div className="mr-2 inline-block py-1 px-2 bg-blue-100 rounded-sm">
Level {feat.level}
Level {feat.reqLevel}
</div>
{feat.traits.map((t) => (
<div
......
......@@ -5,29 +5,22 @@ import { Card } from "./Card"
import { SubHeading } from "./SubHeading"
import { PlaceholderText } from "./PlaceholderText"
import { PF2CharacterContext } from "context"
import { Guid } from "js-guid"
export const FeatsSection = () => {
const { character, selectFeat, deleteFeat } = useContext(
PF2CharacterContext
)
const [showFeatSelection, setShowFeatSelection] = useState(false)
const [featKey, setFeatKey] = useState("")
const [numMiscFeats, setNumMiscFeats] = useState(0)
const [featType, setfeatType] = useState("")
useEffect(() => {
let miscFeats = character.feats.filter((feat) =>
feat.type.includes("misc")
)
setNumMiscFeats(miscFeats.length + 1)
}, [character.feats])
const openFeatSelection = (featKey) => {
setFeatKey(featKey)
const openFeatSelection = (featType) => {
setfeatType(featType)
setShowFeatSelection(true)
}
const localSelectFeat = (feat) => {
selectFeat(featKey, feat)
selectFeat(featType, feat)
setShowFeatSelection(false)
}
......@@ -37,11 +30,12 @@ export const FeatsSection = () => {
const classFeats = [],
ancestryFeats = [],
skillFeats = [],
generalFeats = [],
miscFeats = []
character.feats.forEach((feat) => {
let [type, level] = feat.type.split("_")
if (level > character.level) return
if (feat.level > character.level) return
let [type] = feat.type.split("_")
switch (type) {
case "class":
classFeats.push(feat)
......@@ -52,6 +46,9 @@ export const FeatsSection = () => {
case "skill":
skillFeats.push(feat)
break
case "general":
generalFeats.push(feat)
break
default:
miscFeats.push(feat)
break
......@@ -68,94 +65,89 @@ export const FeatsSection = () => {
</span>
</PlaceholderText>
<SubHeading>Ancestry Feats</SubHeading>
<div>
{!hasAncestry ? (
<PlaceholderText>choose an ancestry above</PlaceholderText>
) : (
ancestryFeats.map((feat, i) => {
return (
<FeatEntry
key={i}
label={"Lv" + feat.type.split("_")[1]}
feat={feat}
addFeat={() => openFeatSelection(feat.type)}
removeFeat={() => deleteFeat(feat.type)}
/>
)
})
)}
</div>
<FeatList
addFunc={openFeatSelection}
deleteFeat={deleteFeat}
featKey="ancestry"
featList={ancestryFeats}
title="Ancestry Feats"
noListMessage="choose an ancestry above"
hideListIf={!hasAncestry}
/>
<SubHeading>Class Feats</SubHeading>
<div>
{!hasClass ? (
<PlaceholderText>choose a class above</PlaceholderText>
) : (
classFeats.map((feat, i) => {
return (
<FeatEntry
key={i}
label={"Lv" + feat.type.split("_")[1]}
feat={feat}
addFeat={() => openFeatSelection(feat.type)}
removeFeat={() => deleteFeat(feat.type)}
/>
)
})
)}
</div>
<FeatList
addFunc={openFeatSelection}
deleteFeat={deleteFeat}
featKey="class"
featList={classFeats}
title="Class Feats"
noListMessage="choose a class above"
hideListIf={!hasClass}
/>
<FeatList
addFunc={openFeatSelection}
deleteFeat={deleteFeat}
featKey="skill"
featList={skillFeats}
title="Skill Feats"
noListMessage="skill feats start at level 2"
hideListIf={character.level === 1}
/>
<FeatList
addFunc={openFeatSelection}
deleteFeat={deleteFeat}
featKey="misc"
featList={miscFeats}
title="Other Feats"
/>
<SubHeading>Skill Feats</SubHeading>
<FeatEntry
label=""
feat={{ type: "misc_" + Guid.newGuid() }}
addFeat={openFeatSelection}
/>
<FeatSelection
show={showFeatSelection}
closeFunction={() => setShowFeatSelection(false)}
selectFeat={localSelectFeat}
featType={featType}
character={character}
/>
</Card>
)
}
const FeatList = ({
hideListIf,
noListMessage,
featList,
addFunc,
deleteFeat,
title,
}) => {
return (
<>
<SubHeading>{title}</SubHeading>
<div>
{!hasClass ? (
<PlaceholderText>choose a class above</PlaceholderText>
) : character.level === 1 ? (
<PlaceholderText>skill feats start at level 2</PlaceholderText>
{hideListIf ? (
<PlaceholderText>{noListMessage}</PlaceholderText>
) : (
skillFeats.map((feat, i) => {
featList.map((feat, i) => {
return (
<FeatEntry
key={i}
label={"Lv" + feat.type.split("_")[1]}
label={"Lv" + feat.level}
feat={feat}
addFeat={() => openFeatSelection(feat.type)}
removeFeat={() => deleteFeat(feat.type)}
addFeat={addFunc}
deleteFeat={deleteFeat}
/>
)
})
)}
</div>
<SubHeading className="c-boost-group__heading mt-3">
Other Feats
</SubHeading>
<div>
{miscFeats.map((feat, i) => {
return (
<FeatEntry
key={i}
label=""
feat={feat}
addFeat={() => openFeatSelection(feat.type)}
removeFeat={() => deleteFeat(feat.type)}
/>
)
})}
<FeatEntry
label=""
feat={{}}
addFeat={() => openFeatSelection("misc_" + numMiscFeats)}
/>
</div>
<FeatSelection
show={showFeatSelection}
closeFunction={() => setShowFeatSelection(false)}
selectFeat={localSelectFeat}
featKey={featKey}
character={character}
/>
</Card>
</>
)
}
......@@ -144,7 +144,7 @@ export function calculatePerception(character) {
let prof = 0
if (character.class.perceptionBoosts)
character.class.perceptionBoosts.forEach((boost) => {
let level = boost.type.split("_")[1]
let level = boost.level
if (level <= character.level) prof = boost.proficiency
})
......@@ -255,24 +255,28 @@ export function getBlankCharacter() {
{
ability: Abilities.FREE,
source: "Level_1",
level: 1,
id: "Level1-1",
type: Abilities.FREE,
},
{
ability: Abilities.FREE,
source: "Level_1",
level: 1,
id: "Level1-2",
type: Abilities.FREE,
},
{
ability: Abilities.FREE,
source: "Level_1",
level: 1,
id: "Level1-3",
type: Abilities.FREE,
},
{
ability: Abilities.FREE,
source: "Level_1",
level: 1,
id: "Level1-4",
type: Abilities.FREE,
},
......@@ -375,37 +379,37 @@ export function getBlankCharacter() {
],
skills: _.cloneDeep(Skills),
feats: [
{ type: "ancestry_1" },
{ type: "ancestry_5" },
{ type: "ancestry_9" },
{ type: "ancestry_13" },
{ type: "ancestry_17" },
{ type: "class_1" },
{ type: "class_2" },
{ type: "class_4" },
{ type: "class_6" },
{ type: "class_8" },
{ type: "class_10" },
{ type: "class_12" },
{ type: "class_14" },
{ type: "class_16" },
{ type: "class_18" },
{ type: "class_20" },
{ type: "skill_2" },
{ type: "skill_4" },
{ type: "skill_6" },
{ type: "skill_8" },
{ type: "skill_10" },
{ type: "skill_12" },
{ type: "skill_14" },
{ type: "skill_16" },
{ type: "skill_18" },
{ type: "skill_20" },
{ type: "general_3" },
{ type: "general_7" },
{ type: "general_11" },
{ type: "general_15" },
{ type: "general_19" },
{ type: "ancestry_1", level: 1 },
{ type: "ancestry_5", level: 5 },
{ type: "ancestry_9", level: 9 },
{ type: "ancestry_13", level: 13 },
{ type: "ancestry_17", level: 17 },
{ type: "class_1", level: 1 },
{ type: "class_2", level: 2 },
{ type: "class_4", level: 4 },
{ type: "class_6", level: 6 },
{ type: "class_8", level: 8 },
{ type: "class_10", level: 10 },
{ type: "class_12", level: 12 },
{ type: "class_14", level: 14 },
{ type: "class_16", level: 16 },
{ type: "class_18", level: 18 },
{ type: "class_20", level: 20 },
{ type: "skill_2", level: 2 },
{ type: "skill_4", level: 4 },
{ type: "skill_6", level: 6 },
{ type: "skill_8", level: 8 },
{ type: "skill_10", level: 10 },
{ type: "skill_12", level: 12 },
{ type: "skill_14", level: 14 },
{ type: "skill_16", level: 16 },
{ type: "skill_18", level: 18 },
{ type: "skill_20", level: 20 },
{ type: "general_3", level: 3 },
{ type: "general_7", level: 7 },
{ type: "general_11", level: 11 },
{ type: "general_15", level: 15 },
{ type: "general_19", level: 19 },
],
}
}
......@@ -15,6 +15,7 @@ const hpTests = [
abilityBoosts: [
{
source: "Level_1",
level: 1,
ability: "Constitution",
},
],
......@@ -43,6 +44,7 @@ const hpTests = [
abilityBoosts: [
{
source: "Level_1",
level: 1,
ability: "Constitution",
},
],
......@@ -59,6 +61,7 @@ const hpTests = [
abilityBoosts: [
{
source: "Level_1",
level: 1,
ability: "Constitution",
},
],
......@@ -73,6 +76,7 @@ const hpTests = [
abilityBoosts: [
{
source: "Level_1",
level: 1,
ability: "Constitution",
},
{
......@@ -80,7 +84,8 @@ const hpTests = [
ability: "Constitution",
},
{
source: "Level_5",
source: "Level_1",
level: 1,
ability: "Constitution",
},
],
......@@ -95,6 +100,7 @@ const hpTests = [
abilityBoosts: [
{
source: "Level_1",
level: 1,
ability: "Constitution",
},
{
......@@ -102,7 +108,8 @@ const hpTests = [
ability: "Constitution",
},
{
source: "Level_5",
source: "Level_1",
level: 1,
ability: "Constitution",
},
],
......@@ -117,10 +124,12 @@ const hpTests = [
abilityBoosts: [
{
source: "Level_1",
level: 1,
ability: "Constitution",
},
{
source: "Level_5",
source: "Level_1",
level: 1,
ability: "Constitution",
},
{
......@@ -143,10 +152,12 @@ const hpTests = [
abilityBoosts: [
{
source: "Level_1",
level: 1,
ability: "Constitution",
},
{
source: "Level_5",
source: "Level_1",
level: 1,
ability: "Constitution",
},
{
......@@ -161,6 +172,7 @@ const hpTests = [
abilityFlaws: [
{
source: "Level_1",
level: 1,
ability: "Constitution",
},
],
......@@ -175,10 +187,12 @@ const hpTests = [
abilityBoosts: [
{
source: "Level_1",
level: 1,
ability: "Constitution",
},
{
source: "Level_5",
source: "Level_1",
level: 1,
ability: "Constitution",
},
{
......@@ -285,7 +299,7 @@ describe("calculatePerception", () => {
level: 1,
class: {
perceptionBoosts: [
{ type: "ANY_1", proficiency: 2 },
{ type: "ANY_1", level: 1, proficiency: 2 },
{ type: "ANY_4", proficiency: 4 },
{ type: "ANY_6", proficiency: 6 },
{ type: "ANOTHER_6", proficiency: 10 },
......
......@@ -15,11 +15,13 @@ export const Alchemist = {
source: nameOfClass,
proficiency: Proficiencies.TRAINED,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_9",
level: 9,
},
],
saveBoosts: [
......@@ -28,6 +30,7 @@ export const Alchemist = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -35,6 +38,7 @@ export const Alchemist = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -42,6 +46,7 @@ export const Alchemist = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -49,6 +54,7 @@ export const Alchemist = {
source: nameOfClass,
id: nameOfClass + "4",
type: nameOfClass + "_7",
level: 7,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -56,6 +62,7 @@ export const Alchemist = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_11",
level: 11,
proficiency: Proficiencies.MASTER,
},
{
......@@ -63,6 +70,7 @@ export const Alchemist = {
source: nameOfClass,
id: nameOfClass + "6",
type: nameOfClass + "_15",
level: 15,
proficiency: Proficiencies.MASTER,
},
],
......
......@@ -16,11 +16,13 @@ export const Barbarian = {
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.MASTER,
type: nameOfClass + "_17",
level: 17,
},
],
......
......@@ -15,11 +15,13 @@ export const Bard = {
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.MASTER,
type: nameOfClass + "_11",
level: 11,
},
],
saveBoosts: [
......@@ -28,6 +30,7 @@ export const Bard = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -35,6 +38,7 @@ export const Bard = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -42,6 +46,7 @@ export const Bard = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -49,6 +54,7 @@ export const Bard = {
source: nameOfClass,
id: nameOfClass + "4",
type: nameOfClass + "_3",
level: 3,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -56,6 +62,7 @@ export const Bard = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_9",
level: 9,
proficiency: Proficiencies.MASTER,
},
{
......@@ -63,6 +70,7 @@ export const Bard = {
source: nameOfClass,
id: nameOfClass + "6",
type: nameOfClass + "_9",
level: 9,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -70,6 +78,7 @@ export const Bard = {
source: nameOfClass,
id: nameOfClass + "7",
type: nameOfClass + "_17",
level: 17,
proficiency: Proficiencies.LEGEND,
},
],
......
......@@ -28,11 +28,13 @@ export const Champion = {
source: nameOfClass,
proficiency: Proficiencies.TRAINED,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_11",
level: 11,
},
],
hp: 10,
......@@ -42,6 +44,7 @@ export const Champion = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -49,6 +52,7 @@ export const Champion = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -56,6 +60,7 @@ export const Champion = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -63,6 +68,7 @@ export const Champion = {
source: nameOfClass,
id: nameOfClass + "4",
type: nameOfClass + "_9",
level: 9,
proficiency: Proficiencies.MASTER,
},
{
......@@ -70,6 +76,7 @@ export const Champion = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_9",
level: 9,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -77,6 +84,7 @@ export const Champion = {
source: nameOfClass,
id: nameOfClass + "6",
type: nameOfClass + "_11",
level: 11,
proficiency: Proficiencies.MASTER,
},
],
......
......@@ -14,11 +14,13 @@ export const Cleric = {
source: nameOfClass,
proficiency: Proficiencies.TRAINED,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_5",
type: nameOfClass + "_1",
level: 1,
},
],
hp: 8,
......@@ -28,6 +30,7 @@ export const Cleric = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -35,6 +38,7 @@ export const Cleric = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -42,6 +46,7 @@ export const Cleric = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -49,6 +54,7 @@ export const Cleric = {
source: nameOfClass,
id: nameOfClass + "4",
type: nameOfClass + "_9",
level: 9,
proficiency: Proficiencies.MASTER,
},
{
......@@ -56,6 +62,7 @@ export const Cleric = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_11",
level: 11,
proficiency: Proficiencies.EXPERT,
},
],
......
......@@ -22,11 +22,13 @@ export const Druid = {
source: nameOfClass,
proficiency: Proficiencies.TRAINED,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_3",
level: 3,
},
],
......@@ -36,6 +38,7 @@ export const Druid = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -43,6 +46,7 @@ export const Druid = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -50,6 +54,7 @@ export const Druid = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -57,6 +62,7 @@ export const Druid = {
source: nameOfClass,
id: nameOfClass + "4",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -64,6 +70,7 @@ export const Druid = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_3",
level: 3,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -71,6 +78,7 @@ export const Druid = {
source: nameOfClass,
id: nameOfClass + "6",
type: nameOfClass + "_5",
level: 5,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -78,6 +86,7 @@ export const Druid = {
source: nameOfClass,
id: nameOfClass + "7",
type: nameOfClass + "_11",
level: 11,
proficiency: Proficiencies.MASTER,
},
],
......
......@@ -29,11 +29,13 @@ export const Fighter = {
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.MASTER,
type: nameOfClass + "_7",
level: 7,
},
],
......@@ -43,6 +45,7 @@ export const Fighter = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -50,6 +53,7 @@ export const Fighter = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -57,6 +61,7 @@ export const Fighter = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -64,6 +69,7 @@ export const Fighter = {
source: nameOfClass,
id: nameOfClass + "4",
type: nameOfClass + "_3",
level: 3,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -71,6 +77,7 @@ export const Fighter = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_9",
level: 9,
proficiency: Proficiencies.MASTER,
},
{
......@@ -78,6 +85,7 @@ export const Fighter = {
source: nameOfClass,
id: nameOfClass + "6",
type: nameOfClass + "_15",
level: 15,
proficiency: Proficiencies.MASTER,
},
],
......
......@@ -21,16 +21,19 @@ export const Investigator = {
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.MASTER,
type: nameOfClass + "_7",
level: 7,
},
{
source: nameOfClass,
proficiency: Proficiencies.LEGEND,
type: nameOfClass + "_13",
level: 13,
},
],
......@@ -40,6 +43,7 @@ export const Investigator = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -47,6 +51,7 @@ export const Investigator = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -54,6 +59,7 @@ export const Investigator = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -61,6 +67,7 @@ export const Investigator = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_9",
level: 9,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -68,6 +75,7 @@ export const Investigator = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_11",
level: 11,
proficiency: Proficiencies.MASTER,
},
{
......@@ -75,6 +83,7 @@ export const Investigator = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_15",
level: 15,
proficiency: Proficiencies.MASTER,
},
{
......@@ -82,6 +91,7 @@ export const Investigator = {
source: nameOfClass,
id: nameOfClass + "6",
type: nameOfClass + "_17",
level: 17,
proficiency: Proficiencies.MASTER,
},
],
......
......@@ -28,11 +28,13 @@ export const Monk = {
source: nameOfClass,
proficiency: Proficiencies.TRAINED,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_5",
level: 5,
},
],
......@@ -42,6 +44,7 @@ export const Monk = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -49,6 +52,7 @@ export const Monk = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -56,6 +60,7 @@ export const Monk = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
],
......
......@@ -15,11 +15,13 @@ export const Oracle = {
source: nameOfClass,
proficiency: Proficiencies.TRAINED,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_11",
level: 11,
},
],
saveBoosts: [
......@@ -28,6 +30,7 @@ export const Oracle = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -35,6 +38,7 @@ export const Oracle = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -42,6 +46,7 @@ export const Oracle = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -49,6 +54,7 @@ export const Oracle = {
source: nameOfClass,
id: nameOfClass + "4",
type: nameOfClass + "_7",
level: 7,
proficiency: Proficiencies.MASTER,
},
{
......@@ -56,6 +62,7 @@ export const Oracle = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_9",
level: 9,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -63,6 +70,7 @@ export const Oracle = {
source: nameOfClass,
id: nameOfClass + "6",
type: nameOfClass + "_13",
level: 13,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -70,6 +78,7 @@ export const Oracle = {
source: nameOfClass,
id: nameOfClass + "7",
type: nameOfClass + "_17",
level: 17,
proficiency: Proficiencies.LEGEND,
},
],
......
......@@ -15,16 +15,19 @@ export const Ranger = {
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.MASTER,
type: nameOfClass + "_7",
level: 7,
},
{
source: nameOfClass,
proficiency: Proficiencies.LEGEND,
type: nameOfClass + "_15",
level: 15,
},
],
saveBoosts: [
......@@ -33,6 +36,7 @@ export const Ranger = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -40,6 +44,7 @@ export const Ranger = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -47,6 +52,7 @@ export const Ranger = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -54,6 +60,7 @@ export const Ranger = {
source: nameOfClass,
id: nameOfClass + "4",
type: nameOfClass + "_3",
level: 3,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -61,6 +68,7 @@ export const Ranger = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_7",
level: 7,
proficiency: Proficiencies.MASTER,
},
{
......@@ -68,6 +76,7 @@ export const Ranger = {
source: nameOfClass,
id: nameOfClass + "6",
type: nameOfClass + "_11",
level: 11,
proficiency: Proficiencies.MASTER,
},
],
......
......@@ -23,16 +23,19 @@ export const Rogue = {
source: nameOfClass,
proficiency: Proficiencies.EXPERT,
type: nameOfClass + "_1",
level: 1,
},
{
source: nameOfClass,
proficiency: Proficiencies.MASTER,
type: nameOfClass + "_7",
level: 7,
},
{
source: nameOfClass,
proficiency: Proficiencies.LEGEND,
type: nameOfClass + "_13",
level: 13,
},
],
saveBoosts: [
......@@ -41,6 +44,7 @@ export const Rogue = {
source: nameOfClass,
id: nameOfClass + "1",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.TRAINED,
},
{
......@@ -48,6 +52,7 @@ export const Rogue = {
source: nameOfClass,
id: nameOfClass + "2",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -55,6 +60,7 @@ export const Rogue = {
source: nameOfClass,
id: nameOfClass + "3",
type: nameOfClass + "_1",
level: 1,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -62,6 +68,7 @@ export const Rogue = {
source: nameOfClass,
id: nameOfClass + "4",
type: nameOfClass + "_7",
level: 7,
proficiency: Proficiencies.MASTER,
},
{
......@@ -69,6 +76,7 @@ export const Rogue = {
source: nameOfClass,
id: nameOfClass + "5",
type: nameOfClass + "_9",
level: 9,
proficiency: Proficiencies.EXPERT,
},
{
......@@ -76,6 +84,7 @@ export const Rogue = {
source: nameOfClass,
id: nameOfClass + "6",
type: nameOfClass + "_13",
level: 13,
proficiency: Proficiencies.LEGEND,
},
{
......@@ -83,6 +92,7 @@ export const Rogue = {
source: nameOfClass,
id: nameOfClass + "7",
type: nameOfClass + "_17",
level: 17,
proficiency: Proficiencies.MASTER,
},
],
......@@ -182,13 +192,13 @@ export const Rogue = {
feats: [
{ type: "skill_1" },
{ type: "skill_3" },
{ type: "skill_5" },
{ type: "skill_7" },
{ type: "skill_9" },
{ type: "skill_11" },
{ type: "skill_13" },
{ type: "skill_15" },
{ type: "skill_17" },
{ type: "skill_19" },
{ type: "skill_5", level: 5 },
{ type: "skill_7", level: 7 },
{ type: "skill_9", level: 9 },
{ type: "skill_11", level: 11 },
{ type: "skill_13", level: 13 },
{ type: "skill_15", level: 15 },
{ type: "skill_17", level: 17 },
{ type: "skill_19", level: 19 },
],
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment