From 1590b73fcd0c2751ba9df6452d6f679dcc1665f5 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Wed, 18 Sep 2024 23:32:20 +0900 Subject: [PATCH] Add setvar null handling --- src/ts/process/triggers.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/ts/process/triggers.ts b/src/ts/process/triggers.ts index e959e758..f25f4498 100644 --- a/src/ts/process/triggers.ts +++ b/src/ts/process/triggers.ts @@ -301,28 +301,34 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{ case'setvar': { const effectValue = risuChatParser(effect.value,{chara:char}) const varKey = risuChatParser(effect.var,{chara:char}) + let originalVar = Number(getVar(varKey)) + if(Number.isNaN(originalVar)){ + originalVar = 0 + } + let resultValue = '' switch(effect.operator){ case '=':{ - setVar(varKey, effectValue) + resultValue = effectValue break } case '+=':{ - setVar(varKey, (Number(getVar(varKey)) + Number(effectValue)).toString()) + resultValue = (originalVar + Number(effectValue)).toString() break } case '-=':{ - setVar(varKey, (Number(getVar(varKey)) - Number(effectValue)).toString()) + resultValue = (originalVar - Number(effectValue)).toString() break } case '*=':{ - setVar(varKey, (Number(getVar(varKey)) * Number(effectValue)).toString()) + resultValue = (originalVar * Number(effectValue)).toString() break } case '/=':{ - setVar(varKey, (Number(getVar(varKey)) / Number(effectValue)).toString()) + resultValue = (originalVar / Number(effectValue)).toString() break } } + setVar(varKey, resultValue) break } case 'systemprompt':{