diff --git a/.vscode/settings.json b/.vscode/settings.json index 8e771ec1..98c21521 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,6 +13,7 @@ "nearley", "ngraph", "ostrio", + "Ruleset", "snackbars", "Spellcasting", "uncomputed", diff --git a/app/imports/@types/validated-method.d.ts b/app/imports/@types/validated-method.d.ts index aff6eae6..4c26e353 100644 --- a/app/imports/@types/validated-method.d.ts +++ b/app/imports/@types/validated-method.d.ts @@ -3,7 +3,7 @@ declare module 'meteor/mdg:validated-method' { rateLimit: { numRequests: number, timeInterval: number, - } + }; } type Return = TFunc extends (...args: any[]) => infer TReturn ? TReturn : never; type Argument = TFunc extends (...args: infer TArgs) => any ? TArgs extends [infer TArg] ? TArg diff --git a/app/imports/api/creature/creatures/Creatures.ts b/app/imports/api/creature/creatures/Creatures.ts index d80ce112..0c0e766b 100644 --- a/app/imports/api/creature/creatures/Creatures.ts +++ b/app/imports/api/creature/creatures/Creatures.ts @@ -17,17 +17,17 @@ export type Creature = Colored & Shared & { allowedLibraryCollections: string[], // Stats that are computed and denormalized outside of recomputation - denormalizedStats: { + denormalizedStats?: { xp: number, milestoneLevels: number, }, - propCount: number, + propCount?: number, // Does the character need a recompute? dirty?: boolean, // Version of computation engine that was last used to compute this creature computeVersion?: string, type: 'pc' | 'npc' | 'monster', - computeErrors: { + computeErrors?: { type: string, details?: any, }[], diff --git a/app/imports/api/creature/creatures/methods/insertCreature.js b/app/imports/api/creature/creatures/methods/insertCreature.js index bddb9136..cf0e8845 100644 --- a/app/imports/api/creature/creatures/methods/insertCreature.js +++ b/app/imports/api/creature/creatures/methods/insertCreature.js @@ -15,7 +15,7 @@ import SimpleSchema from 'simpl-schema'; const insertCreature = new ValidatedMethod({ name: 'creatures.insertCreature', mixins: [RateLimiterMixin, simpleSchemaMixin], - schema: CreatureSchema.pick( + validate: CreatureSchema.pick( 'name', 'gender', 'alignment', @@ -26,7 +26,7 @@ const insertCreature = new ValidatedMethod({ type: SimpleSchema.Integer, min: 0, }, - }), + }).validator(), rateLimit: { numRequests: 5, timeInterval: 5000, @@ -48,8 +48,13 @@ const insertCreature = new ValidatedMethod({ name, gender, alignment, + type: 'pc', allowedLibraries, allowedLibraryCollections, + settings: {}, + readers: [], + writers: [], + public: false, }); // Insert experience to get character to starting level @@ -61,7 +66,6 @@ const insertCreature = new ValidatedMethod({ creatureId }, creatureId, - userId, }); } @@ -96,7 +100,6 @@ function insertDefaultRuleset(creatureId, baseId, userId, slot) { insertPropertyFromLibraryNode.call({ nodeIds: [ruleset._id], parentRef: { id: baseId, collection: 'creatureProperties' }, - order: 0.5, }); } } diff --git a/app/imports/api/creature/experience/Experiences.js b/app/imports/api/creature/experience/Experiences.js index 3bd29a57..26ee5739 100644 --- a/app/imports/api/creature/experience/Experiences.js +++ b/app/imports/api/creature/experience/Experiences.js @@ -26,7 +26,7 @@ let ExperienceSchema = new SimpleSchema({ min: 0, index: 1, }, - // The real-world date that it occured, usually sorted by date + // The real-world date that it occurred, usually sorted by date date: { type: Date, autoValue: function () { @@ -93,7 +93,7 @@ const insertExperience = new ValidatedMethod({ let insertedIds = []; creatureIds.forEach(creatureId => { assertEditPermission(creatureId, userId); - let id = insertExperienceForCreature({ experience, creatureId, userId }); + let id = insertExperienceForCreature({ experience, creatureId }); insertedIds.push(id); }); return insertedIds; diff --git a/app/imports/client/ui/pages/Documentation.vue b/app/imports/client/ui/pages/Documentation.vue index b05c7dbf..e43d2a29 100644 --- a/app/imports/client/ui/pages/Documentation.vue +++ b/app/imports/client/ui/pages/Documentation.vue @@ -77,7 +77,7 @@ export default { }, doc() { const doc = Docs.findOne(this.path); - return doc && doc.text; + return doc && doc.description; }, }, watch: {