18 add more operations for modifiers (#23)

* Added Operations and Combat Conditions

+ Added Multiply, Division and Subtract operations for modifiers
+ Added Combat Conditions Effects form Ars Armorum

* Added Math.floor()

* Fixed Operations and Combat Conditions
This commit is contained in:
LeFrique 2023-12-01 19:04:58 +01:00 committed by GitHub
parent 725dd8c504
commit 6ff4f16f9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 25 additions and 18 deletions

View File

@ -275,6 +275,10 @@
"midgard5.mod-operation-add": "Addieren",
"midgard5.mod-operation-set": "Basiswert",
"midgard5.mod-operation-fixed": "Fester Wert",
"midgard5.mod-operation-subtract": "Subtrahieren",
"midgard5.mod-operation-multiply": "Multiplizieren",
"midgard5.mod-operation-division": "Dividieren",
"midgard5.mod-stat-defenseBonus": "Abwehrbonus",
"midgard5.mod-stat-attackBonus": "Angriffsbonus",

View File

@ -1,7 +1,7 @@
{
"name": "Angeschlagen",
"type": "effect",
"img": "icons/tools/instruments/injury-pain-body-orange.web",
"img": "icons/skills/wounds/injury-pain-body-orange.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Benommen",
"type": "effect",
"img": "icons/tools/instruments/hypnosis-mesmerism-eye.webp",
"img": "icons/magic/control/hypnosis-mesmerism-eye.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Blutend",
"type": "effect",
"img": "icons/tools/instruments/blood-drip-droplet-red.webp",
"img": "icons/skills/wounds/blood-drip-droplet-red.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Eingeschüchtert",
"type": "effect",
"img": "icons/tools/instruments/fear-fright-white.webp",
"img": "icons/magic/control/fear-fright-white.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Ermutigt",
"type": "effect",
"img": "icons/tools/instruments/strike-fist-stone-light.webp",
"img": "icons/magic/earth/strike-fist-stone-light.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Erschöpft",
"type": "effect",
"img": "icons/tools/instruments/injury-body-pain-gray.webp",
"img": "icons/skills/wounds/injury-body-pain-gray.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Erzürnt",
"type": "effect",
"img": "icons/tools/instruments/fear-fright-monster-grin-red-orange.webp",
"img": "icons/magic/control/fear-fright-monster-grin-red-orange.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Lahm",
"type": "effect",
"img": "icons/tools/instruments/feet-spurred-boots-brown.webp",
"img": "icons/skills/movement/feet-spurred-boots-brown.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Taumelnd",
"type": "effect",
"img": "icons/tools/instruments/silhouette-fall-slip-prone.webp",
"img": "icons/magic/control/silhouette-fall-slip-prone.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Überrascht",
"type": "effect",
"img": "icons/tools/instruments/silhouette-hold-change-green.webp",
"img": "icons/magic/control/silhouette-hold-change-green.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -1,7 +1,7 @@
{
"name": "Lahm",
"name": "Verwirrt",
"type": "effect",
"img": "icons/tools/instruments/silhouette-grow-shrink-blue.webp",
"img": "icons/magic/control/silhouette-grow-shrink-blue.webp",
"system": {
"description": "",
"equippable": false,

View File

@ -130,22 +130,22 @@ export default class M5ModAggregate {
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);
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);
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);
const bonus = mods.map((p) => p.mod.value).reduce((a, b) => a + b, 0);
ret.value = Math.max(0, Math.floor(ret.value / bonus));
}
}

View File

@ -40,6 +40,9 @@
<option value="add">{{localize "midgard5.mod-operation-add"}}</option>
<option value="set">{{localize "midgard5.mod-operation-set"}}</option>
<option value="fixed">{{localize "midgard5.mod-operation-fixed"}}</option>
<option value="subtract">{{localize "midgard5.mod-operation-subtract"}}</option>
<option value="multiply">{{localize "midgard5.mod-operation-multiply"}}</option>
<option value="division">{{localize "midgard5.mod-operation-division"}}</option>
{{/select}}
</select>
</td>