Added Operations and Combat Conditions (#22)
* Added Operations and Combat Conditions + Added Multiply, Division and Subtract operations for modifiers + Added Combat Conditions Effects form Ars Armorum * Added Math.floor()
This commit is contained in:
parent
48883c3102
commit
725dd8c504
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Angeschlagen",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/injury-pain-body-orange.web",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "movement", "operation": "division", "value": 2 }, "1": { "type": "stat", "id": "ap.max", "operation": "division", "value": 2 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYz4",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Benommen",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/hypnosis-mesmerism-eye.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYzY",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Blutend",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/blood-drip-droplet-red.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "lp", "operation": "subtract", "value": 1 }, "1": { "type": "stat", "id": "ap", "operation": "subtract", "value": 1 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYz5",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Eingeschüchtert",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/fear-fright-white.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 4 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYzZ",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Ermutigt",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/strike-fist-stone-light.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 1 }, "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 1 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYzX",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Erschöpft",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/injury-body-pain-gray.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 }, "1": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 4 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYz7",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Erzürnt",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/fear-fright-monster-grin-red-orange.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 }, "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 2 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYz3",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Lahm",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/feet-spurred-boots-brown.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "movement", "operation": "division", "value": 2 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYz0",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Taumelnd",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/silhouette-fall-slip-prone.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 }, "1": { "type": "stat", "id": "attackBonus", "operation": "sub", "value": 2 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYz1",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Überrascht",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/silhouette-hold-change-green.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYz2",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Lahm",
|
||||
"type": "effect",
|
||||
"img": "icons/tools/instruments/silhouette-grow-shrink-blue.webp",
|
||||
"system": {
|
||||
"description": "",
|
||||
"equippable": false,
|
||||
"equipped": true,
|
||||
"value": 0,
|
||||
"magic": false,
|
||||
"rolls": { "formulas": {}, "output": "" },
|
||||
"mods": { "0": { "type": "stat", "id": "movement", "operation": "fixed", "value": 0 } },
|
||||
"calc": {}
|
||||
},
|
||||
"effects": [],
|
||||
"flags": {},
|
||||
"_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
|
||||
"_id": "PJ0tqjZXQ5opcYz6",
|
||||
"folder": null,
|
||||
"sort": 0,
|
||||
"ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
|
||||
}
|
||||
|
|
@ -95,6 +95,9 @@ export enum M5ModOperation {
|
|||
ADD = "add",
|
||||
SET = "set",
|
||||
FIXED = "fixed",
|
||||
MULTIPLY = "multiply",
|
||||
SUBTRACT = "subtract",
|
||||
DIVISION = "division",
|
||||
}
|
||||
|
||||
export interface M5ItemMod {
|
||||
|
|
|
|||
|
|
@ -126,6 +126,27 @@ export default class M5ModAggregate {
|
|||
const bonus = mods.map((p) => p.mod.value).reduce((a, b) => a + b, 0);
|
||||
ret.value = Math.max(0, ret.value + bonus);
|
||||
}
|
||||
|
||||
mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.SUBTRACT);
|
||||
if (mods.length !== 0) {
|
||||
ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
|
||||
const bonus = mods.map((p) => p.mod.value).reduce((a, b) => a - b, 0);
|
||||
ret.value = Math.max(0, ret.value + bonus);
|
||||
}
|
||||
|
||||
mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.MULTIPLY);
|
||||
if (mods.length !== 0) {
|
||||
ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
|
||||
const bonus = mods.map((p) => p.mod.value).reduce((a, b) => a * b, 0);
|
||||
ret.value = Math.max(0, ret.value + bonus);
|
||||
}
|
||||
|
||||
mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.DIVISION);
|
||||
if (mods.length !== 0) {
|
||||
ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
|
||||
const bonus = mods.map((p) => p.mod.value).reduce((a, b) => Math.floor(a / b), 0);
|
||||
ret.value = Math.max(0, ret.value + bonus);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -48,6 +48,13 @@
|
|||
"path": "./packs/items/ausrustung.db",
|
||||
"type": "Item"
|
||||
},
|
||||
{
|
||||
"name": "kampfzustaende",
|
||||
"label": "Kampfzustände",
|
||||
"system": "midgard5",
|
||||
"path": "./packs/items/kampfzustaende.db",
|
||||
"type": "Item"
|
||||
},
|
||||
{
|
||||
"name": "waffenkammer",
|
||||
"label": "Waffenkammer",
|
||||
|
|
|
|||
Loading…
Reference in New Issue