Refactored computation into folders
This commit is contained in:
@@ -1,3 +1,2 @@
|
|||||||
import '/imports/ui/vueSetup.js';
|
import '/imports/ui/vueSetup.js';
|
||||||
import '/imports/ui/styles/stylesIndex.js';
|
import '/imports/ui/styles/stylesIndex.js';
|
||||||
import '/imports/ui/styles/stylesIndex.js';
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { RateLimiterMixin } from 'ddp-rate-limiter-mixin';
|
|||||||
import CreatureProperties, { getCreature } from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties, { getCreature } from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import { damagePropertyWork } from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
import { damagePropertyWork } from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
||||||
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
import { doActionWork } from '/imports/api/creature/actions/doAction.js';
|
import { doActionWork } from '/imports/api/creature/actions/doAction.js';
|
||||||
|
|
||||||
const castSpellWithSlot = new ValidatedMethod({
|
const castSpellWithSlot = new ValidatedMethod({
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import CreatureProperties from '/imports/api/creature/creatureProperties/Creatur
|
|||||||
import Creatures from '/imports/api/creature/Creatures.js';
|
import Creatures from '/imports/api/creature/Creatures.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
import { nodesToTree } from '/imports/api/parenting/parenting.js';
|
import { nodesToTree } from '/imports/api/parenting/parenting.js';
|
||||||
import applyProperties from '/imports/api/creature/actions/applyProperties.js';
|
import applyProperties from '/imports/api/creature/actions/applyProperties.js';
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { includes, cloneDeep } from 'lodash';
|
import { includes, cloneDeep } from 'lodash';
|
||||||
import findAncestorByType from '/imports/api/creature/computation/findAncestorByType.js';
|
import findAncestorByType from '/imports/api/creature/computation/engine/findAncestorByType.js';
|
||||||
|
|
||||||
// The computation memo is an in-memory data structure used only during the
|
// The computation memo is an in-memory data structure used only during the
|
||||||
// computation process
|
// computation process
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import evaluateCalculation from '/imports/api/creature/computation/evaluateCalculation.js';
|
import evaluateCalculation from '/imports/api/creature/computation/engine/evaluateCalculation.js';
|
||||||
|
|
||||||
export default class EffectAggregator{
|
export default class EffectAggregator{
|
||||||
constructor(stat, memo){
|
constructor(stat, memo){
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import computeToggle from '/imports/api/creature/computation/computeToggle.js';
|
import computeToggle from '/imports/api/creature/computation/engine/computeToggle.js';
|
||||||
|
|
||||||
export default function applyToggles(prop, memo){
|
export default function applyToggles(prop, memo){
|
||||||
prop.computationDetails.toggleAncestors.forEach(toggleId => {
|
prop.computationDetails.toggleAncestors.forEach(toggleId => {
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import computeStat from '/imports/api/creature/computation/computeStat.js';
|
import computeStat from '/imports/api/creature/computation/engine/computeStat.js';
|
||||||
import applyToggles from '/imports/api/creature/computation/applyToggles.js';
|
import applyToggles from '/imports/api/creature/computation/engine/applyToggles.js';
|
||||||
import evaluateCalculation from '/imports/api/creature/computation/evaluateCalculation.js';
|
import evaluateCalculation from '/imports/api/creature/computation/engine/evaluateCalculation.js';
|
||||||
|
|
||||||
export default function combineStat(stat, aggregator, memo){
|
export default function combineStat(stat, aggregator, memo){
|
||||||
if (stat.type === 'attribute'){
|
if (stat.type === 'attribute'){
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import evaluateCalculation from '/imports/api/creature/computation/evaluateCalculation.js';
|
import evaluateCalculation from '/imports/api/creature/computation/engine/evaluateCalculation.js';
|
||||||
import applyToggles from '/imports/api/creature/computation/applyToggles.js';
|
import applyToggles from '/imports/api/creature/computation/engine/applyToggles.js';
|
||||||
|
|
||||||
export default function computeEffect(effect, memo){
|
export default function computeEffect(effect, memo){
|
||||||
if (effect.computationDetails.computed) return;
|
if (effect.computationDetails.computed) return;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import evaluateCalculation from '/imports/api/creature/computation/evaluateCalculation.js';
|
import evaluateCalculation from '/imports/api/creature/computation/engine/evaluateCalculation.js';
|
||||||
import ConstantNode from '/imports/parser/parseTree/ConstantNode.js';
|
import ConstantNode from '/imports/parser/parseTree/ConstantNode.js';
|
||||||
|
|
||||||
export default function computeEndStepProperty(prop, memo){
|
export default function computeEndStepProperty(prop, memo){
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import evaluateCalculation from '/imports/api/creature/computation/evaluateCalculation.js';
|
import evaluateCalculation from '/imports/api/creature/computation/engine/evaluateCalculation.js';
|
||||||
|
|
||||||
export default function computeInlineCalculations(prop, memo){
|
export default function computeInlineCalculations(prop, memo){
|
||||||
if (prop.summary){
|
if (prop.summary){
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
import { each, forOwn } from 'lodash';
|
import { each, forOwn } from 'lodash';
|
||||||
import computeLevels from '/imports/api/creature/computation/computeLevels.js';
|
import computeLevels from '/imports/api/creature/computation/engine/computeLevels.js';
|
||||||
import computeStat from '/imports/api/creature/computation/computeStat.js';
|
import computeStat from '/imports/api/creature/computation/engine/computeStat.js';
|
||||||
import computeEffect from '/imports/api/creature/computation/computeEffect.js';
|
import computeEffect from '/imports/api/creature/computation/engine/computeEffect.js';
|
||||||
import computeToggle from '/imports/api/creature/computation/computeToggle.js';
|
import computeToggle from '/imports/api/creature/computation/engine/computeToggle.js';
|
||||||
import computeEndStepProperty from '/imports/api/creature/computation/computeEndStepProperty.js';
|
import computeEndStepProperty from '/imports/api/creature/computation/engine/computeEndStepProperty.js';
|
||||||
import computeInlineCalculations from '/imports/api/creature/computation/computeInlineCalculations.js';
|
import computeInlineCalculations from '/imports/api/creature/computation/engine/computeInlineCalculations.js';
|
||||||
|
|
||||||
export default function computeMemo(memo){
|
export default function computeMemo(memo){
|
||||||
// Compute level
|
// Compute level
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import combineStat from '/imports/api/creature/computation/combineStat.js';
|
import combineStat from '/imports/api/creature/computation/engine/combineStat.js';
|
||||||
import computeEffect from '/imports/api/creature/computation/computeEffect.js';
|
import computeEffect from '/imports/api/creature/computation/engine/computeEffect.js';
|
||||||
import EffectAggregator from '/imports/api/creature/computation/EffectAggregator.js';
|
import EffectAggregator from '/imports/api/creature/computation/engine/EffectAggregator.js';
|
||||||
import applyToggles from '/imports/api/creature/computation/applyToggles.js';
|
import applyToggles from '/imports/api/creature/computation/engine/applyToggles.js';
|
||||||
import { each } from 'lodash';
|
import { each } from 'lodash';
|
||||||
|
|
||||||
export default function computeStat(stat, memo){
|
export default function computeStat(stat, memo){
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import evaluateCalculation from '/imports/api/creature/computation/evaluateCalculation.js';
|
import evaluateCalculation from '/imports/api/creature/computation/engine/evaluateCalculation.js';
|
||||||
|
|
||||||
export default function computeToggle(toggle, memo){
|
export default function computeToggle(toggle, memo){
|
||||||
if (toggle.computationDetails.computed) return;
|
if (toggle.computationDetails.computed) return;
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
import computeStat from '/imports/api/creature/computation/computeStat.js';
|
import computeStat from '/imports/api/creature/computation/engine/computeStat.js';
|
||||||
import { parse, CompilationContext } from '/imports/parser/parser.js';
|
import { parse, CompilationContext } from '/imports/parser/parser.js';
|
||||||
import SymbolNode from '/imports/parser/parseTree/SymbolNode.js';
|
import SymbolNode from '/imports/parser/parseTree/SymbolNode.js';
|
||||||
import AccessorNode from '/imports/parser/parseTree/AccessorNode.js';
|
import AccessorNode from '/imports/parser/parseTree/AccessorNode.js';
|
||||||
import ConstantNode from '/imports/parser/parseTree/ConstantNode.js';
|
import ConstantNode from '/imports/parser/parseTree/ConstantNode.js';
|
||||||
import findAncestorByType from '/imports/api/creature/computation/findAncestorByType.js';
|
import findAncestorByType from '/imports/api/creature/computation/engine/findAncestorByType.js';
|
||||||
|
|
||||||
/* Convert a calculation into a constant output and errors*/
|
/* Convert a calculation into a constant output and errors*/
|
||||||
export default function evaluateCalculation({
|
export default function evaluateCalculation({
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
|
|
||||||
|
export default function getDependentProperties({creatureId, dependencies}){
|
||||||
|
// find ids of all dependant toggles that have conditions, even if inactive
|
||||||
|
let toggleIds = CreatureProperties.find({
|
||||||
|
'ancestors.id': creatureId,
|
||||||
|
type: 'toggle',
|
||||||
|
removed: {$ne: true},
|
||||||
|
condition: { $exists: true },
|
||||||
|
dependencies: {$in: dependencies},
|
||||||
|
}, {
|
||||||
|
fields: {_id: 1},
|
||||||
|
}).map(t => t._id);
|
||||||
|
// Find all the dependant properties
|
||||||
|
let props = CreatureProperties.find({
|
||||||
|
'ancestors.id': creatureId,
|
||||||
|
removed: {$ne: true},
|
||||||
|
dependencies: {$in: dependencies},
|
||||||
|
$or: [
|
||||||
|
// All active properties
|
||||||
|
{inactive: {$ne: true}},
|
||||||
|
// All active and inactive toggles with conditions
|
||||||
|
// Same as {$in: toggleIds}, but should be slightly faster
|
||||||
|
{type: 'toggle', condition: { $exists: true }},
|
||||||
|
// All decendents of the above toggles
|
||||||
|
{'ancestors.id': {$in: toggleIds}},
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
// Filter out fields never used by calculations
|
||||||
|
fields: {
|
||||||
|
icon: 0,
|
||||||
|
},
|
||||||
|
sort: {
|
||||||
|
order: 1,
|
||||||
|
}
|
||||||
|
}).fetch();
|
||||||
|
// Add on all the properties th
|
||||||
|
CreatureProperties.find({_id: {$in: dependencies}}).forEach(prop => {
|
||||||
|
props.push(prop)
|
||||||
|
});
|
||||||
|
return props;
|
||||||
|
}
|
||||||
@@ -79,7 +79,9 @@ function addUnsetOp(op, key){
|
|||||||
|
|
||||||
function bulkWriteProperties(bulkWriteOps){
|
function bulkWriteProperties(bulkWriteOps){
|
||||||
if (!bulkWriteOps.length) return;
|
if (!bulkWriteOps.length) return;
|
||||||
if (Meteor.isServer){
|
// Only use bulk writing if there are many writes to do
|
||||||
|
// it makes latency compensation janky, so we avoid it for smaller writes
|
||||||
|
if (Meteor.isServer && bulkWriteOps.length > 16){
|
||||||
CreatureProperties.rawCollection().bulkWrite(
|
CreatureProperties.rawCollection().bulkWrite(
|
||||||
bulkWriteOps,
|
bulkWriteOps,
|
||||||
{ordered : false},
|
{ordered : false},
|
||||||
@@ -94,10 +96,8 @@ function bulkWriteProperties(bulkWriteOps){
|
|||||||
bulkWriteOps.forEach(op => {
|
bulkWriteOps.forEach(op => {
|
||||||
let updateOneOrMany = op.updateOne || op.updateMany;
|
let updateOneOrMany = op.updateOne || op.updateMany;
|
||||||
CreatureProperties.update(updateOneOrMany.filter, updateOneOrMany.update, {
|
CreatureProperties.update(updateOneOrMany.filter, updateOneOrMany.update, {
|
||||||
// The server code is bypassing collection 2 validation, so do the same
|
// The bulk code is bypassing validation, so do the same here
|
||||||
// on the client
|
// selector: {type: op.type} // include this if bypass is off
|
||||||
// include this if bypass is off:
|
|
||||||
// selector: {type: op.type}
|
|
||||||
bypassCollection2: true,
|
bypassCollection2: true,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -2,14 +2,16 @@ import { ValidatedMethod } from 'meteor/mdg:validated-method';
|
|||||||
import { RateLimiterMixin } from 'ddp-rate-limiter-mixin';
|
import { RateLimiterMixin } from 'ddp-rate-limiter-mixin';
|
||||||
import SimpleSchema from 'simpl-schema';
|
import SimpleSchema from 'simpl-schema';
|
||||||
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
||||||
import ComputationMemo from '/imports/api/creature/computation/ComputationMemo.js';
|
import ComputationMemo from '/imports/api/creature/computation/engine/ComputationMemo.js';
|
||||||
import getComputationProperties from '/imports/api/creature/computation/getComputationProperties.js';
|
import getComputationProperties from '/imports/api/creature/computation/engine/getComputationProperties.js';
|
||||||
import computeMemo from '/imports/api/creature/computation/computeMemo.js';
|
import computeMemo from '/imports/api/creature/computation/engine/computeMemo.js';
|
||||||
import writeAlteredProperties from '/imports/api/creature/computation/writeAlteredProperties.js';
|
import writeAlteredProperties from '/imports/api/creature/computation/engine/writeAlteredProperties.js';
|
||||||
import writeCreatureVariables from '/imports/api/creature/computation/writeCreatureVariables.js';
|
import writeCreatureVariables from '/imports/api/creature/computation/engine/writeCreatureVariables.js';
|
||||||
import { recomputeDamageMultipliersById } from '/imports/api/creature/denormalise/recomputeDamageMultipliers.js';
|
import { recomputeDamageMultipliersById } from '/imports/api/creature/denormalise/recomputeDamageMultipliers.js';
|
||||||
import recomputeInactiveProperties from '/imports/api/creature/denormalise/recomputeInactiveProperties.js';
|
import recomputeInactiveProperties from '/imports/api/creature/denormalise/recomputeInactiveProperties.js';
|
||||||
import recomputeSlotFullness from '/imports/api/creature/denormalise/recomputeSlotFullness.js';
|
import recomputeSlotFullness from '/imports/api/creature/denormalise/recomputeSlotFullness.js';
|
||||||
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
|
import getDependentProperties from '/imports/api/creature/computation/engine/getDependentProperties.js';
|
||||||
import Creatures from '/imports/api/creature/Creatures.js';
|
import Creatures from '/imports/api/creature/Creatures.js';
|
||||||
|
|
||||||
export const recomputeCreature = new ValidatedMethod({
|
export const recomputeCreature = new ValidatedMethod({
|
||||||
@@ -95,16 +97,22 @@ export function recomputeCreatureByDoc(creature){
|
|||||||
return computationMemo;
|
return computationMemo;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
|
||||||
export function recomputePropertyDependencies(property){
|
export function recomputePropertyDependencies(property){
|
||||||
// Placeholder functionality, just recompute the whole creature
|
let creature = getRootCreatureAncestor(property);
|
||||||
let creature = Creatures.findOne(property.ancestors[0].id);
|
recomputeCreatureByDependencies({
|
||||||
recomputeCreatureByDoc(creature);
|
creature,
|
||||||
|
dependencies: [property._id],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
export function recomputeCreatureByDependencies({creature, dependencies}){
|
||||||
export function recomputeCreatureByIdAndDependencies({creatureId, dependencies}){
|
let props = getDependentProperties({
|
||||||
// Placeholder functionality, just recompute the whole creature
|
creatureId: creature._id,
|
||||||
let creature = Creatures.findOne(creatureId);
|
dependencies,
|
||||||
recomputeCreatureByDoc(creature);
|
});
|
||||||
|
let computationMemo = new ComputationMemo(props, creature);
|
||||||
|
computeMemo(computationMemo);
|
||||||
|
writeAlteredProperties(computationMemo);
|
||||||
|
return computationMemo;
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,7 @@ import SimpleSchema from 'simpl-schema';
|
|||||||
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import { recomputePropertyDependencies } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputePropertyDependencies } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const adjustQuantity = new ValidatedMethod({
|
const adjustQuantity = new ValidatedMethod({
|
||||||
name: 'creatureProperties.adjustQuantity',
|
name: 'creatureProperties.adjustQuantity',
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import CreatureProperties from '/imports/api/creature/creatureProperties/Creatur
|
|||||||
import Creatures from '/imports/api/creature/Creatures.js';
|
import Creatures from '/imports/api/creature/Creatures.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import { damagePropertyWork } from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
import { damagePropertyWork } from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
||||||
import { recomputePropertyDependencies } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputePropertyDependencies } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const damagePropertiesByName = new ValidatedMethod({
|
const damagePropertiesByName = new ValidatedMethod({
|
||||||
name: 'CreatureProperties.damagePropertiesByName',
|
name: 'CreatureProperties.damagePropertiesByName',
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import SimpleSchema from 'simpl-schema';
|
|||||||
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import { recomputePropertyDependencies } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputePropertyDependencies, recomputeCreatureByDoc, recomputeCreature } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const damageProperty = new ValidatedMethod({
|
const damageProperty = new ValidatedMethod({
|
||||||
name: 'creatureProperties.damage',
|
name: 'creatureProperties.damage',
|
||||||
@@ -37,7 +37,6 @@ const damageProperty = new ValidatedMethod({
|
|||||||
damagePropertyWork({property, operation, value});
|
damagePropertyWork({property, operation, value});
|
||||||
// Dependencies can't be changed through damage, only recompute deps
|
// Dependencies can't be changed through damage, only recompute deps
|
||||||
recomputePropertyDependencies(property);
|
recomputePropertyDependencies(property);
|
||||||
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import CreatureProperties from '/imports/api/creature/creatureProperties/Creatur
|
|||||||
import Creatures from '/imports/api/creature/Creatures.js';
|
import Creatures from '/imports/api/creature/Creatures.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import { damagePropertyWork } from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
import { damagePropertyWork } from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
||||||
import { recomputeCreatureByIdAndDependencies } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDependencies } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const dealDamage = new ValidatedMethod({
|
const dealDamage = new ValidatedMethod({
|
||||||
name: 'creatureProperties.dealDamage',
|
name: 'creatureProperties.dealDamage',
|
||||||
@@ -60,7 +60,7 @@ const dealDamage = new ValidatedMethod({
|
|||||||
dependencies.push(healthBar.variableName);
|
dependencies.push(healthBar.variableName);
|
||||||
dependencies.push(...healthBar.dependencies);
|
dependencies.push(...healthBar.dependencies);
|
||||||
});
|
});
|
||||||
recomputeCreatureByIdAndDependencies({creatureId, dependencies});
|
recomputeCreatureByDependencies({creature, dependencies});
|
||||||
return totalDamage;
|
return totalDamage;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import CreatureProperties from '/imports/api/creature/creatureProperties/Creatur
|
|||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import { reorderDocs } from '/imports/api/parenting/order.js';
|
import { reorderDocs } from '/imports/api/parenting/order.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const insertProperty = new ValidatedMethod({
|
const insertProperty = new ValidatedMethod({
|
||||||
name: 'creatureProperties.insert',
|
name: 'creatureProperties.insert',
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import CreatureProperties from '/imports/api/creature/creatureProperties/Creatur
|
|||||||
import LibraryNodes from '/imports/api/library/LibraryNodes.js';
|
import LibraryNodes from '/imports/api/library/LibraryNodes.js';
|
||||||
import { RefSchema } from '/imports/api/parenting/ChildSchema.js';
|
import { RefSchema } from '/imports/api/parenting/ChildSchema.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import {
|
import {
|
||||||
setLineageOfDocs,
|
setLineageOfDocs,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { RateLimiterMixin } from 'ddp-rate-limiter-mixin';
|
|||||||
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const pullFromProperty = new ValidatedMethod({
|
const pullFromProperty = new ValidatedMethod({
|
||||||
name: 'creatureProperties.pull',
|
name: 'creatureProperties.pull',
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { RateLimiterMixin } from 'ddp-rate-limiter-mixin';
|
|||||||
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const pushToProperty = new ValidatedMethod({
|
const pushToProperty = new ValidatedMethod({
|
||||||
name: 'creatureProperties.push',
|
name: 'creatureProperties.push',
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import CreatureProperties from '/imports/api/creature/creatureProperties/Creatur
|
|||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import { restore } from '/imports/api/parenting/softRemove.js';
|
import { restore } from '/imports/api/parenting/softRemove.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const restoreProperty = new ValidatedMethod({
|
const restoreProperty = new ValidatedMethod({
|
||||||
name: 'creatureProperties.restore',
|
name: 'creatureProperties.restore',
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import SimpleSchema from 'simpl-schema';
|
|||||||
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const selectAmmoItem = new ValidatedMethod({
|
const selectAmmoItem = new ValidatedMethod({
|
||||||
name: 'creatureProperties.selectAmmoItem',
|
name: 'creatureProperties.selectAmmoItem',
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import CreatureProperties from '/imports/api/creature/creatureProperties/Creatur
|
|||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import { softRemove } from '/imports/api/parenting/softRemove.js';
|
import { softRemove } from '/imports/api/parenting/softRemove.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const softRemoveProperty = new ValidatedMethod({
|
const softRemoveProperty = new ValidatedMethod({
|
||||||
name: 'creatureProperties.softRemove',
|
name: 'creatureProperties.softRemove',
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { RateLimiterMixin } from 'ddp-rate-limiter-mixin';
|
|||||||
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
import getRootCreatureAncestor from '/imports/api/creature/creatureProperties/getRootCreatureAncestor.js';
|
||||||
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureByDoc } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const updateCreatureProperty = new ValidatedMethod({
|
const updateCreatureProperty = new ValidatedMethod({
|
||||||
name: 'creatureProperties.update',
|
name: 'creatureProperties.update',
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { recomputeCreatureById } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureById } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recomputes all ancestor creatures of this property
|
* Recomputes all ancestor creatures of this property
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { RateLimiterMixin } from 'ddp-rate-limiter-mixin';
|
|||||||
import { getUserTier } from '/imports/api/users/patreon/tiers.js';
|
import { getUserTier } from '/imports/api/users/patreon/tiers.js';
|
||||||
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
||||||
import Creatures from '/imports/api/creature/Creatures.js';
|
import Creatures from '/imports/api/creature/Creatures.js';
|
||||||
import { recomputeCreatureById } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureById } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
let Experiences = new Mongo.Collection('experiences');
|
let Experiences = new Mongo.Collection('experiences');
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { recomputeCreatureById } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureById } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
export default function recomputeCreatureMixin(methodOptions){
|
export default function recomputeCreatureMixin(methodOptions){
|
||||||
let runFunc = methodOptions.run;
|
let runFunc = methodOptions.run;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { RateLimiterMixin } from 'ddp-rate-limiter-mixin';
|
|||||||
import Creatures from '/imports/api/creature/Creatures.js';
|
import Creatures from '/imports/api/creature/Creatures.js';
|
||||||
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
|
||||||
import { recomputeCreatureById } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureById } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const restCreature = new ValidatedMethod({
|
const restCreature = new ValidatedMethod({
|
||||||
name: 'creature.methods.longRest',
|
name: 'creature.methods.longRest',
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { RefSchema } from '/imports/api/parenting/ChildSchema.js';
|
|||||||
import { assertDocEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
import { assertDocEditPermission } from '/imports/api/sharing/sharingPermissions.js';
|
||||||
import fetchDocByRef from '/imports/api/parenting/fetchDocByRef.js';
|
import fetchDocByRef from '/imports/api/parenting/fetchDocByRef.js';
|
||||||
import getCollectionByName from '/imports/api/parenting/getCollectionByName.js';
|
import getCollectionByName from '/imports/api/parenting/getCollectionByName.js';
|
||||||
import { recomputeCreatureById } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureById } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
|
|
||||||
const organizeDoc = new ValidatedMethod({
|
const organizeDoc = new ValidatedMethod({
|
||||||
name: 'organize.organizeDoc',
|
name: 'organize.organizeDoc',
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import Creatures from '/imports/api/creature/Creatures.js';
|
|||||||
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import CreatureLogs from '/imports/api/creature/log/CreatureLogs.js';
|
import CreatureLogs from '/imports/api/creature/log/CreatureLogs.js';
|
||||||
import { assertViewPermission } from '/imports/api/creature/creaturePermissions.js';
|
import { assertViewPermission } from '/imports/api/creature/creaturePermissions.js';
|
||||||
import { recomputeCreatureById } from '/imports/api/creature/computation/recomputeCreature.js';
|
import { recomputeCreatureById } from '/imports/api/creature/computation/methods/recomputeCreature.js';
|
||||||
import VERSION from '/imports/constants/VERSION.js';
|
import VERSION from '/imports/constants/VERSION.js';
|
||||||
|
|
||||||
let schema = new SimpleSchema({
|
let schema = new SimpleSchema({
|
||||||
|
|||||||
@@ -311,7 +311,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import Creatures from '/imports/api/creature/Creatures.js';
|
import Creatures from '/imports/api/creature/Creatures.js';
|
||||||
import { softRemoveProperty } from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import { softRemoveProperty } from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
import { damageProperty } from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
import damageProperty from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
||||||
import AttributeCard from '/imports/ui/properties/components/attributes/AttributeCard.vue';
|
import AttributeCard from '/imports/ui/properties/components/attributes/AttributeCard.vue';
|
||||||
import AbilityListTile from '/imports/ui/properties/components/attributes/AbilityListTile.vue';
|
import AbilityListTile from '/imports/ui/properties/components/attributes/AbilityListTile.vue';
|
||||||
import ColumnLayout from '/imports/ui/components/ColumnLayout.vue';
|
import ColumnLayout from '/imports/ui/components/ColumnLayout.vue';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Creatures from '/imports/api/creature/Creatures.js';
|
import Creatures from '/imports/api/creature/Creatures.js';
|
||||||
import { damageProperty } from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
import damageProperty from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
|
||||||
|
|
||||||
import HealthBarCard from '/imports/ui/properties/components/attributes/HealthBarCard.vue';
|
import HealthBarCard from '/imports/ui/properties/components/attributes/HealthBarCard.vue';
|
||||||
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
||||||
|
|||||||
Reference in New Issue
Block a user