From d6472971c52d0bd528a748a0332ec13c85e2ae70 Mon Sep 17 00:00:00 2001 From: Kwaroran Date: Sun, 16 Feb 2025 00:39:11 +0900 Subject: [PATCH] Add wait and updategui trigger --- src/lang/en.ts | 4 ++++ src/lang/ko.ts | 4 ++++ src/lib/SideBars/Scripts/TriggerList2.svelte | 25 ++++++++++++++++++++ src/ts/process/triggers.ts | 23 +++++++++++++++++- 4 files changed, 55 insertions(+), 1 deletion(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index e6b4b176..dd02a418 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -361,6 +361,10 @@ export const languageEnglish = { v2GetDisplayStateDesc: "Get Display State => {{outputVar}}", v2SetDisplayState: "Set Display State", v2SetDisplayStateDesc: "Set Display State to {{value}}", + v2UpdateGUI: "Update GUI", + v2UpdateGUIDesc: "Update GUI", + v2Wait: "Wait", + v2WaitDesc: "Wait {{value}} seconds", }, confirm: "Confirm", diff --git a/src/lang/ko.ts b/src/lang/ko.ts index d6204b74..9ba40a73 100644 --- a/src/lang/ko.ts +++ b/src/lang/ko.ts @@ -313,6 +313,10 @@ export const languageKorean = { "v2SetDisplayStateDesc": "디스플레이 상태를 {{value}}로 설정", "v2GetDisplayState": "현재 디스플레이 데이터 가져오기", "v2GetDisplayStateDesc": "현재 디스플레이 테이터 가져오기 => {{outputVar}}", + "v2UpdateGUI": "GUI 업데이트", + "v2UpdateGUIDesc": "GUI 업데이트", + "v2Wait": "기다리기", + "v2WaitDesc": "{{value}} 초 기다리기", }, "confirm": "확인", "goback": "뒤로", diff --git a/src/lib/SideBars/Scripts/TriggerList2.svelte b/src/lib/SideBars/Scripts/TriggerList2.svelte index 2c60a062..8f71584e 100644 --- a/src/lib/SideBars/Scripts/TriggerList2.svelte +++ b/src/lib/SideBars/Scripts/TriggerList2.svelte @@ -31,6 +31,8 @@ 'v2ConsoleLog', 'v2StopTrigger', 'v2Random', + 'v2UpdateGUI', + 'v2Wait', //Chat 'v2CutChat', @@ -647,6 +649,22 @@ } break; } + case 'v2UpdateGUI':{ + editTrigger = { + type: 'v2UpdateGUI', + indent: 0 + } + break; + } + case 'v2Wait':{ + editTrigger = { + type: 'v2Wait', + value: '1', + valueType: 'value', + indent: 0 + } + break; + } } } @@ -1459,6 +1477,13 @@ {language.var} + {:else if editTrigger.type === 'v2Wait'} + {language.value} + + {language.value} + {language.var} + + {:else} {language.noConfig} {/if} diff --git a/src/ts/process/triggers.ts b/src/ts/process/triggers.ts index 3ae324d4..f6b86301 100644 --- a/src/ts/process/triggers.ts +++ b/src/ts/process/triggers.ts @@ -37,7 +37,7 @@ export type triggerEffectV2 = triggerV2Header|triggerV2IfVar|triggerV2Else|tri triggerV2SetCharacterDesc|triggerV2MakeArrayVar|triggerV2GetArrayVarLength|triggerV2GetArrayVar|triggerV2SetArrayVar| triggerV2PushArrayVar|triggerV2PopArrayVar|triggerV2ShiftArrayVar|triggerV2UnshiftArrayVar|triggerV2SpliceArrayVar|triggerV2GetFirstMessage| triggerV2SliceArrayVar|triggerV2GetIndexOfValueInArrayVar|triggerV2RemoveIndexFromArrayVar|triggerV2ConcatString|triggerV2GetLastUserMessage| - triggerV2GetLastCharMessage|triggerV2GetAlertInput|triggerV2GetDisplayState|triggerV2SetDisplayState + triggerV2GetLastCharMessage|triggerV2GetAlertInput|triggerV2GetDisplayState|triggerV2SetDisplayState|triggerV2UpdateGUI|triggerV2Wait export type triggerConditionsVar = { type:'var'|'value' @@ -625,6 +625,18 @@ export type triggerV2SetDisplayState = { indent: number } +export type triggerV2UpdateGUI = { + type: 'v2UpdateGUI', + indent: number +} + +export type triggerV2Wait = { + type: 'v2Wait', + value: string, + valueType: 'var'|'value', + indent: number +} + export const displayAllowList = [ 'v2GetDisplayState', 'v2SetDisplayState', @@ -1683,6 +1695,15 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{ arg.displayData = effect.valueType === 'value' ? risuChatParser(effect.value,{chara:char}) : getVar(risuChatParser(effect.value,{chara:char})) break } + case 'v2UpdateGUI':{ + ReloadGUIPointer.set(get(ReloadGUIPointer) + 1) + break + } + case 'v2Wait':{ + let value = effect.valueType === 'value' ? Number(risuChatParser(effect.value,{chara:char})) : Number(getVar(risuChatParser(effect.value,{chara:char}))) + await sleep(value * 1000) + break + } } } }