163 lines
8.0 KiB
Plaintext
163 lines
8.0 KiB
Plaintext
|
local gc = game.translate_string
|
||
|
local blue_clr = utils_xml.get_color("d_blue")
|
||
|
local red_clr = strformat("%c[%s,%s,%s,%s]", 255, 250, 50, 50) -- bad shit
|
||
|
local white_clr = strformat("%c[%s,%s,%s,%s]", 255, 255, 255, 255)
|
||
|
local teal_clr = strformat("%c[%s,%s,%s,%s]", 255, 150, 250, 240) -- for non-stat properties
|
||
|
local green_clr = utils_xml.get_color("d_green")
|
||
|
local def_clr = utils_xml.get_color("ui_gray_2")
|
||
|
local title_clr = utils_xml.get_color("ui_gray_3")
|
||
|
|
||
|
local bhs_display_numeric_at = 12
|
||
|
local bhs_show_numeric_always = true
|
||
|
|
||
|
local dbg = false
|
||
|
function pr(...)
|
||
|
if not dbg then return end
|
||
|
printf(...)
|
||
|
end
|
||
|
|
||
|
BuildFooter = ui_item.build_desc_footer
|
||
|
function ui_item.build_desc_footer(obj, sec, str)
|
||
|
if zzz_player_injuries.healonelist[sec] or zzz_player_injuries.healhelplist[sec] or zzz_player_injuries.painkillerlist[sec] or zzz_player_injuries.surgerylist[sec] or zzz_player_injuries.splintlist[sec] or (zzz_player_injuries.bhs_exp_mode and zzz_player_injuries.exp_druglist[sec]) then
|
||
|
printf("Changed desc for %s", sec)
|
||
|
str = str or gc(ini_sys:r_string_ex(sec, "description"))
|
||
|
if (not str) then return "" end
|
||
|
str = str .. title_clr .. gc("desc_over_bhs") .. def_clr .. " \\n"
|
||
|
local bhs_str = bhs_descr_str(obj, sec)
|
||
|
str = str .. bhs_str
|
||
|
str = str .. " \\n"
|
||
|
else
|
||
|
return BuildFooter(obj, sec, str)
|
||
|
end
|
||
|
return str
|
||
|
end
|
||
|
|
||
|
function get_local_val(path, script_name, str_to_find)
|
||
|
if _G[script_name] then
|
||
|
|
||
|
if not file_exists(path) then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
for line in io.lines(path) do
|
||
|
if string.find(line, str_to_find) then
|
||
|
_,_, loc_val = string.find(line, "start_blur_4%s*=%s*(%d+)") -- RavenAscendant carried
|
||
|
if type(tonumber(loc_val)) == "number" then
|
||
|
return loc_val
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function file_exists(name)
|
||
|
local f = io.open(name, "r")
|
||
|
if f ~= nil then
|
||
|
io.close(f)
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- BHS
|
||
|
function bhs_descr_str(obj, obj_sec)
|
||
|
|
||
|
local _str = ""
|
||
|
local blue_main = utils_xml.get_color("d_blue")
|
||
|
local blue_clr = strformat("%c[%s,%s,%s,%s]", 255, 74, 134, 232)
|
||
|
local yel_clr = strformat("%c[%s,%s,%s,%s]", 0, 252, 186, 3)
|
||
|
local grey_clr = utils_xml.get_color("ui_gray_2")
|
||
|
|
||
|
-- get string
|
||
|
local function build_string(t_name, sec, color)
|
||
|
local hphealed_str = ""
|
||
|
local head_str = ""
|
||
|
local torso_str = ""
|
||
|
local arm_str = ""
|
||
|
local leg_str = ""
|
||
|
local healpower_str = ""
|
||
|
local timeregen_str = ""
|
||
|
local painkillerpower_str = ""
|
||
|
local painkillerdur_str = ""
|
||
|
local splint_str = ""
|
||
|
local surgery_str = ""
|
||
|
local restore_str = ""
|
||
|
local restoretime_str = ""
|
||
|
if sec and t_name[sec] then
|
||
|
for limb, val in pairs(t_name[sec]) do
|
||
|
if limb == "healamount" then
|
||
|
hphealed_str = grey_clr .. color .. "+" .. val .. " " .. gc("st_bhs_limb_hp")
|
||
|
elseif limb == "head" then
|
||
|
head_str = grey_clr .. gc("st_bhs_head_str") .. color .. (val) .. "%" .. " "
|
||
|
elseif limb == "torso" then
|
||
|
torso_str = grey_clr .. gc("st_bhs_torso_str") .. color .. (val) .. "%" .. " "
|
||
|
elseif limb == "rightarm" then
|
||
|
arm_str = grey_clr .. gc("st_bhs_rightarm_str") .. color .. (val) .. "%" .. " "
|
||
|
elseif limb == "rightleg" then
|
||
|
leg_str = grey_clr .. gc("st_bhs_rightleg_str") .. color .. (val) .. "%" .. " "
|
||
|
elseif limb == "healtimer" and zzz_player_injuries.medkits_heal_logic==2 then
|
||
|
timeregen_str = grey_clr .. gc("desc_over_over") .. " " .. color .. ((val / 1000)*t_name[sec].healamount) .. " " .. gc("desc_over_sec") .. " "
|
||
|
elseif limb == "healtimer" and zzz_player_injuries.medkits_heal_logic==1 then
|
||
|
timeregen_str = grey_clr .. gc("desc_over_over") .. " " .. color .. ((val / 1000)*t_name[sec].head) .. " " .. gc("desc_over_sec") .. " "
|
||
|
elseif limb == "healpower" then
|
||
|
if val == 0 then text=gc("st_bhs_currhp")
|
||
|
else text = val*100 .. "%" end
|
||
|
healpower_str = grey_clr .. gc("st_bhs_upto") .. " " .. color .. text .. " max. "
|
||
|
elseif limb == "painkillerpower" then
|
||
|
painkillerpower_str = grey_clr .. gc("st_bhs_painkillerlvl") .. " " .. color .. val
|
||
|
elseif limb == "painkillerduration" then
|
||
|
painkillerdur_str = grey_clr .. gc("st_bhs_for") .. " " .. color .. (val / 1000) .. " " .. gc("desc_over_sec")
|
||
|
elseif limb == "splintamount" then
|
||
|
splint_str = grey_clr .. gc("st_bhs_splints") .. " "
|
||
|
elseif limb == "surgeryamount" then
|
||
|
surgery_str = grey_clr .. gc("st_bhs_surgerys") .. " "
|
||
|
elseif limb == "restorepower" then
|
||
|
restore_str = grey_clr .. color .. (val*ini_sys:r_float_ex(sec, "boost_time"))*100 .. "%" .. " " .. gc("st_bhs_main_hp")
|
||
|
elseif limb == "restoretime" then
|
||
|
restoretime_str = grey_clr .. gc("desc_over_over") .. " " .. color .. val .. " " .. gc("desc_over_sec") .. " "
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
--local main_string = head_str .. torso_str .. arm_str .. leg_str .. (timeregen_str ~= "" and (" " .. timeregen_str) or "")
|
||
|
local main_string = (hphealed_str ~= "" and (" " .. hphealed_str) or "") .. (timeregen_str ~= "" and (" " .. timeregen_str) or "") .. (healpower_str ~= "" and (" " .. healpower_str) or "") .. (head_str ~= "" and (" " .. head_str) or "") .. (torso_str ~= "" and (" " .. torso_str) or "") .. (arm_str ~= "" and (" " .. arm_str) or "") .. (leg_str ~= "" and (" " .. leg_str) or "") .. (painkillerpower_str ~= "" and (" " .. painkillerpower_str) or "") .. (painkillerdur_str ~= "" and (" " .. painkillerdur_str) or "") .. (surgery_str ~= "" and (" " .. surgery_str) or "") .. (splint_str ~= "" and (" " .. splint_str) or "") .. (restore_str ~= "" and (" " .. restore_str) or "") .. (restoretime_str ~= "" and (" " .. restoretime_str) or "")
|
||
|
-- printf("main_string: [%s]", main_string)
|
||
|
return main_string
|
||
|
end
|
||
|
|
||
|
local medkits_pre = " " .. blue_main .. gc("st_bhs_mihail_krug") .. " " .. blue_clr .. " " .. gc("st_bhs_heals") .. " "
|
||
|
local medkits_str = build_string(zzz_player_injuries.healonelist, obj_sec, blue_clr)
|
||
|
local healhelp_pre = " " .. blue_main .. gc("st_bhs_mihail_krug") .. " " .. blue_clr .. " " .. gc("st_bhs_heals") .. " "
|
||
|
local healhelp_str = build_string(zzz_player_injuries.healhelplist, obj_sec, blue_clr)
|
||
|
local surgerys_pre = " " .. blue_main .. gc("st_bhs_mihail_krug") .. " " .. blue_clr .. " " .. gc("st_bhs_surgery") .. " "
|
||
|
local surgerys_str = build_string(zzz_player_injuries.surgerylist, obj_sec, blue_clr)
|
||
|
local splints_pre = " " .. blue_main .. gc("st_bhs_mihail_krug") .. " " .. blue_clr .. " " .. gc("st_bhs_splint") .. " "
|
||
|
local splints_str = build_string(zzz_player_injuries.splintlist, obj_sec, blue_clr)
|
||
|
local painkillers_pre = " " .. yel_clr .. gc("st_bhs_mihail_krug") .. " " .. yel_clr .. " " .. gc("st_bhs_painkiller") .. " "
|
||
|
local painkillers_str = build_string(zzz_player_injuries.painkillerlist, obj_sec, yel_clr)
|
||
|
local bhs_exp_pre = " " .. green_clr .. gc("st_bhs_mihail_krug") .. " " .. green_clr .. " " .. gc("st_bhs_restore") .. " "
|
||
|
local bhs_exp_str = build_string(zzz_player_injuries.exp_druglist, obj_sec, green_clr)
|
||
|
|
||
|
-- printf("obj_sec: [ %s ] || medkits_str: [ %s ] || healhelp_str: [ %s ]", obj_sec, medkits_str ~= "" and true or false, healhelp_str ~= "" and true or false)
|
||
|
if medkits_str ~= "" and painkillers_str ~= "" then
|
||
|
_str = medkits_pre .. medkits_str .. "\\n" .. painkillers_pre .. painkillers_str .. grey_clr .. "\\n"
|
||
|
elseif healhelp_str ~= "" and painkillers_str ~= "" then
|
||
|
_str = healhelp_pre .. healhelp_str .. "\\n" .. painkillers_pre .. painkillers_str .. grey_clr .. "\\n"
|
||
|
elseif medkits_str ~= "" and bhs_exp_str ~= "" and zzz_player_injuries.bhs_exp_mode then
|
||
|
_str = medkits_pre .. medkits_str .. "\\n" .. bhs_exp_pre .. bhs_exp_str .. grey_clr .. "\\n"
|
||
|
elseif medkits_str ~= "" then
|
||
|
_str = medkits_pre .. medkits_str .. grey_clr .. "\\n"
|
||
|
elseif healhelp_str ~= "" then
|
||
|
_str = healhelp_pre .. healhelp_str .. grey_clr .. "\\n"
|
||
|
elseif splints_str ~= "" then
|
||
|
_str = splints_pre .. splints_str .. grey_clr .. "\\n"
|
||
|
elseif painkillers_str ~= "" then
|
||
|
_str = painkillers_pre .. painkillers_str .. grey_clr .. "\\n"
|
||
|
elseif surgerys_str ~= "" then
|
||
|
_str = surgerys_pre .. surgerys_str .. grey_clr .. "\\n"
|
||
|
elseif bhs_exp_str ~= "" and zzz_player_injuries.bhs_exp_mode then
|
||
|
_str = bhs_exp_pre .. bhs_exp_str .. grey_clr .. "\\n"
|
||
|
end
|
||
|
|
||
|
return _str
|
||
|
end
|