Added DPS, missing offsets and additional options.

This commit is contained in:
GreenComfyTea
2022-02-16 21:02:34 +02:00
parent fa494d7d56
commit 39e324e0a5
17 changed files with 1057 additions and 200 deletions

View File

@@ -27,7 +27,7 @@ function singletons.init_message_manager()
singletons.message_manager = sdk.get_managed_singleton("snow.gui.MessageManager");
if singletons.message_manager == nil then
log.error("[MHR Overlay] No message manager");
--log.error("[MHR Overlay] No message manager");
end
return singletons.message_manager;
@@ -40,7 +40,7 @@ function singletons.init_enemy_manager()
singletons.enemy_manager = sdk.get_managed_singleton("snow.enemy.EnemyManager");
if singletons.enemy_manager == nil then
log.error("[MHR Overlay] No enemy manager");
--log.error("[MHR Overlay] No enemy manager");
end
return singletons.enemy_manager;
@@ -53,7 +53,7 @@ function singletons.init_lobby_manager()
singletons.lobby_manager = sdk.get_managed_singleton("snow.LobbyManager");
if singletons.lobby_manager == nil then
log.error("[MHR Overlay] No lobby manager");
--log.error("[MHR Overlay] No lobby manager");
return false;
end
@@ -67,7 +67,7 @@ function singletons.init_progress_manager()
singletons.progress_manager = sdk.get_managed_singleton("snow.progress.ProgressManager");
if singletons.progress_manager == nil then
log.error("[MHR Overlay] No progress manager");
--log.error("[MHR Overlay] No progress manager");
return false;
end
@@ -81,7 +81,7 @@ function singletons.init_quest_manager()
singletons.quest_manager = sdk.get_managed_singleton("snow.QuestManager");
if singletons.quest_manager == nil then
log.error("[MHR Overlay] No quest manager");
--log.error("[MHR Overlay] No quest manager");
end
return singletons.quest_manager;
@@ -94,7 +94,7 @@ function singletons.init_player_manager()
singletons.player_manager = sdk.get_managed_singleton("snow.player.PlayerManager");
if singletons.player_manager == nil then
log.error("[MHR Overlay] No player manager");
--log.error("[MHR Overlay] No player manager");
end
return singletons.player_manager;
@@ -107,7 +107,7 @@ function singletons.init_village_area_manager()
singletons.village_area_manager = sdk.get_managed_singleton("snow.VillageAreaManager");
if singletons.village_area_manager == nil then
log.error("[MHR Overlay] No village manager");
--log.error("[MHR Overlay] No village area manager");
end
return singletons.village_area_manager;
@@ -120,7 +120,7 @@ function singletons.init_gui_manager()
singletons.gui_manager = sdk.get_managed_singleton("snow.gui.GuiManager");
if singletons.gui_manager == nil then
log.error("[MHR Overlay] No gui manager");
--log.error("[MHR Overlay] No gui manager");
end
return singletons.gui_manager;

View File

@@ -0,0 +1,78 @@
local time = {};
local singletons;
local customization_menu;
local player;
local config;
local quest_manager_type_def = sdk.find_type_definition("snow.QuestManager");
local get_quest_elapsed_time_min_method = quest_manager_type_def:get_method("getQuestElapsedTimeMin");
local get_quest_elapsed_time_sec_method = quest_manager_type_def:get_method("getQuestElapsedTimeSec");
time.total_elapsed_seconds = 0;
time.elapsed_minutes = 0;
time.elapsed_seconds = 0;
time.last_whole_seconds = 0;
function time.tick()
if singletons.quest_manager == nil then
return;
end
local quest_time_elapsed_minutes = get_quest_elapsed_time_min_method:call(singletons.quest_manager);
if quest_time_elapsed_minutes == nil then
customization_menu.status = "No quest time elapsed minutes";
return;
end
time.elapsed_minutes = quest_time_elapsed_minutes;
local quest_time_total_elapsed_seconds = get_quest_elapsed_time_sec_method:call(singletons.quest_manager);
if quest_time_total_elapsed_seconds == nil then
customization_menu.status = "No quest time total elapsed seconds";
return;
end
time.total_elapsed_seconds = quest_time_total_elapsed_seconds;
time.elapsed_seconds = quest_time_total_elapsed_seconds - quest_time_elapsed_minutes * 60;
if time.total_elapsed_seconds - time.last_whole_seconds > 1 then
time.last_whole_seconds = time.total_elapsed_seconds;
time.update_players_dps();
end
end
function time.update_players_dps()
local new_total_dps = 0;
for _, _player in pairs(player.list) do
if config.current_config.damage_meter_UI.settings.dps_mode == "Quest Time" then
if time.total_elapsed_seconds > 0 then
_player.dps = _player.display.total_damage / time.total_elapsed_seconds;
end
elseif config.current_config.damage_meter_UI.settings.dps_mode == "Join Time" then
if time.total_elapsed_seconds - _player.join_time > 0 then
_player.dps = _player.display.total_damage / (time.total_elapsed_seconds - _player.join_time);
end
elseif config.current_config.damage_meter_UI.settings.dps_mode == "First Hit" then
if time.total_elapsed_seconds - _player.first_hit_time > 0 then
_player.dps = _player.display.total_damage / (time.total_elapsed_seconds - _player.first_hit_time);
end
else
end
new_total_dps = new_total_dps + _player.dps;
end
player.total.dps = new_total_dps;
end
function time.init_module()
player = require("MHR_Overlay.Damage_Meter.player");
singletons = require("MHR_Overlay.Game_Handler.singletons");
customization_menu = require("MHR_Overlay.UI.customization_menu");
time = require("MHR_Overlay.Game_Handler.time");
config = require("MHR_Overlay.Misc.config");
end
return time;