From 5cab21449db9dd94e3b4d3d9e41713c45ad06f65 Mon Sep 17 00:00:00 2001 From: Sokomine Date: Mon, 12 Jul 2021 00:24:47 +0200 Subject: [PATCH] fixed bug in effects when the variable is nil --- fs_edit_effects.lua | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/fs_edit_effects.lua b/fs_edit_effects.lua index 2ea2693..4d89e18 100644 --- a/fs_edit_effects.lua +++ b/fs_edit_effects.lua @@ -454,19 +454,39 @@ yl_speak_up.execute_effect = function(player, n_id, o_id, r) -- quest_step and maximum are effectively the same -- TODO: later on, quest steps may be strings local var_val = yl_speak_up.get_quest_variable_value(pname, r.r_variable) - new_value = math.max(var_val, r.r_var_cmp_value) + if(var_value) then + new_value = math.max(var_val, r.r_var_cmp_value) + else + new_value = r.r_var_cmp_value + end elseif(r.r_operator and r.r_operator == "maximum") then local var_val = yl_speak_up.get_quest_variable_value(pname, r.r_variable) - new_value = math.max(var_val, r.r_var_cmp_value) + if(var_value) then + new_value = math.max(var_val, r.r_var_cmp_value) + else + new_value = r.r_var_cmp_value + end elseif(r.r_operator and r.r_operator == "minimum") then local var_val = yl_speak_up.get_quest_variable_value(pname, r.r_variable) - new_value = math.min(var_val, r.r_var_cmp_value) + if(var_value) then + new_value = math.min(var_val, r.r_var_cmp_value) + else + new_value = r.r_var_cmp_value + end elseif(r.r_operator and r.r_operator == "increment") then local var_val = yl_speak_up.get_quest_variable_value(pname, r.r_variable) - new_value = var_val + r.r_var_cmp_value + if(var_value) then + new_value = var_val + r.r_var_cmp_value + else + new_value = r.r_var_cmp_value + end elseif(r.r_operator and r.r_operator == "decrement") then local var_val = yl_speak_up.get_quest_variable_value(pname, r.r_variable) - new_value = var_val - r.r_var_cmp_value + if(var_value) then + new_value = var_val + r.r_var_cmp_value + else + new_value = -1 * r.r_var_cmp_value + end else yl_speak_up.debug_msg(player, n_id, o_id, tostring(r.r_id).." ".. "state: Unsupported type: "..tostring(r.r_value)..".")