Began work on implementing string and array storage limits

This commit is contained in:
Stefan Zermatten
2021-08-09 22:34:04 +02:00
parent 16e2b1249f
commit 9f62a78eb0
2 changed files with 31 additions and 3 deletions

View File

@@ -1,7 +1,9 @@
import SimpleSchema from 'simpl-schema';
import ErrorSchema from '/imports/api/properties/subSchemas/ErrorSchema.js';
import InlineComputationSchema from '/imports/api/properties/subSchemas/InlineComputationSchema.js';
import { storedIconsSchema } from '/imports/api/icons/Icons.js'
import { storedIconsSchema } from '/imports/api/icons/Icons.js';
import STORAGE_LIMITS from '/imports/constants/STORAGE_LIMITS.js';
/*
* Actions are things a character can do
* Any rolls that are children of actions will be rolled when taking the action
@@ -12,14 +14,17 @@ let ActionSchema = new SimpleSchema({
name: {
type: String,
optional: true,
max: STORAGE_LIMITS.name,
},
summary: {
type: String,
optional: true,
max: STORAGE_LIMITS.summary,
},
description: {
type: String,
optional: true,
max: STORAGE_LIMITS.description,
},
// What time-resource is used to take the action in combat
// long actions take longer than 1 round to cast
@@ -41,9 +46,11 @@ let ActionSchema = new SimpleSchema({
tags: {
type: Array,
defaultValue: [],
maxCount: STORAGE_LIMITS.tagCount,
},
'tags.$': {
type: String,
max: STORAGE_LIMITS.tagLength,
},
// Duplicate the ResourceSchema here so we can extend it elegantly.
resources: {
@@ -53,6 +60,7 @@ let ActionSchema = new SimpleSchema({
'resources.itemsConsumed': {
type: Array,
defaultValue: [],
maxCount: STORAGE_LIMITS.resourcesCount,
},
'resources.itemsConsumed.$': {
type: Object,
@@ -79,6 +87,7 @@ let ActionSchema = new SimpleSchema({
'resources.attributesConsumed': {
type: Array,
defaultValue: [],
maxCount: STORAGE_LIMITS.resourcesCount,
},
'resources.attributesConsumed.$': {
type: Object,
@@ -102,6 +111,7 @@ let ActionSchema = new SimpleSchema({
uses: {
type: String,
optional: true,
max: STORAGE_LIMITS.calculation,
},
// Integer of how many times it has already been used
usesUsed: {
@@ -120,14 +130,14 @@ const ComputedOnlyActionSchema = new SimpleSchema({
summaryCalculations: {
type: Array,
defaultValue: [],
maxCount: 32,
maxCount: STORAGE_LIMITS.inlineCalculationCount,
},
'summaryCalculations.$': InlineComputationSchema,
descriptionCalculations: {
type: Array,
defaultValue: [],
maxCount: 32,
maxCount: STORAGE_LIMITS.inlineCalculationCount,
},
'descriptionCalculations.$': InlineComputationSchema,
@@ -138,6 +148,7 @@ const ComputedOnlyActionSchema = new SimpleSchema({
usesErrors: {
type: Array,
optional: true,
maxCount: STORAGE_LIMITS.errorCount,
},
'usesErrors.$':{
type: ErrorSchema,
@@ -158,6 +169,7 @@ const ComputedOnlyActionSchema = new SimpleSchema({
},
'resources.itemsConsumed.$.itemName': {
type: String,
max: STORAGE_LIMITS.name,
optional: true,
},
'resources.itemsConsumed.$.itemIcon': {
@@ -167,6 +179,7 @@ const ComputedOnlyActionSchema = new SimpleSchema({
'resources.itemsConsumed.$.itemColor': {
type: String,
optional: true,
max: STORAGE_LIMITS.color,
},
'resources.attributesConsumed': Array,
'resources.attributesConsumed.$': Object,
@@ -182,6 +195,7 @@ const ComputedOnlyActionSchema = new SimpleSchema({
'resources.attributesConsumed.$.statName': {
type: String,
optional: true,
max: STORAGE_LIMITS.name,
},
// True if the uses left is zero, or any item or attribute consumed is
// insufficient

View File

@@ -0,0 +1,14 @@
const STORAGE_LIMITS = Object.freeze({
name: 140,
color: 10000,
summary: 10000,
description: 49473, //the length of the Bee Movie script
inlineCalculationCount: 32,
errorCount: 32,
tagCount: 64,
tagLength: 140,
resourcesCount: 32,
calculation: 280,
});
export default STORAGE_LIMITS;