diff --git a/.vscode/settings.json b/.vscode/settings.json index a83b313e..bcad2d74 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,13 @@ { - "Lua.runtime.version": "LuaJIT" + "Lua.runtime.version": "LuaJIT", + "Lua.diagnostics.disable": [ + "cast-local-type", + "param-type-mismatch", + "undefined-global", + "need-check-nil" + ], + "Lua.diagnostics.globals": [ + "wait", + "async" + ] } \ No newline at end of file diff --git a/quant.ew/files/resource/entities/client.xml b/quant.ew/files/resource/entities/client.xml index 181ddc0a..3eb2392e 100644 --- a/quant.ew/files/resource/entities/client.xml +++ b/quant.ew/files/resource/entities/client.xml @@ -309,10 +309,6 @@ eating_cells_per_frame="2" > - - - - 0.05 then + GamePrint("Removing "..effect_by_index[index]) + EntityRemoveStainStatusEffect(entity, effect_by_index[index]) + end + end +end + +function module.on_world_update() + if GameGetFrameNum() % 30 ~= 13 then + return + end + local entity = ctx.my_player.entity + local effect_data = EntityGetFirstComponent(entity, "StatusEffectDataComponent") + if effect_data == nil or effect_data == 0 then + return + end + + local stains = ComponentGetValue2(effect_data, "stain_effects") + local present_stains = {} + -- For some reason whatever value is at index 1 isn't used? + for i=2, #stains do + table.insert(present_stains, stains[i] > 0.05) + if stains[i] > 0.05 then + GamePrint(effect_by_index[i-1]) + end + end + rpc.send_present_stains(present_stains) +end + +return module diff --git a/quant.ew/files/system/player/unmodified_base.xml b/quant.ew/files/system/player/unmodified_base.xml index 0a240a6b..69e62113 100644 --- a/quant.ew/files/system/player/unmodified_base.xml +++ b/quant.ew/files/system/player/unmodified_base.xml @@ -310,9 +310,6 @@ > - - -