diff --git a/app/imports/api/library/librarySchemas.js b/app/imports/api/library/librarySchemas.js index 86b289e4..60059bb2 100644 --- a/app/imports/api/library/librarySchemas.js +++ b/app/imports/api/library/librarySchemas.js @@ -18,7 +18,6 @@ import { SpellSchema } from '/imports/api/properties/Spells.js'; import { ContainerSchema } from '/imports/api/properties/Containers.js'; import { ItemSchema } from '/imports/api/properties/Items.js'; - const librarySchemas = { action: ActionSchema, attribute: AttributeSchema, diff --git a/app/imports/api/properties/Actions.js b/app/imports/api/properties/Actions.js index b4e21efe..2a960776 100644 --- a/app/imports/api/properties/Actions.js +++ b/app/imports/api/properties/Actions.js @@ -1,6 +1,6 @@ import SimpleSchema from 'simpl-schema'; import AdjustmentSchema from '/imports/api/creature/subSchemas/AdjustmentSchema.js'; -import StoredBuffSchema from '/imports/api/properties/Buffs.js'; +import { StoredBuffWithIdSchema } from '/imports/api/properties/Buffs.js'; /* * Actions are things a character can do @@ -58,7 +58,7 @@ let ActionSchema = new SimpleSchema({ defaultValue: [], }, 'buffs.$': { - type: StoredBuffSchema, + type: StoredBuffWithIdSchema, }, // Calculation of how many times this action can be used // Only set if this action tracks its own uses, rather than adjusting diff --git a/app/imports/api/properties/Buffs.js b/app/imports/api/properties/Buffs.js index d0557e13..31935fd0 100644 --- a/app/imports/api/properties/Buffs.js +++ b/app/imports/api/properties/Buffs.js @@ -2,10 +2,6 @@ import SimpleSchema from 'simpl-schema'; import { EffectSchema } from '/imports/api/properties/Effects.js'; let BuffSchema = new SimpleSchema({ - _id: { - type: String, - regEx: SimpleSchema.RegEx.Id, - }, name: { type: String, optional: true, @@ -42,6 +38,13 @@ let StoredBuffSchema = new SimpleSchema({ }, }).extend(BuffSchema); +let StoredBuffWithIdSchema = new SimpleSchema({ + _id: { + type: String, + regEx: SimpleSchema.RegEx.Id, + }, +}).extend(StoredBuffSchema); + let AppliedBuffSchema = new SimpleSchema({ durationSpent: { type: Number, @@ -63,4 +66,4 @@ let AppliedBuffSchema = new SimpleSchema({ }, }).extend(BuffSchema); -export { AppliedBuffSchema, StoredBuffSchema }; +export { AppliedBuffSchema, StoredBuffSchema, StoredBuffWithIdSchema }; diff --git a/app/imports/api/properties/Features.js b/app/imports/api/properties/Features.js index a717c858..6b8c94ac 100644 --- a/app/imports/api/properties/Features.js +++ b/app/imports/api/properties/Features.js @@ -4,10 +4,6 @@ let FeatureSchema = new SimpleSchema({ name: { type: String, }, - enabled: { - type: Boolean, - defaultValue: true, - }, description: { type: String, optional: true, diff --git a/app/imports/api/properties/Rolls.js b/app/imports/api/properties/Rolls.js index b919c508..111e7132 100644 --- a/app/imports/api/properties/Rolls.js +++ b/app/imports/api/properties/Rolls.js @@ -1,6 +1,6 @@ import SimpleSchema from 'simpl-schema'; import AdjustmentSchema from '/imports/api/creature/subSchemas/AdjustmentSchema.js'; -import StoredBuffSchema from '/imports/api/properties/Buffs.js'; +import { StoredBuffWithIdSchema } from '/imports/api/properties/Buffs.js'; let RollChildrenSchema = new SimpleSchema({ // The adjustments to be applied @@ -17,7 +17,7 @@ let RollChildrenSchema = new SimpleSchema({ defaultValue: [], }, 'buffs.$': { - type: StoredBuffSchema, + type: StoredBuffWithIdSchema, }, }); diff --git a/app/imports/ui/properties/viewers/AttributeViewer.vue b/app/imports/ui/properties/viewers/AttributeViewer.vue index 249533fe..d5d50493 100644 --- a/app/imports/ui/properties/viewers/AttributeViewer.vue +++ b/app/imports/ui/properties/viewers/AttributeViewer.vue @@ -40,8 +40,10 @@ EffectViewer, }, props: { - model: Object, - required: true, + model: { + type: Object, + required: true, + }, }, methods: { numberToSignedString, diff --git a/app/imports/ui/properties/viewers/BuffViewer.vue b/app/imports/ui/properties/viewers/BuffViewer.vue new file mode 100644 index 00000000..e5e201ac --- /dev/null +++ b/app/imports/ui/properties/viewers/BuffViewer.vue @@ -0,0 +1,76 @@ + + + + + {{model.value - model.damage}} / {{model.value}} + + + {{model.value}} + + + + {{model.name}} + + + + {{model.duration}} + + + {{model.description}} + + + + + + + diff --git a/app/imports/ui/properties/viewers/ClassLevelViewer.vue b/app/imports/ui/properties/viewers/ClassLevelViewer.vue new file mode 100644 index 00000000..d293acd4 --- /dev/null +++ b/app/imports/ui/properties/viewers/ClassLevelViewer.vue @@ -0,0 +1,33 @@ + + + + {{model.name}} + + {{model.level}} + + + + {{model.variableName}} + + + Base class: {{model.baseClass}} + + + + + + + diff --git a/app/imports/ui/properties/viewers/ContainerViewer.vue b/app/imports/ui/properties/viewers/ContainerViewer.vue new file mode 100644 index 00000000..38e40f18 --- /dev/null +++ b/app/imports/ui/properties/viewers/ContainerViewer.vue @@ -0,0 +1,36 @@ + + + + {{model.name}} + + + Not carried + + + Contents are weightless + + + Weight: {{model.weight}} lbs + + + Value: {{model.value}} gp + + + {{model.description}} + + + + + + + diff --git a/app/imports/ui/properties/viewers/DamageMultiplierViewer.vue b/app/imports/ui/properties/viewers/DamageMultiplierViewer.vue new file mode 100644 index 00000000..34b5b9bd --- /dev/null +++ b/app/imports/ui/properties/viewers/DamageMultiplierViewer.vue @@ -0,0 +1,33 @@ + + + + {{model.name}} + + + {{model.damageType}} {{operation}} + + + + + + + diff --git a/app/imports/ui/properties/viewers/ExperienceViewer.vue b/app/imports/ui/properties/viewers/ExperienceViewer.vue new file mode 100644 index 00000000..f14977d2 --- /dev/null +++ b/app/imports/ui/properties/viewers/ExperienceViewer.vue @@ -0,0 +1,36 @@ + + + + {{model.value}} XP + + + + {{model.name}} + + + + {{model.worldDate}} + + + + {{model.date}} + + + {{model.description}} + + + + + + + diff --git a/app/imports/ui/properties/viewers/FeatureViewer.vue b/app/imports/ui/properties/viewers/FeatureViewer.vue new file mode 100644 index 00000000..cb15ad4e --- /dev/null +++ b/app/imports/ui/properties/viewers/FeatureViewer.vue @@ -0,0 +1,27 @@ + + + + {{model.name}} + + + Always enabled + + + {{model.description}} + + + + + + + diff --git a/app/imports/ui/properties/viewers/FolderViewer.vue b/app/imports/ui/properties/viewers/FolderViewer.vue new file mode 100644 index 00000000..71c70511 --- /dev/null +++ b/app/imports/ui/properties/viewers/FolderViewer.vue @@ -0,0 +1,21 @@ + + + + {{model.name}} + + + + + + + diff --git a/app/imports/ui/properties/viewers/NoteViewer.vue b/app/imports/ui/properties/viewers/NoteViewer.vue new file mode 100644 index 00000000..c3905394 --- /dev/null +++ b/app/imports/ui/properties/viewers/NoteViewer.vue @@ -0,0 +1,24 @@ + + + + {{model.name}} + + + {{model.description}} + + + + + + + diff --git a/app/imports/ui/properties/viewers/shared/propertyViewerIndex.js b/app/imports/ui/properties/viewers/shared/propertyViewerIndex.js index 686e8737..394043f0 100644 --- a/app/imports/ui/properties/viewers/shared/propertyViewerIndex.js +++ b/app/imports/ui/properties/viewers/shared/propertyViewerIndex.js @@ -1,15 +1,15 @@ //import ActionViewer from '/imports/ui/properties/viewers/ActionViewer.vue'; import AttributeViewer from '/imports/ui/properties/viewers/AttributeViewer.vue'; -//import BuffViewer from '/imports/ui/properties/viewers/BuffViewer.vue'; -//import ContainerViewer from '/imports/ui/properties/viewers/ContainerViewer.vue'; -//import ClassLevelViewer from '/imports/ui/properties/viewers/ClassLevelViewer.vue'; -//import DamageMultiplierViewer from '/imports/ui/properties/viewers/DamageMultiplierViewer.vue'; -//import EffectViewer from '/imports/ui/properties/viewers/EffectViewer.vue'; -//import ExperienceViewer from '/imports/ui/properties/viewers/ExperienceViewer.vue'; -//import FeatureViewer from '/imports/ui/properties/viewers/FeatureViewer.vue'; -//import FolderViewer from '/imports/ui/properties/viewers/FolderViewer.vue'; +import BuffViewer from '/imports/ui/properties/viewers/BuffViewer.vue'; +import ContainerViewer from '/imports/ui/properties/viewers/ContainerViewer.vue'; +import ClassLevelViewer from '/imports/ui/properties/viewers/ClassLevelViewer.vue'; +import DamageMultiplierViewer from '/imports/ui/properties/viewers/DamageMultiplierViewer.vue'; +import EffectViewer from '/imports/ui/properties/viewers/EffectViewer.vue'; +import ExperienceViewer from '/imports/ui/properties/viewers/ExperienceViewer.vue'; +import FeatureViewer from '/imports/ui/properties/viewers/FeatureViewer.vue'; +import FolderViewer from '/imports/ui/properties/viewers/FolderViewer.vue'; //import ItemViewer from '/imports/ui/properties/viewers/ItemViewer.vue'; -//import NoteViewer from '/imports/ui/properties/viewers/NoteViewer.vue'; +import NoteViewer from '/imports/ui/properties/viewers/NoteViewer.vue'; //import ProficiencyViewer from '/imports/ui/properties/viewers/ProficiencyViewer.vue'; //import RollViewer from '/imports/ui/properties/viewers/RollViewer.vue'; //import SkillViewer from '/imports/ui/properties/viewers/SkillViewer.vue'; @@ -19,16 +19,16 @@ import AttributeViewer from '/imports/ui/properties/viewers/AttributeViewer.vue' export default { // action: ActionViewer, attribute: AttributeViewer, -// buff: BuffViewer, -// container: ContainerViewer, -// classLevel: ClassLevelViewer, -// damageMultiplier: DamageMultiplierViewer, -// experience:ExperienceViewer, -// effect: EffectViewer, -// feature: FeatureViewer, -// folder: FolderViewer, + buff: BuffViewer, + container: ContainerViewer, + classLevel: ClassLevelViewer, + damageMultiplier: DamageMultiplierViewer, + experience: ExperienceViewer, + effect: EffectViewer, + feature: FeatureViewer, + folder: FolderViewer, // item: ItemViewer, -// note: NoteViewer, + note: NoteViewer, // proficiency: ProficiencyViewer, // roll: RollViewer, // skill: SkillViewer,
+ {{model.description}} +
+ {{model.variableName}} +
{{model.variableName}}
+ Base class: {{model.baseClass}} +
{{model.baseClass}}
+ {{model.date}} +