56 Commits

Author SHA1 Message Date
GreenComfyTea
e0e7c9d824 Update README.md 2024-06-29 10:47:58 +03:00
GreenComfyTea
3bd627fdfb Update README.md 2024-06-29 10:47:36 +03:00
GreenComfyTea
beeb45db46 Bump version to v2.7.2 2024-06-29 10:39:08 +03:00
GreenComfyTea
a82168fc4e Micro optimizations 2024-06-29 10:38:51 +03:00
GreenComfyTea
d62a72a778 [Monster UI] Fix an issue when run away monsters UI was not disappearing 2024-06-29 10:38:29 +03:00
GreenComfyTea
2390bfe8ac Bump version to v2.7.1 2024-05-23 18:35:07 +03:00
GreenComfyTea
7398bab9ea [Buff UI] Fix buffs not working when Sorting by Timer/Duration is selected 2024-05-12 10:26:43 +03:00
GreenComfyTea
877a48583a Update russian localization 2024-05-11 08:26:14 +03:00
GreenComfyTea
ee6dfe2139 Hide some errors 2024-05-11 08:06:20 +03:00
GreenComfyTea
d4c52617d9 Add Endemic Life Head Tracking 2024-05-06 19:08:08 +03:00
GreenComfyTea
30d858b1f8 Bump version to 2.7 2024-05-06 18:45:16 +03:00
GreenComfyTea
3c8f5019ab Grammar 2024-05-06 18:44:49 +03:00
GreenComfyTea
4caa69930d Add Small and Large Monster Head Tracking 2024-05-06 18:44:33 +03:00
GreenComfyTea
874c89daa5 Update README.md 2024-04-10 13:53:11 +03:00
GreenComfyTea
26590a3e0b Bump version to v2.6.6 2024-03-01 16:57:15 +02:00
GreenComfyTea
1439498a67 [Hunting Horn -> Bead of Resonance]: Fixed in online when not host 2024-03-01 16:57:01 +02:00
GreenComfyTea
6a876ccdb4 Revert "Whitelist default.json localization file"
This reverts commit 9560dad602.
2024-02-09 10:48:45 +02:00
GreenComfyTea
9560dad602 Whitelist default.json localization file 2024-02-09 10:46:56 +02:00
GreenComfyTea
032b77ca95 Bump version to v2.6.5 2024-02-09 10:42:53 +02:00
GreenComfyTea
efdaae5b5a Formatting 2024-02-09 10:42:37 +02:00
GreenComfyTea
419d25070b Make keyboard.update() event-based 2024-02-09 10:42:21 +02:00
GreenComfyTea
bee2e7d873 Update README.md 2024-01-27 13:43:29 +02:00
GreenComfyTea
9bcc1142f6 Update README.md 2024-01-22 20:23:21 +02:00
GreenComfyTea
afec53e5f1 Bump version to 2.6.4 2024-01-22 19:38:42 +02:00
GreenComfyTea
b3cfa61660 Buff UI -> Fix Rampage Skills filters not working 2024-01-22 19:38:11 +02:00
GreenComfyTea
2f10a5d9e5 Buff UI -> Fix Harvest Moon not getting cleared when the buff expires or when skill is switched 2024-01-22 19:37:42 +02:00
GreenComfyTea
0dc74d4cc9 Buff UI -> Clear buff data on error 2024-01-22 19:36:12 +02:00
GreenComfyTea
9b82e27725 Bump version to 2.6.3 2023-10-29 15:36:43 +02:00
GreenComfyTea
2a3c8106d5 Fix: Power Shealthe, Sonic Boom, Bead of Resonance 2023-10-29 15:36:26 +02:00
GreenComfyTea
3b89ce8303 Bump version to v2.6.2 2023-10-24 10:15:42 +03:00
GreenComfyTea
f2e23626cf Fix creating DEFAULT file in /data/ when no config 2023-10-24 10:15:19 +03:00
GreenComfyTea
8a55873e14 Bump version to 2.6.1 2023-10-16 08:56:48 +03:00
GreenComfyTea
b93bdd0338 Add Buff UI and Stats UI to Hotkeys
+ Fix a Bug when Removed Hotkey was not Saved in the Config
+ Allow Changing Selected Hotkey when Any Other Hotkey is Waiting for a Keypress
2023-10-16 08:55:46 +03:00
GreenComfyTea
f01ec08990 Merge branch 'main' of https://github.com/GreenComfyTea/MHR-Overlay 2023-10-10 12:56:26 +03:00
GreenComfyTea
b6ed4f036a Adjust Dragon Conversion Buff Names 2023-10-10 12:56:18 +03:00
GreenComfyTea
fedf5bc7af Update README.md 2023-10-10 12:54:29 +03:00
GreenComfyTea
009eb9ffb0 Add Missing Might Seed Buff Filter 2023-10-10 12:30:19 +03:00
GreenComfyTea
b8a7f109e0 Add Missing Falling Asleep Buff Filter 2023-10-10 12:28:25 +03:00
GreenComfyTea
51b824e385 Update README.md 2023-10-10 11:08:50 +03:00
GreenComfyTea
c8bd65556e Fix Unicode Ranges 2023-10-10 10:57:07 +03:00
GreenComfyTea
0781662344 Update Unicode Ranges 2023-10-10 10:17:36 +03:00
GreenComfyTea
5bdcd1b9cf Update NotoSans-CJK Fonts to v2.004 2023-10-10 09:55:02 +03:00
GreenComfyTea
305a78b654 Add NotoSansArabic-Bold.otf Font 2023-10-10 09:30:38 +03:00
GreenComfyTea
6236c1e088 Add Missing NotoSans-Bold.otf Font 2023-10-10 09:28:41 +03:00
GreenComfyTea
ba571b0426 Update ru-ru.json to v2.6 + Add Buff Include Name 2023-10-09 17:46:29 +03:00
GreenComfyTea
2c7c229ec9 Add ID to Endemic Life Name Label 2023-10-09 15:19:54 +03:00
GreenComfyTea
39dbd23791 Change Default Customization Menu Font Size to 16 2023-10-09 15:00:42 +03:00
GreenComfyTea
96407c07bf Bump version to v2.6 2023-10-09 14:59:21 +03:00
GreenComfyTea
1f3a7d2bf8 Use Buff Filter Name frrom Localization File
+ Sort Names in English + Use NotoSans-Bold as Default Font
2023-10-09 14:58:10 +03:00
GreenComfyTea
423635400c Implement Buff Customization by Type 2023-09-30 11:03:25 +03:00
GreenComfyTea
17b89d3d7f Fix Include -> Skill Level Not Working 2023-09-30 11:02:38 +03:00
GreenComfyTea
c3d78705a3 Add Missing skill_level Translation String 2023-09-30 11:01:21 +03:00
GreenComfyTea
764b72f0ea Add buff types back 2023-09-30 10:06:04 +03:00
GreenComfyTea
df43908a31 Add Option to Set Infinite Buffs Location 2023-09-26 14:02:48 +03:00
GreenComfyTea
0f72fba92d Remove debug data 2023-09-26 13:15:25 +03:00
GreenComfyTea
e586534c4d Add Timer Delays Customization 2023-09-26 13:14:23 +03:00
51 changed files with 4314 additions and 1987 deletions

View File

@@ -34,14 +34,14 @@
<img alt="Platform" src="https://custom-icon-badges.demolab.com/badge/platform-win%20%7C%20linux%20%7C%20steam%20deck-blue?logo=device-desktop" /> <img alt="Platform" src="https://custom-icon-badges.demolab.com/badge/platform-win%20%7C%20linux%20%7C%20steam%20deck-blue?logo=device-desktop" />
</a> </a>
<a href=""> <a href="">
<img alt="Maintenance" src="https://custom-icon-badges.demolab.com/maintenance/yes/2023?logo=tools" /> <img alt="Maintenance" src="https://custom-icon-badges.demolab.com/maintenance/yes/2024?logo=tools" />
</a> </a>
<br> <br>
<a href="https://www.nexusmods.com/monsterhunterrise/mods/26"> <a href="https://www.nexusmods.com/monsterhunterrise/mods/26">
<img alt="REFramework Dependency" src="https://custom-icon-badges.demolab.com/badge/dependency-REFramework%20v1.503%2B-green?logo=package-dependencies" /> <img alt="REFramework Dependency" src="https://custom-icon-badges.demolab.com/badge/dependency-REFramework%20v1.5.6%2B-green?logo=package-dependencies" />
</a> </a>
<a href="https://www.nexusmods.com/monsterhunterrise/mods/134"> <a href="https://www.nexusmods.com/monsterhunterrise/mods/134">
<img alt="REFramework Direct2D Dependency" src="https://custom-icon-badges.demolab.com/badge/dependency-REFramework%20Direct2D%20v0.4.0%2B-yellow?logo=package-dependencies" /> <img alt="REFramework Direct2D Dependency" src="https://custom-icon-badges.demolab.com/badge/dependency-REFramework%20Direct2D%20v1.0.1%2B-green?logo=package-dependencies" />
</a> </a>
<br> <br>
<br> <br>
@@ -135,33 +135,34 @@
* **[Troubleshooting](https://github.com/GreenComfyTea/MHR-Overlay/wiki/Troubleshooting)** * **[Troubleshooting](https://github.com/GreenComfyTea/MHR-Overlay/wiki/Troubleshooting)**
# Requirements # Requirements
1. [REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26) (v1.503+); 1. **[REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26)** (v1.503+);
2. [REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134) (v0.4.0+) - Needed for Unicode Support. 2. **[REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134)** (v1.0.0+) - Needed for Unicode Support.
# How to install: # How to install:
1. Install [REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26); 1. Install **[REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26)**;
2. Install [REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134); 2. Install **[REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134)**;
>**:pushpin: Windows:** Works normally. >**:pushpin: Windows:** Works normally.
>**:pushpin: Linux:** Latest Experimental Proton seems to have it working normally as well (https://github.com/cursey/reframework-d2d/issues/5). >**:pushpin: Linux:** Latest Experimental Proton seems to have it working normally as well (https://github.com/cursey/reframework-d2d/issues/5).
>**:pushpin: Steam Deck:** I've seen people getting it working but I don't have the exact instructions. You will have to figure it out yourself and/or search the nexus pages for information ([REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26?tab=description), [REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134), [MHR Overlay](https://www.nexusmods.com/monsterhunterrise/mods/50)). >**:pushpin: Steam Deck:** I've seen people getting it working but I don't have the exact instructions. You will have to figure it out yourself and/or search the nexus pages for information (**[REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26?tab=description)**, **[REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134)**, **[MHR Overlay](https://www.nexusmods.com/monsterhunterrise/mods/50)**).
3. Download the mod: 3. Download the mod:
* Official release can be downloaded from [Nexus Mods](https://www.nexusmods.com/monsterhunterrise/mods/50); * Official release can be downloaded from **[Nexus Mods](https://www.nexusmods.com/monsterhunterrise/mods/50)**;
* Nightly builds are available in [this repo](https://github.com/GreenComfyTea/MHR-Overlay) and can contain broken functionality, debugging info on screen, bugs and might require the latest [nightly build](https://github.com/praydog/REFramework-nightly/releases) of [REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26). Use with caution! * Nightly builds are available in **[this repo](https://github.com/GreenComfyTea/MHR-Overlay)** and can contain broken functionality, debugging info on screen, bugs and might require the latest **[nightly build](https://github.com/praydog/REFramework-nightly/releases)** of **[REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26)**. Use with caution!
4. Extract the mod from the archive and place it in MonsterHunterRise folder. Refer to [FAQ](https://github.com/GreenComfyTea/MHR-Overlay/wiki/FAQ) to verify how the file hierarchy should look like if everything is done correctly. 4. Extract the mod from the archive and place it in MonsterHunterRise folder. Refer to **[FAQ](https://github.com/GreenComfyTea/MHR-Overlay/wiki/FAQ)** to verify how the file hierarchy should look like if everything is done correctly.
# Credits # Credits
**GreenComfyTea** - creator of the mod and it's main contributor. **[GreenComfyTea](https://github.com/GreenComfyTea)** - creator of the mod and it's main contributor.
**cursecat** - creator of [REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26), [REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134) plugin and [Monster Has HP Bar](https://www.nexusmods.com/monsterhunterrise/mods/43) mod, which provided an example on how to retrieve monster HP data. **[cursey](https://github.com/cursey)** - creator of [REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26), [REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134) plugin and [Monster Has HP Bar](https://www.nexusmods.com/monsterhunterrise/mods/43) mod, which provided an example on how to retrieve monster HP data.
**praydog2** - creator of [REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26). Contributed huge improvements to the performance of the mod. **[praydog](https://github.com/praydog)** - creator of [REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26). Contributed huge improvements to the performance of the mod.
**coavins** - creator of [coavins damage meter](https://www.nexusmods.com/monsterhunterrise/mods/68) mod. **[coavins](https://github.com/coavins)** - creator of [coavins damage meter](https://www.nexusmods.com/monsterhunterrise/mods/68) mod.
**[lingsamuel](https://github.com/lingsamuel)** - creator of [Data Reporter and Buff Notification](https://www.nexusmods.com/monsterhunterrise/mods/1609) mod.
**neatnet** - Korean translation. **[neatnet](https://github.com/neatnet)** - Korean translation.
**s9000008, mcc1** - Traditional Chinese translation. **[s9000008](https://github.com/s9000008)**, **[mcc1](https://github.com/mcc1)** - Traditional Chinese translation.
**etnAtker**, **sukiqwq** - Simplified Chinese translation. **[etnAtker](https://github.com/etnAtker)**, **[sukiqwq](https://github.com/sukiqwq)** - Simplified Chinese translation.
**AKILAND0214** - Japanese translation. **[AKILAND0214](https://github.com/AKILAND0214)** - Japanese translation.
*** ***
# Support # Support

View File

@@ -271,14 +271,16 @@ log.info("[MHR Overlay] Loaded.");
-- #region -- #region
local function update_modules(module_visibility_config, flow_state_name) local function update_modules(module_visibility_config, flow_state_name)
if module_visibility_config.small_monster_UI and config.current_config.small_monster_UI.enabled then local current_config = config.current_config;
if module_visibility_config.small_monster_UI and current_config.small_monster_UI.enabled then
local success, error = pcall(small_monster_UI.update); local success, error = pcall(small_monster_UI.update);
if not success then if not success then
error_handler.report("MHR_Overlay.update_modules", string.format("[%s] Small Monster UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.update_modules", string.format("[%s] Small Monster UI: %s", flow_state_name, tostring(error)));
end end
end end
local large_monster_UI_config = config.current_config.large_monster_UI; local large_monster_UI_config = current_config.large_monster_UI;
local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_config.large_monster_dynamic_UI; local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_config.large_monster_dynamic_UI;
local static_enabled = large_monster_UI_config.static.enabled and module_visibility_config.large_monster_static_UI; local static_enabled = large_monster_UI_config.static.enabled and module_visibility_config.large_monster_static_UI;
@@ -291,21 +293,21 @@ local function update_modules(module_visibility_config, flow_state_name)
end end
end end
if config.current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then if current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then
local success, error = pcall(damage_meter_UI.update); local success, error = pcall(damage_meter_UI.update);
if not success then if not success then
error_handler.report("MHR_Overlay.update_modules", string.format("[%s] Damage Meter UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.update_modules", string.format("[%s] Damage Meter UI: %s", flow_state_name, tostring(error)));
end end
end end
if config.current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then if current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then
local success, error = pcall(env_creature_UI.update); local success, error = pcall(env_creature_UI.update);
if not success then if not success then
error_handler.report("MHR_Overlay.update_modules", string.format("[%s] Endemic Life UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.update_modules", string.format("[%s] Endemic Life UI: %s", flow_state_name, tostring(error)));
end end
end end
if config.current_config.buff_UI.enabled and module_visibility_config.buff_UI then if current_config.buff_UI.enabled and module_visibility_config.buff_UI then
local success, error = pcall(buff_UI.update); local success, error = pcall(buff_UI.update);
if not success then if not success then
error_handler.report("MHR_Overlay.update_modules", string.format("[%s] Buff UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.update_modules", string.format("[%s] Buff UI: %s", flow_state_name, tostring(error)));
@@ -314,14 +316,16 @@ local function update_modules(module_visibility_config, flow_state_name)
end end
local function draw_modules(module_visibility_config, flow_state_name) local function draw_modules(module_visibility_config, flow_state_name)
if module_visibility_config.small_monster_UI and config.current_config.small_monster_UI.enabled then local current_config = config.current_config;
if module_visibility_config.small_monster_UI and current_config.small_monster_UI.enabled then
local success, error = pcall(small_monster_UI.draw); local success, error = pcall(small_monster_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Small Monster UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Small Monster UI: %s", flow_state_name, tostring(error)));
end end
end end
local large_monster_UI_config = config.current_config.large_monster_UI; local large_monster_UI_config = current_config.large_monster_UI;
local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_config.large_monster_dynamic_UI; local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_config.large_monster_dynamic_UI;
local static_enabled = large_monster_UI_config.static.enabled and module_visibility_config.large_monster_static_UI; local static_enabled = large_monster_UI_config.static.enabled and module_visibility_config.large_monster_static_UI;
@@ -334,35 +338,35 @@ local function draw_modules(module_visibility_config, flow_state_name)
end end
end end
if config.current_config.time_UI.enabled and module_visibility_config.time_UI then if current_config.time_UI.enabled and module_visibility_config.time_UI then
local success, error = pcall(time_UI.draw); local success, error = pcall(time_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Time UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Time UI: %s", flow_state_name, tostring(error)));
end end
end end
if config.current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then if current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then
local success, error = pcall(damage_meter_UI.draw); local success, error = pcall(damage_meter_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Damage Meter UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Damage Meter UI: %s", flow_state_name, tostring(error)));
end end
end end
if config.current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then if current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then
local success, error = pcall(env_creature_UI.draw); local success, error = pcall(env_creature_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Endemic Life UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Endemic Life UI: %s", flow_state_name, tostring(error)));
end end
end end
if config.current_config.buff_UI.enabled and module_visibility_config.buff_UI then if current_config.buff_UI.enabled and module_visibility_config.buff_UI then
local success, error = pcall(buff_UI.draw); local success, error = pcall(buff_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Buff UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Buff UI: %s", flow_state_name, tostring(error)));
end end
end end
if config.current_config.stats_UI.enabled and module_visibility_config.stats_UI then if current_config.stats_UI.enabled and module_visibility_config.stats_UI then
local success, error = pcall(stats_UI.draw); local success, error = pcall(stats_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Stats UI: %s", flow_state_name, tostring(error))); error_handler.report("MHR_Overlay.draw_modules", string.format("[%s] Stats UI: %s", flow_state_name, tostring(error)));
@@ -371,14 +375,18 @@ local function draw_modules(module_visibility_config, flow_state_name)
end end
local function update_UI() local function update_UI()
if quest_status.flow_state == quest_status.flow_states.IN_TRAINING_AREA then local current_config = config.current_config;
local module_visibility_config = current_config.global_settings.module_visibility;
local flow_states = quest_status.flow_states;
local large_monster_UI_config = config.current_config.large_monster_UI; if quest_status.flow_state == flow_states.IN_TRAINING_AREA then
local module_visibility_config = config.current_config.global_settings.module_visibility.in_training_area;
local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_config.large_monster_dynamic_UI; local large_monster_UI_config = current_config.large_monster_UI;
local static_enabled = large_monster_UI_config.static.enabled and module_visibility_config.large_monster_static_UI; local module_visibility_in_training_area_config = module_visibility_config.in_training_area;
local highlighted_enabled = large_monster_UI_config.highlighted.enabled and module_visibility_config.large_monster_highlighted_UI;
local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_in_training_area_config.large_monster_dynamic_UI;
local static_enabled = large_monster_UI_config.static.enabled and module_visibility_in_training_area_config.large_monster_static_UI;
local highlighted_enabled = large_monster_UI_config.highlighted.enabled and module_visibility_in_training_area_config.large_monster_highlighted_UI;
if dynamic_enabled or static_enabled or highlighted_enabled then if dynamic_enabled or static_enabled or highlighted_enabled then
local success, error = pcall(large_monster_UI.update, dynamic_enabled, static_enabled, highlighted_enabled); local success, error = pcall(large_monster_UI.update, dynamic_enabled, static_enabled, highlighted_enabled);
@@ -387,69 +395,73 @@ local function update_UI()
end end
end end
if config.current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then if current_config.damage_meter_UI.enabled and module_visibility_in_training_area_config.damage_meter_UI then
local success, error = pcall(damage_meter_UI.update); local success, error = pcall(damage_meter_UI.update);
if not success then if not success then
error_handler.report("MHR_Overlay.update_UI", string.format("[In Training Area] Damage Meter UI: %s", tostring(error))); error_handler.report("MHR_Overlay.update_UI", string.format("[In Training Area] Damage Meter UI: %s", tostring(error)));
end end
end end
if config.current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then if current_config.endemic_life_UI.enabled and module_visibility_in_training_area_config.endemic_life_UI then
local success, error = pcall(env_creature_UI.update); local success, error = pcall(env_creature_UI.update);
if not success then if not success then
error_handler.report("MHR_Overlay.update_UI", string.format("[In Training Area] Endemic Life UI: %s", tostring(error))); error_handler.report("MHR_Overlay.update_UI", string.format("[In Training Area] Endemic Life UI: %s", tostring(error)));
end end
end end
if config.current_config.buff_UI.enabled and module_visibility_config.buff_UI then if current_config.buff_UI.enabled and module_visibility_in_training_area_config.buff_UI then
local success, error = pcall(buff_UI.update); local success, error = pcall(buff_UI.update);
if not success then if not success then
error_handler.report("MHR_Overlay.update_UI", string.format("[In Training Area] Buff UI: %s", tostring(error))); error_handler.report("MHR_Overlay.update_UI", string.format("[In Training Area] Buff UI: %s", tostring(error)));
end end
end end
elseif quest_status.flow_state == quest_status.flow_states.CUTSCENE then elseif quest_status.flow_state == flow_states.CUTSCENE then
update_modules(config.current_config.global_settings.module_visibility.cutscene, "Cutscene"); update_modules(module_visibility_config.cutscene, "Cutscene");
elseif quest_status.flow_state == quest_status.flow_states.LOADING_QUEST then elseif quest_status.flow_state == flow_states.LOADING_QUEST then
update_modules(config.current_config.global_settings.module_visibility.loading_quest, "Loading Quest"); update_modules(module_visibility_config.loading_quest, "Loading Quest");
elseif quest_status.flow_state == quest_status.flow_states.QUEST_START_ANIMATION then elseif quest_status.flow_state == flow_states.QUEST_START_ANIMATION then
update_modules(config.current_config.global_settings.module_visibility.quest_start_animation, "Quest Start Animation"); update_modules(module_visibility_config.quest_start_animation, "Quest Start Animation");
elseif quest_status.flow_state >= quest_status.flow_states.PLAYING_QUEST and quest_status.flow_state <= quest_status.flow_states.WYVERN_RIDING_START_ANIMATION then elseif quest_status.flow_state >= flow_states.PLAYING_QUEST and quest_status.flow_state <= flow_states.WYVERN_RIDING_START_ANIMATION then
update_modules(config.current_config.global_settings.module_visibility.playing_quest, "Playing Quest"); update_modules(module_visibility_config.playing_quest, "Playing Quest");
elseif quest_status.flow_state == quest_status.flow_states.KILLCAM then elseif quest_status.flow_state == flow_states.KILLCAM then
update_modules(config.current_config.global_settings.module_visibility.killcam, "Killcam"); update_modules(module_visibility_config.killcam, "Killcam");
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_TIMER then elseif quest_status.flow_state == flow_states.QUEST_END_TIMER then
update_modules(config.current_config.global_settings.module_visibility.quest_end_timer, "Quest End Timer"); update_modules(module_visibility_config.quest_end_timer, "Quest End Timer");
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_ANIMATION then elseif quest_status.flow_state == flow_states.QUEST_END_ANIMATION then
update_modules(config.current_config.global_settings.module_visibility.quest_end_animation, "Quest End Animation"); update_modules(module_visibility_config.quest_end_animation, "Quest End Animation");
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_SCREEN then elseif quest_status.flow_state == flow_states.QUEST_END_SCREEN then
update_modules(config.current_config.global_settings.module_visibility.quest_end_screen, "Quest End Screen"); update_modules(module_visibility_config.quest_end_screen, "Quest End Screen");
elseif quest_status.flow_state == quest_status.flow_states.REWARD_SCREEN then elseif quest_status.flow_state == flow_states.REWARD_SCREEN then
update_modules(config.current_config.global_settings.module_visibility.reward_screen, "Reward Screen"); update_modules(module_visibility_config.reward_screen, "Reward Screen");
elseif quest_status.flow_state == quest_status.flow_states.SUMMARY_SCREEN then elseif quest_status.flow_state == flow_states.SUMMARY_SCREEN then
update_modules(config.current_config.global_settings.module_visibility.summary_screen, "Summary Screen"); update_modules(module_visibility_config.summary_screen, "Summary Screen");
end end
end end
local function draw_loop() local function draw_loop()
if quest_status.flow_state == quest_status.flow_states.IN_LOBBY then local current_config = config.current_config;
local module_visibility_config = config.current_config.global_settings.module_visibility.in_lobby; local module_visibility_config = current_config.global_settings.module_visibility;
local flow_states = quest_status.flow_states;
if config.current_config.stats_UI.enabled and module_visibility_config.stats_UI then if quest_status.flow_state == flow_states.IN_LOBBY then
local module_visibility_in_lobby_config = module_visibility_config.in_lobby;
if current_config.stats_UI.enabled and module_visibility_in_lobby_config.stats_UI then
local success, error = pcall(stats_UI.draw); local success, error = pcall(stats_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Stats UI: %s", tostring(error))); error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Stats UI: %s", tostring(error)));
end end
end end
elseif quest_status.flow_state == quest_status.flow_states.IN_TRAINING_AREA then elseif quest_status.flow_state == flow_states.IN_TRAINING_AREA then
local large_monster_UI_config = config.current_config.large_monster_UI; local large_monster_UI_config = current_config.large_monster_UI;
local module_visibility_config = config.current_config.global_settings.module_visibility.in_training_area; local module_visibility_in_training_area_config = module_visibility_config.in_training_area;
local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_config.large_monster_dynamic_UI; local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_in_training_area_config.large_monster_dynamic_UI;
local static_enabled = large_monster_UI_config.static.enabled and module_visibility_config.large_monster_static_UI; local static_enabled = large_monster_UI_config.static.enabled and module_visibility_in_training_area_config.large_monster_static_UI;
local highlighted_enabled = large_monster_UI_config.highlighted.enabled and module_visibility_config.large_monster_highlighted_UI; local highlighted_enabled = large_monster_UI_config.highlighted.enabled and module_visibility_in_training_area_config.large_monster_highlighted_UI;
if dynamic_enabled or static_enabled or highlighted_enabled then if dynamic_enabled or static_enabled or highlighted_enabled then
local success, error = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled); local success, error = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled);
@@ -458,55 +470,54 @@ local function draw_loop()
end end
end end
if config.current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then if current_config.damage_meter_UI.enabled and module_visibility_in_training_area_config.damage_meter_UI then
local success, error = pcall(damage_meter_UI.draw); local success, error = pcall(damage_meter_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Damage Meter UI: %s", tostring(error))); error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Damage Meter UI: %s", tostring(error)));
end end
end end
if config.current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then if current_config.endemic_life_UI.enabled and module_visibility_in_training_area_config.endemic_life_UI then
local success, error = pcall(env_creature_UI.draw); local success, error = pcall(env_creature_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Endemic Life UI: %s", tostring(error))); error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Endemic Life UI: %s", tostring(error)));
end end
end end
if config.current_config.buff_UI.enabled and module_visibility_config.buff_UI then if current_config.buff_UI.enabled and module_visibility_in_training_area_config.buff_UI then
local success, error = pcall(buff_UI.draw); local success, error = pcall(buff_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Buff UI: %s", tostring(error))); error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Buff UI: %s", tostring(error)));
end end
end end
if config.current_config.stats_UI.enabled and module_visibility_config.stats_UI then if current_config.stats_UI.enabled and module_visibility_in_training_area_config.stats_UI then
local success, error = pcall(stats_UI.draw); local success, error = pcall(stats_UI.draw);
if not success then if not success then
error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Stats UI: %s", tostring(error))); error_handler.report("MHR_Overlay.main_loop", string.format("[In Training Area] Stats UI: %s", tostring(error)));
end end
end end
elseif quest_status.flow_state == flow_states.CUTSCENE then
elseif quest_status.flow_state == quest_status.flow_states.CUTSCENE then draw_modules(module_visibility_config.cutscene, "Cutscene");
draw_modules(config.current_config.global_settings.module_visibility.cutscene, "Cutscene"); elseif quest_status.flow_state == flow_states.LOADING_QUEST then
elseif quest_status.flow_state == quest_status.flow_states.LOADING_QUEST then draw_modules(module_visibility_config.loading_quest, "Loading Quest");
draw_modules(config.current_config.global_settings.module_visibility.loading_quest, "Loading Quest"); elseif quest_status.flow_state == flow_states.QUEST_START_ANIMATION then
elseif quest_status.flow_state == quest_status.flow_states.QUEST_START_ANIMATION then draw_modules(module_visibility_config.quest_start_animation, "Quest Start Animation");
draw_modules(config.current_config.global_settings.module_visibility.quest_start_animation, "Quest Start Animation"); elseif quest_status.flow_state >= flow_states.PLAYING_QUEST and quest_status.flow_state <= flow_states.WYVERN_RIDING_START_ANIMATION then
elseif quest_status.flow_state >= quest_status.flow_states.PLAYING_QUEST and quest_status.flow_state <= quest_status.flow_states.WYVERN_RIDING_START_ANIMATION then draw_modules(module_visibility_config.playing_quest, "Playing Quest");
draw_modules(config.current_config.global_settings.module_visibility.playing_quest, "Playing Quest"); elseif quest_status.flow_state == flow_states.KILLCAM then
elseif quest_status.flow_state == quest_status.flow_states.KILLCAM then draw_modules(module_visibility_config.killcam, "Killcam");
draw_modules(config.current_config.global_settings.module_visibility.killcam, "Killcam"); elseif quest_status.flow_state == flow_states.QUEST_END_TIMER then
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_TIMER then draw_modules(module_visibility_config.quest_end_timer, "Quest End Timer");
draw_modules(config.current_config.global_settings.module_visibility.quest_end_timer, "Quest End Timer"); elseif quest_status.flow_state == flow_states.QUEST_END_ANIMATION then
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_ANIMATION then draw_modules(module_visibility_config.quest_end_animation, "Quest End Animation");
draw_modules(config.current_config.global_settings.module_visibility.quest_end_animation, "Quest End Animation"); elseif quest_status.flow_state == flow_states.QUEST_END_SCREEN then
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_SCREEN then draw_modules(module_visibility_config.quest_end_screen, "Quest End Screen");
draw_modules(config.current_config.global_settings.module_visibility.quest_end_screen, "Quest End Screen"); elseif quest_status.flow_state == flow_states.REWARD_SCREEN then
elseif quest_status.flow_state == quest_status.flow_states.REWARD_SCREEN then draw_modules(module_visibility_config.reward_screen, "Reward Screen");
draw_modules(config.current_config.global_settings.module_visibility.reward_screen, "Reward Screen"); elseif quest_status.flow_state == flow_states.SUMMARY_SCREEN then
elseif quest_status.flow_state == quest_status.flow_states.SUMMARY_SCREEN then draw_modules(module_visibility_config.summary_screen, "Summary Screen");
draw_modules(config.current_config.global_settings.module_visibility.summary_screen, "Summary Screen");
end end
end end
@@ -534,7 +545,7 @@ end);
if d2d ~= nil then if d2d ~= nil then
d2d.register(function() d2d.register(function()
drawing.init_font(); drawing.init_font();
end, function() end, function()
if config.current_config.global_settings.renderer.use_d2d_if_available then if config.current_config.global_settings.renderer.use_d2d_if_available then
draw_loop(); draw_loop();
end end
@@ -543,7 +554,6 @@ end
re.on_frame(function() re.on_frame(function()
time.update_timers(); time.update_timers();
keyboard.update();
if d2d == nil or not config.current_config.global_settings.renderer.use_d2d_if_available then if d2d == nil or not config.current_config.global_settings.renderer.use_d2d_if_available then
draw_loop(); draw_loop();

View File

@@ -109,6 +109,10 @@ this.keys = {
"frenzy_infection" "frenzy_infection"
}; };
this.UI = nil;
local abnormal_statuses_type_name = "abnormal_statuses";
local frenzy_infected_duration = 121; local frenzy_infected_duration = 121;
local player_quest_base_type_def = sdk.find_type_definition("snow.player.PlayerQuestBase"); local player_quest_base_type_def = sdk.find_type_definition("snow.player.PlayerQuestBase");
@@ -221,12 +225,12 @@ function this.update(player, player_data)
end end
function this.update_abnormal_status(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_abnormal_status(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.abnormal_statuses, this.get_abnormal_status_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.abnormal_statuses, this.get_abnormal_status_name,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); abnormal_statuses_type_name, key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_abnormal_status_name, key, level, timer); return buffs.update_generic(this.list, this.get_abnormal_status_name, abnormal_statuses_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -249,7 +253,9 @@ function this.update_poison(player)
local poison_level = poison_level_field:get_data(player); local poison_level = poison_level_field:get_data(player);
if poison_level == nil then if poison_level == nil then
error_handler.report("abnormal_statuses.update_poison", "Failed to access Data: poison_level"); error_handler.report("abnormal_statuses.update_poison", "Failed to Access Data: poison_level");
this.list.poison = nil;
this.list.deadly_poison = nil;
return; return;
end end
@@ -284,7 +290,9 @@ function this.update_bubbleblight(player)
local bubble_type = bubble_type_field:get_data(player); local bubble_type = bubble_type_field:get_data(player);
if bubble_type == nil then if bubble_type == nil then
error_handler.report("abnormal_statuses.update_bubbleblight", "Failed to access Data: bubble_Type"); error_handler.report("abnormal_statuses.update_bubbleblight", "Failed to Access Data: bubble_Type");
this.list.minor_bubbleblight = nil;
this.list.major_bubbleblight = nil;
return; return;
end end
@@ -310,13 +318,15 @@ function this.update_muck(player)
local is_mud_damage = get_is_mud_damage_method:call(player); local is_mud_damage = get_is_mud_damage_method:call(player);
if is_mud_damage == nil then if is_mud_damage == nil then
error_handler.report("abnormal_statuses.update_generic_boolean_value_method", "Failed to access Data: is_mud_damage"); error_handler.report("abnormal_statuses.update_generic_boolean_value_method", "Failed to Access Data: is_mud_damage");
this.list.muck = nil;
return; return;
end end
local is_gold_mud_damage = get_is_gold_mud_damage_method:call(player); local is_gold_mud_damage = get_is_gold_mud_damage_method:call(player);
if is_gold_mud_damage == nil then if is_gold_mud_damage == nil then
error_handler.report("abnormal_statuses.update_generic_boolean_value_method", "Failed to access Data: is_gold_mud_damage"); error_handler.report("abnormal_statuses.update_generic_boolean_value_method", "Failed to Access Data: is_gold_mud_damage");
this.list.muck = nil;
return; return;
end end
@@ -335,13 +345,15 @@ function this.update_frenzy_infection(player)
local virus_accumulator_value = virus_accumulator_field:get_data(player); local virus_accumulator_value = virus_accumulator_field:get_data(player);
if virus_accumulator_value == nil then if virus_accumulator_value == nil then
error_handler.report("abnormal_statuses.update_frenzy_infection", "Failed to access Data: virus_accumulator_value"); error_handler.report("abnormal_statuses.update_frenzy_infection", "Failed to Access Data: virus_accumulator_value");
this.list.frenzy_infection = nil;
return; return;
end end
local virus_timer = virus_timer_field:get_data(player); local virus_timer = virus_timer_field:get_data(player);
if virus_timer == nil then if virus_timer == nil then
error_handler.report("abnormal_statuses.update_frenzy_infection", "Failed to access Data: virus_timer"); error_handler.report("abnormal_statuses.update_frenzy_infection", "Failed to Access Data: virus_timer");
this.list.frenzy_infection = nil;
return; return;
end end
@@ -357,6 +369,7 @@ end
function this.update_sleep(player) function this.update_sleep(player)
if this.apply_filter("sleep") then if this.apply_filter("sleep") then
this.list.sleep = nil;
return; return;
end end
@@ -368,9 +381,15 @@ function this.update_sleep(player)
this.update_abnormal_status("sleep", nil, nil, player, sleep_duration_timer_field); this.update_abnormal_status("sleep", nil, nil, player, sleep_duration_timer_field);
end end
function this.init_all_UI()
for abnormal_status_key, abnormal_status in pairs(this.list) do
buffs.init_UI(abnormal_status);
end
end
function this.init_names() function this.init_names()
for abnormal_status_key, debuff in pairs(this.list) do for abnormal_status_key, abnormal_status in pairs(this.list) do
debuff.name = this.get_abnormal_status_name(abnormal_status_key); abnormal_status.name = this.get_abnormal_status_name(abnormal_status_key);
end end
end end

View File

@@ -64,7 +64,7 @@ local player_lobby_base_type_def = sdk.find_type_definition("snow.player.PlayerL
local player_base_type_def = sdk.find_type_definition("snow.player.PlayerBase"); local player_base_type_def = sdk.find_type_definition("snow.player.PlayerBase");
local player_weapon_type_field = player_base_type_def:get_field("_playerWeaponType"); local player_weapon_type_field = player_base_type_def:get_field("_playerWeaponType");
function this.new(key, name, level, duration) function this.new(type, key, name, level, duration)
local is_infinite = false; local is_infinite = false;
if name == nil then if name == nil then
@@ -83,6 +83,7 @@ function this.new(key, name, level, duration)
local buff = {}; local buff = {};
buff.type = type;
buff.key = key; buff.key = key;
buff.name = name; buff.name = name;
buff.level = level; buff.level = level;
@@ -110,19 +111,40 @@ function this.init_buffs()
this.list = {}; this.list = {};
end end
function this.init_all_UI()
abnormal_statuses.init_all_UI();
item_buffs.init_all_UI();
endemic_life_buffs.init_all_UI();
melody_effects.init_all_UI();
dango_skills.init_all_UI();
rampage_skills.init_all_UI();
skills.init_all_UI();
weapon_skills.init_all_UI();
otomo_moves.init_all_UI();
misc_buffs.init_all_UI();
end
function this.init_UI(buff) function this.init_UI(buff)
local cached_config = config.current_config.buff_UI; local cached_config = config.current_config.buff_UI[buff.type];
buff.buff_UI = buff_UI_entity.new(cached_config.bar, cached_config.name_label, cached_config.timer_label); buff.buff_UI = buff_UI_entity.new(cached_config.bar, cached_config.name_label, cached_config.timer_label);
end end
function this.init_names() function this.init_names()
abnormal_statuses.init_names(); abnormal_statuses.init_names();
item_buffs.init_names();
endemic_life_buffs.init_names();
melody_effects.init_names();
dango_skills.init_names();
rampage_skills.init_names();
skills.init_names(); skills.init_names();
weapon_skills.init_names(); weapon_skills.init_names();
otomo_moves.init_names();
misc_buffs.init_names(); misc_buffs.init_names();
end end
local tere = {}; local tere = {};
local tere2 = {};
local tere3 = {};
function this.update() function this.update()
if not config.current_config.buff_UI.enabled then if not config.current_config.buff_UI.enabled then
@@ -130,7 +152,7 @@ function this.update()
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("buffs.update", "Failed to access Data: player_manager"); error_handler.report("buffs.update", "Failed to Access Data: player_manager");
return; return;
end end
@@ -140,9 +162,9 @@ function this.update()
return; return;
end end
local master_player = find_master_player_method:call(singletons.player_manager); local master_player = find_master_player_method:call(singletons.player_manager);
if master_player == nil then if master_player == nil then
error_handler.report("buffs.update", "Failed to access Data: master_player"); error_handler.report("buffs.update", "Failed to Access Data: master_player");
return; return;
end end
@@ -150,24 +172,24 @@ function this.update()
local master_player_data = get_player_data_method:call(master_player); local master_player_data = get_player_data_method:call(master_player);
if master_player_data == nil then if master_player_data == nil then
error_handler.report("buffs.update", "Failed to access Data: master_player_data"); error_handler.report("buffs.update", "Failed to Access Data: master_player_data");
return; return;
end end
local weapon_type = player_weapon_type_field:get_data(master_player); local weapon_type = player_weapon_type_field:get_data(master_player);
if weapon_type == nil then if weapon_type == nil then
error_handler.report("buffs.update", "Failed to access Data: weapon_type"); error_handler.report("buffs.update", "Failed to Access Data: weapon_type");
return; return;
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("buffs.update", "Failed to access Data: player_manager"); error_handler.report("buffs.update", "Failed to Access Data: player_manager");
return; return;
end end
local item_parameter = get_ref_item_parameter_method:call(singletons.player_manager); local item_parameter = get_ref_item_parameter_method:call(singletons.player_manager);
if item_parameter == nil then if item_parameter == nil then
error_handler.report("buffs.update", "Failed to access Data: item_parameter"); error_handler.report("buffs.update", "Failed to Access Data: item_parameter");
return; return;
end end
@@ -213,7 +235,8 @@ function this.update_timer(buff, timer)
end end
end end
function this.update_generic_buff(buff_list, filter_list, get_name_function, buff_key, function this.update_generic_buff(buff_list, filter_list, get_name_function,
buff_type, buff_key,
value_owner, value_holder, value_owner, value_holder,
timer_owner, timer_holder, timer_owner, timer_holder,
is_infinite, minimal_value, level_breakpoints) is_infinite, minimal_value, level_breakpoints)
@@ -236,7 +259,8 @@ function this.update_generic_buff(buff_list, filter_list, get_name_function, buf
end end
if value == nil then if value == nil then
error_handler.report("buffs.update_generic_number", string.format("Failed to access Data: %s_value", buff_key)); error_handler.report("buffs.update_generic_number", string.format("Failed to Access Data: %s_value", buff_key));
buff_list[buff_key] = nil;
return; return;
end end
@@ -272,7 +296,8 @@ function this.update_generic_buff(buff_list, filter_list, get_name_function, buf
end end
if timer == nil then if timer == nil then
error_handler.report("buffs.update_generic_number", string.format("Failed to access Data: %s_timer", buff_key)); error_handler.report("buffs.update_generic_number", string.format("Failed to Access Data: %s_timer", buff_key));
buff_list[buff_key] = nil;
return; return;
end end
@@ -288,17 +313,17 @@ function this.update_generic_buff(buff_list, filter_list, get_name_function, buf
end end
end end
return this.update_generic(buff_list, get_name_function, buff_key, level, timer); return this.update_generic(buff_list, get_name_function, buff_type, buff_key, level, timer);
end end
function this.update_generic(buff_list, get_name_function, buff_key, level, timer) function this.update_generic(buff_list, get_name_function, buff_type, buff_key, level, timer)
level = level or 1; level = level or 1;
local buff = buff_list[buff_key]; local buff = buff_list[buff_key];
if buff == nil then if buff == nil then
local name = get_name_function(buff_key); local name = get_name_function(buff_key);
buff = this.new(buff_key, name, level, timer); buff = this.new(buff_type, buff_key, name, level, timer);
buff_list[buff_key] = buff; buff_list[buff_key] = buff;
else else
if buff.level ~= level then if buff.level ~= level then

View File

@@ -45,26 +45,26 @@ local package = package;
this.list = { this.list = {
dango_adrenaline = nil, dango_adrenaline = nil,
dango_booster = nil, dango_booster = nil,
dango_connector = nil,
dango_defender = nil,
dango_flyer = nil,
dango_glutton = nil,
dango_hunter = nil,
dango_insurance = nil, dango_insurance = nil,
dango_insurance_defense_up = nil, dango_insurance_defense_up = nil,
dango_glutton = nil,
dango_flyer = nil,
dango_defender = nil,
dango_hunter = nil,
dango_connector = nil,
super_recovery_dango = nil super_recovery_dango = nil
}; };
this.keys = { this.keys = {
"dango_adrenaline", "dango_adrenaline",
"dango_booster", "dango_booster",
"dango_connector",
"dango_defender",
"dango_flyer",
"dango_glutton",
"dango_hunter",
"dango_insurance", "dango_insurance",
"dango_insurance_defense_up", "dango_insurance_defense_up",
"dango_glutton",
"dango_flyer",
"dango_defender",
"dango_hunter",
"dango_connector",
"super_recovery_dango" "super_recovery_dango"
}; };
@@ -127,8 +127,11 @@ local dango_skill_ids = {
super_recovery_dango = 56 super_recovery_dango = 56
}; };
this.is_dango_adrenaline_active = false; this.is_dango_adrenaline_active = false;
local dango_skills_type_name = "dango_skills";
local dango_bulker_attack_up = 15; local dango_bulker_attack_up = 15;
local previous_super_recovery_dango_timer = 0; local previous_super_recovery_dango_timer = 0;
@@ -171,8 +174,6 @@ local flag_cat_skill_insurance_field = quest_manager_type_def:get_field("_FlagCa
local is_cat_skill_insurance_method = quest_manager_type_def:get_method("isCatSkillInsurance"); local is_cat_skill_insurance_method = quest_manager_type_def:get_method("isCatSkillInsurance");
function this.update(player, player_data) function this.update(player, player_data)
this.update_dango_adrenaline(); this.update_dango_adrenaline();
this.update_dango_hunter(player_data); this.update_dango_hunter(player_data);
this.update_dango_insurance(); this.update_dango_insurance();
@@ -187,12 +188,13 @@ function this.update(player, player_data)
end end
function this.update_dango_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_dango_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.dango_skills, this.get_dango_skill_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.dango_skills, this.get_dango_skill_name,
dango_skills_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_dango_skill_name, key, level, timer); return buffs.update_generic(this.list, this.get_dango_skill_name, dango_skills_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -218,12 +220,14 @@ function this.update_dango_insurance()
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("dango_skills.update_dango_insurance", "Failed to access Data: player_manager"); error_handler.report("dango_skills.update_dango_insurance", "Failed to Access Data: player_manager");
this.list.dango_insurance = nil;
return; return;
end end
if singletons.quest_manager == nil then if singletons.quest_manager == nil then
error_handler.report("dango_skills.update_dango_insurance", "Failed to access Data: quest_manager"); error_handler.report("dango_skills.update_dango_insurance", "Failed to Access Data: quest_manager");
this.list.dango_insurance = nil;
return; return;
end end
@@ -231,13 +235,15 @@ function this.update_dango_insurance()
local flag_cat_skill_insurance = flag_cat_skill_insurance_field:get_data(singletons.quest_manager); local flag_cat_skill_insurance = flag_cat_skill_insurance_field:get_data(singletons.quest_manager);
if flag_cat_skill_insurance == nil then if flag_cat_skill_insurance == nil then
error_handler.report("dango_skills.update_dango_insurance", "Failed to access Data: flag_cat_skill_insurance"); error_handler.report("dango_skills.update_dango_insurance", "Failed to Access Data: flag_cat_skill_insurance");
this.list.dango_insurance = nil;
return; return;
end end
local is_cat_skill_insurance = is_cat_skill_insurance_method:call(singletons.quest_manager, flag_cat_skill_insurance); local is_cat_skill_insurance = is_cat_skill_insurance_method:call(singletons.quest_manager, flag_cat_skill_insurance);
if is_cat_skill_insurance == nil then if is_cat_skill_insurance == nil then
error_handler.report("dango_skills.update_dango_insurance", "Failed to access Data: is_cat_skill_insurance"); error_handler.report("dango_skills.update_dango_insurance", "Failed to Access Data: is_cat_skill_insurance");
this.list.dango_insurance = nil;
return; return;
end end
@@ -258,7 +264,8 @@ function this.update_dango_insurance_defense_up(player_data)
local insurance_def_up_lv3 = kitchen_skill_insurance_def_up_lv3_field:get_data(player_data); local insurance_def_up_lv3 = kitchen_skill_insurance_def_up_lv3_field:get_data(player_data);
if insurance_def_up_lv3 == nil then if insurance_def_up_lv3 == nil then
error_handler.report("dango_skills.update_dango_insurance_defense_up", "Failed to access Data: insurance_def_up_lv3"); error_handler.report("dango_skills.update_dango_insurance_defense_up", "Failed to Access Data: insurance_def_up_lv3");
this.list.dango_insurance_defense_up = nil;
return; return;
end end
@@ -266,7 +273,8 @@ function this.update_dango_insurance_defense_up(player_data)
local insurance_def_up_lv4 = kitchen_skill_insurance_def_up_lv4_field:get_data(player_data); local insurance_def_up_lv4 = kitchen_skill_insurance_def_up_lv4_field:get_data(player_data);
if insurance_def_up_lv4 == nil then if insurance_def_up_lv4 == nil then
error_handler.report("dango_skills.update_dango_insurance_defense_up", "Failed to access Data: insurance_def_up_lv4"); error_handler.report("dango_skills.update_dango_insurance_defense_up", "Failed to Access Data: insurance_def_up_lv4");
this.list.dango_insurance_defense_up = nil;
return; return;
end end
@@ -278,7 +286,7 @@ function this.update_dango_insurance_defense_up(player_data)
level = 4; level = 4;
end end
this.update_generic("dango_insurance_defense_up", level); this.update_generic("dango_insurance_defense_up", level);
end end
function this.update_dango_flyer(player) function this.update_dango_flyer(player)
@@ -290,7 +298,8 @@ function this.update_dango_flyer(player)
local is_kitchen_skill_wire_stop_regene = get_is_kitchen_skill_wire_stop_regene_method:call(player); local is_kitchen_skill_wire_stop_regene = get_is_kitchen_skill_wire_stop_regene_method:call(player);
if is_kitchen_skill_wire_stop_regene == nil then if is_kitchen_skill_wire_stop_regene == nil then
error_handler.report("dango_skills.update_dango_flyer", "Failed to access Data: is_kitchen_skill_wire_stop_regene"); error_handler.report("dango_skills.update_dango_flyer", "Failed to Access Data: is_kitchen_skill_wire_stop_regene");
this.list.dango_flyer = nil;
return; return;
end end
@@ -298,7 +307,8 @@ function this.update_dango_flyer(player)
local is_kitchen_skill_wire_stop_heal_spd = get_is_kitchen_skill_wire_stop_heal_spd_method:call(player); local is_kitchen_skill_wire_stop_heal_spd = get_is_kitchen_skill_wire_stop_heal_spd_method:call(player);
if is_kitchen_skill_wire_stop_heal_spd == nil then if is_kitchen_skill_wire_stop_heal_spd == nil then
error_handler.report("dango_skills.update_dango_flyer", "Failed to access Data: is_kitchen_skill_wire_stop_heal_spd"); error_handler.report("dango_skills.update_dango_flyer", "Failed to Access Data: is_kitchen_skill_wire_stop_heal_spd");
this.list.dango_flyer = nil;
return; return;
end end
@@ -310,7 +320,7 @@ function this.update_dango_flyer(player)
level = 3; level = 3;
end end
this.update_generic("dango_flyer", level); this.update_generic("dango_flyer", level);
end end
function this.update_dango_hunter(player_data) function this.update_dango_hunter(player_data)
@@ -328,7 +338,8 @@ function this.update_super_recovery_dango(player)
local kitchen_skill_surume_regene_timer = get_kitchen_skill_surume_regene_timer_method:call(player); local kitchen_skill_surume_regene_timer = get_kitchen_skill_surume_regene_timer_method:call(player);
if kitchen_skill_surume_regene_timer == nil then if kitchen_skill_surume_regene_timer == nil then
error_handler.report("dango_skills.update_super_recovery_dango", "Failed to access Data: kitchen_skill_surume_regene_timer"); error_handler.report("dango_skills.update_super_recovery_dango", "Failed to Access Data: kitchen_skill_surume_regene_timer");
this.list.super_recovery_dango = nil;
return; return;
end end
@@ -339,7 +350,19 @@ function this.update_super_recovery_dango(player)
end end
previous_super_recovery_dango_timer = kitchen_skill_surume_regene_timer; previous_super_recovery_dango_timer = kitchen_skill_surume_regene_timer;
this.update_generic("super_recovery_dango"); this.update_generic("super_recovery_dango");
end
function this.init_all_UI()
for dango_skill_key, dango_skill in pairs(this.list) do
buffs.init_UI(dango_skill);
end
end
function this.init_names()
for dango_skill_key, dango_skill in pairs(this.list) do
dango_skill.name = this.get_dango_skill_name(dango_skill_key);
end
end end
function this.get_dango_skill_name(key) function this.get_dango_skill_name(key)
@@ -356,7 +379,7 @@ function this.get_dango_skill_name(key)
local dango_skill_name = get_name_method:call(nil, dango_skill_id); local dango_skill_name = get_name_method:call(nil, dango_skill_id);
if dango_skill_name == nil then if dango_skill_name == nil then
error_handler.report("dango_skills.get_dango_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("dango_skills.get_dango_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -45,11 +45,11 @@ local ValueType = ValueType;
local package = package; local package = package;
this.list = { this.list = {
cutterfly = nil,
clothfly = nil, clothfly = nil,
stinkmink = nil,
butterflame = nil, butterflame = nil,
-- peepersects = nil, -- peepersects = nil,
cutterfly = nil, stinkmink = nil,
ruby_wirebug = nil, ruby_wirebug = nil,
gold_wirebug = nil, gold_wirebug = nil,
red_lampsquid = nil, red_lampsquid = nil,
@@ -57,11 +57,11 @@ this.list = {
}; };
this.keys = { this.keys = {
"cutterfly",
"clothfly", "clothfly",
"stinkmink",
"butterflame", "butterflame",
-- "peepersects", -- "peepersects",
"cutterfly", "stinkmink",
"ruby_wirebug", "ruby_wirebug",
"gold_wirebug", "gold_wirebug",
"red_lampsquid", "red_lampsquid",
@@ -71,6 +71,8 @@ this.keys = {
this.peepersects_duration = 90; this.peepersects_duration = 90;
this.butterflame_attack_up = 25; this.butterflame_attack_up = 25;
local endemic_life_buffs_type_name = "endemic_life_buffs";
local marionette_mode_types = { "ruby_wirebug", "gold_wirebug" }; local marionette_mode_types = { "ruby_wirebug", "gold_wirebug" };
@@ -112,12 +114,13 @@ function this.update(player, player_data, item_parameter)
end end
function this.update_endemic_life_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_endemic_life_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.endemic_life_buffs, this.get_endemic_life_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.endemic_life_buffs, this.get_endemic_life_name,
endemic_life_buffs_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_endemic_life_name, key, level, timer); return buffs.update_generic(this.list, this.get_endemic_life_name, endemic_life_buffs_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -140,7 +143,9 @@ function this.update_ruby_and_gold_wirebugs(player, player_data)
local marionette_mode_type = get_marionette_mode_type_method:call(player); local marionette_mode_type = get_marionette_mode_type_method:call(player);
if marionette_mode_type == nil then if marionette_mode_type == nil then
error_handler.report("endemic_life_buffs.update_ruby_and_gold_wirebugs", "Failed to access Data: marionette_mode_type"); error_handler.report("endemic_life_buffs.update_ruby_and_gold_wirebugs", "Failed to Access Data: marionette_mode_type");
this.list.ruby_wirebug = nil;
this.list.gold_wirebug = nil;
end end
if marionette_mode_type ~= 1 and marionette_mode_type ~= 2 then if marionette_mode_type ~= 1 and marionette_mode_type ~= 2 then
@@ -164,7 +169,8 @@ function this.update_butterflame(player_data)
local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data); local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data);
if atk_up_buff_second == nil then if atk_up_buff_second == nil then
error_handler.report("item_buffs.update_butterflame", "Failed to access Data: atk_up_buff_second"); error_handler.report("item_buffs.update_butterflame", "Failed to Access Data: atk_up_buff_second");
this.list.butterflame = nil;
return; return;
end end
@@ -176,15 +182,27 @@ function this.update_butterflame(player_data)
this.update_endemic_life_buff("butterflame", nil, nil, player_data, atk_up_buff_second_timer_field); this.update_endemic_life_buff("butterflame", nil, nil, player_data, atk_up_buff_second_timer_field);
end end
function this.init_all_UI()
for endemic_life_key, endemic_life in pairs(this.list) do
buffs.init_UI(endemic_life);
end
end
function this.init_names()
for endemic_life_key, endemic_life in pairs(this.list) do
endemic_life.name = this.get_endemic_life_name(endemic_life_key);
end
end
function this.get_endemic_life_name(key) function this.get_endemic_life_name(key)
if singletons.message_manager == nil then if singletons.message_manager == nil then
error_handler.report("endemic_life_buffs.get_endemic_life_name", "Failed to access Data: message_manager"); error_handler.report("endemic_life_buffs.get_endemic_life_name", "Failed to Access Data: message_manager");
return key; return key;
end end
local endemic_life_name = get_env_creature_name_message_method:call(singletons.message_manager, env_creature.creature_ids[key]); local endemic_life_name = get_env_creature_name_message_method:call(singletons.message_manager, env_creature.creature_ids[key]);
if endemic_life_name == nil then if endemic_life_name == nil then
error_handler.report("endemic_life_buffs.get_endemic_life_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("endemic_life_buffs.get_endemic_life_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -54,6 +54,8 @@ this.list = {
-- immunizer = nil, -- immunizer = nil,
-- dash_juice = nil, -- dash_juice = nil,
gourmet_fish = nil, gourmet_fish = nil,
demon_ammo = nil,
armor_ammo = nil
}; };
this.keys = { this.keys = {
@@ -68,6 +70,8 @@ this.keys = {
-- "immunizer", -- "immunizer",
-- "dash_juice", -- "dash_juice",
"gourmet_fish", "gourmet_fish",
"demon_ammo",
"armor_ammo"
}; };
local item_ids = { local item_ids = {
@@ -76,11 +80,11 @@ local item_ids = {
armorskin = 68157922, armorskin = 68157922,
mega_armorskin = 68157923, mega_armorskin = 68157923,
might_seed = 68157919, might_seed = 68157919,
adamant_seed = 68157924, -- adamant_seed = 68157924,
demon_powder = 68157920, demon_powder = 68157920,
hardshell_powder = 68157925, hardshell_powder = 68157925,
immunizer = 68157911, -- immunizer = 68157911,
dash_juice = 68157913, -- dash_juice = 68157913,
gourmet_fish = 68157909, gourmet_fish = 68157909,
demon_ammo = 68157595, demon_ammo = 68157595,
armor_ammo = 68157596 armor_ammo = 68157596
@@ -88,6 +92,8 @@ local item_ids = {
this.might_seed_attack_up = 10; this.might_seed_attack_up = 10;
local item_buffs_type_name = "item_buffs";
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData"); local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Demondrug/Mega Demondrug -- Demondrug/Mega Demondrug
local atk_up_alive_field = player_data_type_def:get_field("_AtkUpAlive"); local atk_up_alive_field = player_data_type_def:get_field("_AtkUpAlive");
@@ -140,12 +146,13 @@ function this.update(player_data, item_parameter)
end end
function this.update_item_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_item_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.item_buffs, this.get_item_buff_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.item_buffs, this.get_item_buff_name,
item_buffs_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_item_buff_name, key, level, timer); return buffs.update_generic(this.list, this.get_item_buff_name, item_buffs_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -163,7 +170,9 @@ function this.update_demondrug(player_data, item_parameter)
local demondrug_value = atk_up_alive_field:get_data(player_data); local demondrug_value = atk_up_alive_field:get_data(player_data);
if demondrug_value == nil then if demondrug_value == nil then
error_handler.report("item_buffs.update_demondrug", "Failed to access Data: demondrug_value"); error_handler.report("item_buffs.update_demondrug", "Failed to Access Data: demondrug_value");
this.list.demondrug = nil;
this.list.mega_demondrug = nil;
return; return;
end end
@@ -175,13 +184,17 @@ function this.update_demondrug(player_data, item_parameter)
local demondrug_const_value = demondrug_atk_up_field:get_data(item_parameter); local demondrug_const_value = demondrug_atk_up_field:get_data(item_parameter);
if demondrug_const_value == nil then if demondrug_const_value == nil then
error_handler.report("item_buffs.update_demondrug", "Failed to access Data: demondrug_const_value"); error_handler.report("item_buffs.update_demondrug", "Failed to Access Data: demondrug_const_value");
this.list.demondrug = nil;
this.list.mega_demondrug = nil;
return; return;
end end
local mega_demondrug_const_value = great_demondrug_atk_up_field:get_data(item_parameter); local mega_demondrug_const_value = great_demondrug_atk_up_field:get_data(item_parameter);
if mega_demondrug_const_value == nil then if mega_demondrug_const_value == nil then
error_handler.report("item_buffs.update_demondrug", "Failed to access Data: mega_demondrug_const_value"); error_handler.report("item_buffs.update_demondrug", "Failed to Access Data: mega_demondrug_const_value");
this.list.demondrug = nil;
this.list.mega_demondrug = nil;
return; return;
end end
@@ -214,7 +227,9 @@ function this.update_armorskin(player_data, item_parameter)
local armorskin_value = def_up_alive_field:get_data(player_data); local armorskin_value = def_up_alive_field:get_data(player_data);
if armorskin_value == nil then if armorskin_value == nil then
error_handler.report("item_buffs.update_armorskin", "Failed to access Data: armorskin_value"); error_handler.report("item_buffs.update_armorskin", "Failed to Access Data: armorskin_value");
this.list.armorskin = nil;
this.list.mega_armorskin = nil;
return; return;
end end
@@ -226,13 +241,17 @@ function this.update_armorskin(player_data, item_parameter)
local armorskin_const_value = armorskin_def_up_field:get_data(item_parameter); local armorskin_const_value = armorskin_def_up_field:get_data(item_parameter);
if armorskin_const_value == nil then if armorskin_const_value == nil then
error_handler.report("item_buffs.update_armorskin", "Failed to access Data: armorskin_const_value"); error_handler.report("item_buffs.update_armorskin", "Failed to Access Data: armorskin_const_value");
this.list.armorskin = nil;
this.list.mega_armorskin = nil;
return; return;
end end
local mega_armorskin_const_value = great_armorskin_def_up_field:get_data(item_parameter); local mega_armorskin_const_value = great_armorskin_def_up_field:get_data(item_parameter);
if mega_armorskin_const_value == nil then if mega_armorskin_const_value == nil then
error_handler.report("item_buffs.update_armorskin", "Failed to access Data: mega_armorskin_const_value"); error_handler.report("item_buffs.update_armorskin", "Failed to Access Data: mega_armorskin_const_value");
this.list.armorskin = nil;
this.list.mega_armorskin = nil;
return; return;
end end
@@ -261,13 +280,15 @@ function this.update_might_seed(player_data, item_parameter)
local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data); local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data);
if atk_up_buff_second == nil then if atk_up_buff_second == nil then
error_handler.report("item_buffs.update_might_seed", "Failed to access Data: atk_up_buff_second"); error_handler.report("item_buffs.update_might_seed", "Failed to Access Data: atk_up_buff_second");
this.list.might_seed = nil;
return; return;
end end
local might_seed_atk_up = might_seed_atk_up_field:get_data(item_parameter); local might_seed_atk_up = might_seed_atk_up_field:get_data(item_parameter);
if might_seed_atk_up == nil then if might_seed_atk_up == nil then
error_handler.report("item_buffs.update_might_seed", "Failed to access Data: might_seed_atk_up"); error_handler.report("item_buffs.update_might_seed", "Failed to Access Data: might_seed_atk_up");
this.list.might_seed = nil;
return; return;
end end
@@ -279,10 +300,22 @@ function this.update_might_seed(player_data, item_parameter)
this.update_item_buff("might_seed", nil, nil, player_data, atk_up_buff_second_timer_field); this.update_item_buff("might_seed", nil, nil, player_data, atk_up_buff_second_timer_field);
end end
function this.init_all_UI()
for item_buff_key, item_buff in pairs(this.list) do
buffs.init_UI(item_buff);
end
end
function this.init_names()
for item_buff_key, item_buff in pairs(this.list) do
item_buff.name = this.get_item_buff_name(item_buff_key);
end
end
function this.get_item_buff_name(key) function this.get_item_buff_name(key)
local item_buff_name = get_name_method:call(nil, item_ids[key]); local item_buff_name = get_name_method:call(nil, item_ids[key]);
if item_buff_name == nil then if item_buff_name == nil then
error_handler.report("item_buffs.get_item_buff_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("item_buffs.get_item_buff_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -106,6 +106,8 @@ this.keys = {
this.list = {}; this.list = {};
local melody_effects_type_name = "melody_effects";
local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager"); local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager");
local find_master_player_method = player_manager_type_def:get_method("findMasterPlayer"); local find_master_player_method = player_manager_type_def:get_method("findMasterPlayer");
@@ -125,13 +127,13 @@ local get_name_method = data_shortcut_type_def:get_method("getName(snow.data.Dat
function this.update(master_player) function this.update(master_player)
local music_data_array = music_data_field:get_data(master_player); local music_data_array = music_data_field:get_data(master_player);
if music_data_array == nil then if music_data_array == nil then
error_handler.report("melody_effects.update", "Failed to access Data: music_data_array"); error_handler.report("melody_effects.update", "Failed to Access Data: music_data_array");
return; return;
end end
local length = get_length_method:call(music_data_array); local length = get_length_method:call(music_data_array);
if length == nil then if length == nil then
error_handler.report("melody_effects.update", "Failed to access Data: music_data_array -> length"); error_handler.report("melody_effects.update", "Failed to Access Data: music_data_array -> length");
return; return;
end end
@@ -150,7 +152,8 @@ function this.update(master_player)
local music_data = get_value_method:call(music_data_array, id); local music_data = get_value_method:call(music_data_array, id);
if music_data == nil then if music_data == nil then
error_handler.report("melody_effects.update", "Failed to access Data: music_data No." .. tostring(id)); error_handler.report("melody_effects.update", "Failed to Access Data: music_data No." .. tostring(id));
this.list[lua_index] = nil;
goto continue; goto continue;
end end
@@ -162,7 +165,8 @@ end
function this.update_melody_effect(lua_index, id, key, melody_effect, melody_data) function this.update_melody_effect(lua_index, id, key, melody_effect, melody_data)
local melody_timer = time_field:get_data(melody_data); local melody_timer = time_field:get_data(melody_data);
if melody_timer == nil then if melody_timer == nil then
error_handler.report("melody_effects.update_melody_effect", "Failed to access Data: melody_timer No. " .. tostring(id)); error_handler.report("melody_effects.update_melody_effect", "Failed to Access Data: melody_timer No. " .. tostring(id));
this.list[lua_index] = nil;
return; return;
end end
@@ -174,7 +178,7 @@ function this.update_melody_effect(lua_index, id, key, melody_effect, melody_dat
if melody_effect == nil then if melody_effect == nil then
local melody_effect_name = this.get_melody_effect_name(id); local melody_effect_name = this.get_melody_effect_name(id);
melody_effect = buffs.new(key, melody_effect_name, 1, melody_timer / 60); melody_effect = buffs.new(melody_effects_type_name, key, melody_effect_name, 1, melody_timer / 60);
this.list[lua_index] = melody_effect; this.list[lua_index] = melody_effect;
else else
buffs.update_timer(melody_effect, melody_timer / 60); buffs.update_timer(melody_effect, melody_timer / 60);
@@ -213,11 +217,23 @@ function this.apply_filter(key, lua_index)
return true; return true;
end end
function this.init_all_UI()
for melody_effect_id, melody_effect in pairs(this.list) do
buffs.init_UI(melody_effect);
end
end
function this.init_names()
for melody_effect_id, melody_effect in pairs(this.list) do
melody_effect.name = this.get_melody_effect_name(melody_effect_id - 1);
end
end
function this.get_melody_effect_name(id) function this.get_melody_effect_name(id)
local melody_effect_name = get_name_method:call(nil, id); local melody_effect_name = get_name_method:call(nil, id);
if melody_effect_name == nil then if melody_effect_name == nil then
local name = string.format("Melody Effect No. %d", id); local name = string.format("Melody Effect No. %d", id);
error_handler.report("melody_effects.get_melody_effect_name", "Failed to access Data: " .. melody_effect_name); error_handler.report("melody_effects.get_melody_effect_name", "Failed to Access Data: " .. melody_effect_name);
return name; return name;
end end

View File

@@ -78,6 +78,8 @@ this.keys = {
-- Immunizer 5min -- Immunizer 5min
-- Vase of Vitality 20sec -- Vase of Vitality 20sec
local misc_buffs_type_name = "misc_buffs";
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData"); local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Attack Up -- Attack Up
@@ -112,7 +114,8 @@ function this.update(player, player_data, item_parameter)
end end
function this.update_misc_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_misc_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.misc_buffs, this.get_misc_buff_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.misc_buffs, this.get_misc_buff_name,
misc_buffs_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
@@ -127,13 +130,15 @@ function this.update_attack_up(player_data, item_parameter)
local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data); local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data);
if atk_up_buff_second == nil then if atk_up_buff_second == nil then
error_handler.report("item_buffs.update_attack_up", "Failed to access Data: atk_up_buff_second"); error_handler.report("item_buffs.update_attack_up", "Failed to Access Data: atk_up_buff_second");
this.list.attack_up = nil;
return; return;
end end
local might_seed_atk_up = might_seed_atk_up_field:get_data(item_parameter); local might_seed_atk_up = might_seed_atk_up_field:get_data(item_parameter);
if might_seed_atk_up == nil then if might_seed_atk_up == nil then
error_handler.report("item_buffs.update_might_seed", "Failed to access Data: might_seed_atk_up"); error_handler.report("item_buffs.update_might_seed", "Failed to Access Data: might_seed_atk_up");
this.list.attack_up = nil;
return; return;
end end
@@ -145,10 +150,15 @@ function this.update_attack_up(player_data, item_parameter)
this.update_misc_buff("attack_up", nil, nil, player_data, atk_up_buff_second_timer_field); this.update_misc_buff("attack_up", nil, nil, player_data, atk_up_buff_second_timer_field);
end end
function this.init_all_UI()
for misc_buff_key, misc_buff in pairs(this.list) do
buffs.init_UI(misc_buff);
end
end
function this.init_names() function this.init_names()
for misc_buff_key, dango in pairs(this.list) do for misc_buff_key, misc_buff in pairs(this.list) do
dango.name = this.get_misc_buff_name(misc_buff_key); misc_buff.name = this.get_misc_buff_name(misc_buff_key);
end end
end end

View File

@@ -46,15 +46,15 @@ local ValueType = ValueType;
local package = package; local package = package;
this.list = { this.list = {
rousing_roar = nil,
go_fight_win = nil, go_fight_win = nil,
power_drum = nil power_drum = nil,
rousing_roar = nil
}; };
this.keys = { this.keys = {
"rousing_roar",
"go_fight_win", "go_fight_win",
"power_drum" "power_drum",
"rousing_roar"
}; };
local otomo_moves_ids = { local otomo_moves_ids = {
@@ -90,6 +90,8 @@ local otomo_moves_ids = {
-- ameowzing_mist = 30 -- ameowzing_mist = 30
}; };
local otomo_moves_type_name = "otomo_moves"
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData"); local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Palico: Rousing Roar -- Palico: Rousing Roar
local beast_roar_otomo_timer_field = player_data_type_def:get_field("_BeastRoarOtomoTimer"); local beast_roar_otomo_timer_field = player_data_type_def:get_field("_BeastRoarOtomoTimer");
@@ -108,7 +110,8 @@ function this.update(player_data)
end end
function this.update_otomo_move(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_otomo_move(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.otomo_moves, this.get_otomo_move_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.otomo_moves, this.get_otomo_move_name,
otomo_moves_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
end end
@@ -116,10 +119,22 @@ function this.apply_filter(key)
return buffs.apply_filter(this.list, config.current_config.buff_UI.filter.otomo_moves, key); return buffs.apply_filter(this.list, config.current_config.buff_UI.filter.otomo_moves, key);
end end
function this.init_all_UI()
for otomo_move_key, otomo_move in pairs(this.list) do
buffs.init_UI(otomo_move);
end
end
function this.init_names()
for otomo_move_key, otomo_move in pairs(this.list) do
otomo_move.name = this.get_otomo_move_name(otomo_move_key);
end
end
function this.get_otomo_move_name(key) function this.get_otomo_move_name(key)
local otomo_move_name = get_name_method:call(nil, otomo_moves_ids[key]); local otomo_move_name = get_name_method:call(nil, otomo_moves_ids[key]);
if otomo_move_name == nil then if otomo_move_name == nil then
error_handler.report("otomo_moves.get_otomo_move_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("otomo_moves.get_otomo_move_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -46,13 +46,13 @@ local ValueType = ValueType;
local package = package; local package = package;
this.list = { this.list = {
chameleos_soul = nil,
kushala_daora_soul = nil, kushala_daora_soul = nil,
chameleos_soul = nil
}; };
this.keys = { this.keys = {
"chameleos_soul",
"kushala_daora_soul", "kushala_daora_soul",
"chameleos_soul"
}; };
local rampage_skill_ids = { local rampage_skill_ids = {
@@ -60,6 +60,8 @@ local rampage_skill_ids = {
kushala_daora_soul = 251, kushala_daora_soul = 251,
}; };
local rampage_skills_type_name = "rampage_skills";
local kushara_daora_soul_breakpoint = 5; local kushara_daora_soul_breakpoint = 5;
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData"); local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
@@ -80,24 +82,31 @@ function this.update(player_data)
end end
function this.update_rampage_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_rampage_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.rampage_skills, this.get_rampage_skill_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.rampage_skills, this.get_rampage_skill_name,
rampage_skills_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
end end
function this.apply_filter(key) function this.apply_filter(key)
return this.apply_filter(this.list, config.current_config.buff_UI.filter.rampage_skills, key); return buffs.apply_filter(this.list, config.current_config.buff_UI.filter.rampage_skills, key);
end
function this.init_all_UI()
for rampage_skill_key, rampage_skill in pairs(this.list) do
buffs.init_UI(rampage_skill);
end
end end
function this.init_names() function this.init_names()
for rampage_skill_key, skill in pairs(this.list) do for rampage_skill_key, rampage_skill in pairs(this.list) do
skill.name = this.get_rampage_skill_name(rampage_skill_key); rampage_skill.name = this.get_rampage_skill_name(rampage_skill_key);
end end
end end
function this.get_rampage_skill_name(key) function this.get_rampage_skill_name(key)
local rampage_skill_name = get_name_method:call(nil, rampage_skill_ids[key]); local rampage_skill_name = get_name_method:call(nil, rampage_skill_ids[key]);
if rampage_skill_name == nil then if rampage_skill_name == nil then
error_handler.report("rampage_skills.get_rampage_skill_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("rampage_skills.get_rampage_skill_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -46,85 +46,85 @@ local ValueType = ValueType;
local package = package; local package = package;
this.list = { this.list = {
burst = nil,
intrepid_heart = nil,
dereliction = nil,
latent_power = nil,
protective_polish = nil,
wind_mantle = nil,
grinder_s = nil,
counterstrike = nil,
affinity_sliding = nil,
coalescence = nil,
adrenaline_rush = nil, adrenaline_rush = nil,
wall_runner = nil, affinity_sliding = nil,
offensive_guard = nil,
hellfire_cloak = nil,
agitator = nil, agitator = nil,
furious = nil,
status_trigger = nil,
heaven_sent = nil,
heroics = nil,
resuscitate = nil,
maximum_might = nil,
bloodlust = nil,
frenzied_bloodlust = nil,
peak_performance = nil,
dragonheart = nil,
resentment = nil,
bladescale_hone = nil,
spiribirds_call = nil,
embolden = nil,
berserk = nil, berserk = nil,
powder_mantle_red = nil, bladescale_hone = nil,
powder_mantle_blue = nil,
strife = nil,
inspiration = nil,
blood_awakening = nil, blood_awakening = nil,
bloodlust = nil,
burst = nil,
coalescence = nil,
counterstrike = nil,
dereliction = nil,
dragon_conversion_elemental_attack_up = nil, dragon_conversion_elemental_attack_up = nil,
dragon_conversion_elemental_res_up = nil, dragon_conversion_elemental_res_up = nil,
dragonheart = nil,
embolden = nil,
frenzied_bloodlust = nil,
furious = nil,
grinder_s = nil,
heaven_sent = nil,
hellfire_cloak = nil,
heroics = nil,
inspiration = nil,
intrepid_heart = nil,
latent_power = nil,
maximum_might = nil,
offensive_guard = nil,
partbreaker = nil, partbreaker = nil,
peak_performance = nil,
powder_mantle_red = nil,
powder_mantle_blue = nil,
protective_polish = nil,
resentment = nil,
resuscitate = nil,
spiribirds_call = nil,
status_trigger = nil,
strife = nil,
wall_runner = nil,
wind_mantle = nil,
}; };
this.keys = { this.keys = {
"burst",
"intrepid_heart",
"dereliction",
"latent_power",
"protective_polish",
"wind_mantle",
"grinder_s",
"counterstrike",
"affinity_sliding",
"coalescence",
"adrenaline_rush", "adrenaline_rush",
"wall_runner", "affinity_sliding",
"offensive_guard",
"hellfire_cloak",
"agitator", "agitator",
"furious",
"status_trigger",
"heaven_sent",
"heroics",
"resuscitate",
"maximum_might",
"bloodlust",
"frenzied_bloodlust",
"peak_performance",
"dragonheart",
"resentment",
"bladescale_hone",
"spiribirds_call",
"embolden",
"berserk", "berserk",
"powder_mantle_red", "bladescale_hone",
"powder_mantle_blue",
"strife",
"inspiration",
"blood_awakening", "blood_awakening",
"bloodlust",
"burst",
"coalescence",
"counterstrike",
"dereliction",
"dragon_conversion_elemental_attack_up", "dragon_conversion_elemental_attack_up",
"dragon_conversion_elemental_res_up", "dragon_conversion_elemental_res_up",
"partbreaker" "dragonheart",
"embolden",
"frenzied_bloodlust",
"furious",
"grinder_s",
"heaven_sent",
"hellfire_cloak",
"heroics",
"inspiration",
"intrepid_heart",
"latent_power",
"maximum_might",
"offensive_guard",
"partbreaker",
"peak_performance",
"powder_mantle_red",
"powder_mantle_blue",
"protective_polish",
"resentment",
"resuscitate",
"spiribirds_call",
"status_trigger",
"strife",
"wall_runner",
"wind_mantle"
}; };
local skills_type_name = "skills"; local skills_type_name = "skills";
@@ -449,7 +449,6 @@ function this.update(player, player_data, weapon_type)
this.update_skill("strife", player, get_affinity_equip_skill_233_method, nil, nil, nil, nil, strife_breakpoints[skill_data_list.strife.level]); this.update_skill("strife", player, get_affinity_equip_skill_233_method, nil, nil, nil, nil, strife_breakpoints[skill_data_list.strife.level]);
end end
function this.update_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
local skill_data = skill_data_list[key]; local skill_data = skill_data_list[key];
if skill_data ~= nil and skill_data.is_equipped ~= nil and not skill_data.is_equipped then if skill_data ~= nil and skill_data.is_equipped ~= nil and not skill_data.is_equipped then
@@ -457,12 +456,13 @@ function this.update_skill(key, value_owner, value_holder, timer_owner, timer_ho
return nil; return nil;
end end
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.skills, this.get_skill_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.skills, this.get_skill_name,
skills_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_skill_name, key, level, timer); return buffs.update_generic(this.list, this.get_skill_name, skills_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -472,7 +472,7 @@ end
function this.update_equipped_skill_data(player) function this.update_equipped_skill_data(player)
local player_skill_list = get_player_skill_list_method:call(player); local player_skill_list = get_player_skill_list_method:call(player);
if player_skill_list == nil then if player_skill_list == nil then
error_handler.report("buffs.update", "Failed to access Data: player_skill_list"); error_handler.report("this.update_equipped_skill_data", "Failed to Access Data: player_skill_list");
return; return;
end end
@@ -490,7 +490,7 @@ function this.update_equipped_skill_data(player)
local skill_level = skill_lv_field:get_data(re_skill_data); local skill_level = skill_lv_field:get_data(re_skill_data);
if skill_level == nil then if skill_level == nil then
error_handler.report("skills.update_equipped_skill_data", string.format("Failed to access Data: %s -> skill_level", skill_key)); error_handler.report("skills.update_equipped_skill_data", string.format("Failed to Access Data: %s -> skill_level", skill_key));
goto continue; goto continue;
end end
@@ -514,7 +514,8 @@ function this.update_wind_mantle(player, weapon_type)
local is_wind_mantle_enable = is_equip_skill_226_enable_field:get_data(player); local is_wind_mantle_enable = is_equip_skill_226_enable_field:get_data(player);
if is_wind_mantle_enable == nil then if is_wind_mantle_enable == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: is_wind_mantle_enable"); error_handler.report("skills.update_wind_mantle", "Failed to Access Data: is_wind_mantle_enable");
this.list.wind_mantle = nil;
return; return;
end end
@@ -525,13 +526,15 @@ function this.update_wind_mantle(player, weapon_type)
local wind_mantle_timer = equip_skill_226_attack_off_timer_field:get_data(player); local wind_mantle_timer = equip_skill_226_attack_off_timer_field:get_data(player);
if wind_mantle_timer == nil then if wind_mantle_timer == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: wind_mantle_timer"); error_handler.report("skills.update_wind_mantle", "Failed to Access Data: wind_mantle_timer");
this.list.wind_mantle = nil;
return; return;
end end
local wind_mantle_value = equip_skill_226_attack_count_field:get_data(player); local wind_mantle_value = equip_skill_226_attack_count_field:get_data(player);
if wind_mantle_value == nil then if wind_mantle_value == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: wind_mantle_value"); error_handler.report("skills.update_wind_mantle", "Failed to Access Data: wind_mantle_value");
this.list.wind_mantle = nil;
return; return;
end end
@@ -564,11 +567,13 @@ function this.update_maximum_might(player_data)
local whole_body_timer = whole_body_timer_field:get_data(player_data); local whole_body_timer = whole_body_timer_field:get_data(player_data);
if whole_body_timer == nil then if whole_body_timer == nil then
error_handler.report("skills.update_maximum_might", "Failed to access Data: whole_body_timer"); error_handler.report("skills.update_maximum_might", "Failed to Access Data: whole_body_timer");
this.list.maximum_might = nil;
return; return;
end end
if player_info.list.max_stamina == -1 then if player_info.list.max_stamina == -1 then
this.list.maximum_might = nil;
return; return;
end end
@@ -583,14 +588,14 @@ function this.update_maximum_might(player_data)
local maximum_might_name = this.get_skill_name("maximum_might"); local maximum_might_name = this.get_skill_name("maximum_might");
if whole_body_timer < maximum_might_previous_timer_value then if whole_body_timer < maximum_might_previous_timer_value then
this.list.maximum_might = buffs.new("maximum_might", maximum_might_name, 1); this.list.maximum_might = buffs.new(skills_type_name, "maximum_might", maximum_might_name, 1);
elseif utils.number.is_equal(whole_body_timer, 0) then elseif utils.number.is_equal(whole_body_timer, 0) then
if maximum_might_delay_timer == nil then if maximum_might_delay_timer == nil then
maximum_might_delay_timer = time.new_delay_timer(function() maximum_might_delay_timer = time.new_delay_timer(function()
maximum_might_delay_timer = nil; maximum_might_delay_timer = nil;
this.list.maximum_might = buffs.new("maximum_might", maximum_might_name, 1); this.list.maximum_might = buffs.new(skills_type_name, "maximum_might", maximum_might_name, 1);
end, 3.5); end, 3.5);
end end
@@ -627,11 +632,12 @@ function this.update_bloodlust()
if bloodlust == nil then if bloodlust == nil then
local bloodlust_name = this.get_skill_name("bloodlust"); local bloodlust_name = this.get_skill_name("bloodlust");
if bloodlust_name == nil then if bloodlust_name == nil then
error_handler.report("skills.update_bloodlust", "Failed to access Data: bloodlust_name"); error_handler.report("skills.update_bloodlust", "Failed to Access Data: bloodlust_name");
this.list.bloodlust = nil;
return; return;
end end
this.list.bloodlust = buffs.new("bloodlust", bloodlust_name); this.list.bloodlust = buffs.new(skills_type_name, "bloodlust", bloodlust_name);
end end
this.list.bloodlust.is_visible = true; this.list.bloodlust.is_visible = true;
@@ -644,7 +650,8 @@ function this.update_frenzied_bloodlust(player, player_data)
local hunter_wire_skill_231_num = get_hunter_wire_skill_231_num_method:call(player); local hunter_wire_skill_231_num = get_hunter_wire_skill_231_num_method:call(player);
if hunter_wire_skill_231_num == nil then if hunter_wire_skill_231_num == nil then
error_handler.report("skills.update_frenzied_bloodlust", "Failed to access Data: hunter_wire_skill_231_num"); error_handler.report("skills.update_frenzied_bloodlust", "Failed to Access Data: hunter_wire_skill_231_num");
this.list.frenzied_bloodlust = nil;
return; return;
end end
@@ -657,13 +664,15 @@ function this.update_frenzied_bloodlust(player, player_data)
local equip_skill_231_wire_num_timer = equip_skill_231_wire_num_timer_field:get_data(player_data); local equip_skill_231_wire_num_timer = equip_skill_231_wire_num_timer_field:get_data(player_data);
if equip_skill_231_wire_num_timer == nil then if equip_skill_231_wire_num_timer == nil then
error_handler.report("skills.update_frenzied_bloodlust", "Failed to access Data: equip_skill_231_wire_num_timer"); error_handler.report("skills.update_frenzied_bloodlust", "Failed to Access Data: equip_skill_231_wire_num_timer");
this.list.frenzied_bloodlust = nil;
return; return;
end end
local equip_skill_231_wp_off_timer = equip_skill_231_wp_off_timer_field:get_data(player_data); local equip_skill_231_wp_off_timer = equip_skill_231_wp_off_timer_field:get_data(player_data);
if equip_skill_231_wp_off_timer == nil then if equip_skill_231_wp_off_timer == nil then
error_handler.report("skills.update_frenzied_bloodlust", "Failed to access Data: equip_skill_231_wp_off_timer"); error_handler.report("skills.update_frenzied_bloodlust", "Failed to Access Data: equip_skill_231_wp_off_timer");
this.list.frenzied_bloodlust = nil;
return; return;
end end
@@ -770,7 +779,8 @@ function this.update_resentment(player_data)
local r_vital = r_vital_field:get_data(player_data); local r_vital = r_vital_field:get_data(player_data);
if r_vital == nil then if r_vital == nil then
error_handler.report("skills.update_resentment", "Failed to access Data: r_vital"); error_handler.report("skills.update_resentment", "Failed to Access Data: r_vital");
this.list.resentment = nil;
return; return;
end end
@@ -802,7 +812,8 @@ function this.update_spiribirds_call(player_data)
local equip_skill_211_timer = equip_skill_211_timer_field:get_data(player_data); local equip_skill_211_timer = equip_skill_211_timer_field:get_data(player_data);
if equip_skill_211_timer == nil then if equip_skill_211_timer == nil then
error_handler.report("skills.update_spiribirds_call", "Failed to access Data: equip_skill_211_timer"); error_handler.report("skills.update_spiribirds_call", "Failed to Access Data: equip_skill_211_timer");
this.list.spiribirds_call = nil;
return; return;
end end
@@ -837,6 +848,12 @@ function this.update_blood_awakening(player, player_data)
this.update_skill("blood_awakening", player, get_equip_skill_232_lv_method, player_data, equip_skill_232_timer_field, nil, nil, blood_awakening_breakpoints); this.update_skill("blood_awakening", player, get_equip_skill_232_lv_method, player_data, equip_skill_232_timer_field, nil, nil, blood_awakening_breakpoints);
end end
function this.init_all_UI()
for skill_key, skill in pairs(this.list) do
buffs.init_UI(skill);
end
end
function this.init_names() function this.init_names()
for skill_key, skill in pairs(this.list) do for skill_key, skill in pairs(this.list) do
skill.name = this.get_skill_name(skill_key); skill.name = this.get_skill_name(skill_key);
@@ -845,7 +862,6 @@ end
function this.get_skill_name(key) function this.get_skill_name(key)
local skill_data = skill_data_list[key]; local skill_data = skill_data_list[key];
if skill_data == nil then if skill_data == nil then
local skill_name = language.current_language.skills[key]; local skill_name = language.current_language.skills[key];
@@ -858,7 +874,7 @@ function this.get_skill_name(key)
local skill_name = get_name_method:call(nil, skill_data_list[key].id); local skill_name = get_name_method:call(nil, skill_data_list[key].id);
if skill_name == nil then if skill_name == nil then
error_handler.report("skills.get_skill_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("skills.get_skill_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -106,13 +106,66 @@ this.keys = {
"power_sheathe" "power_sheathe"
} }
}, },
-- Switch Axe
{
key = "switch_axe",
skill_keys = {
"amped_state",
"axe_heavy_slam",
"switch_charger",
}
},
-- Long Sword -- Long Sword
{ {
key = "long_sword", key = "long_sword",
skill_keys = { skill_keys = {
"spirit_gauge_autofill", -- Soaring Kick, Iai Slash "harvest_moon",
"spirit_gauge", "spirit_gauge",
"harvest_moon" "spirit_gauge_autofill", -- Soaring Kick, Iai Slash
}
},
-- Light Bowgun
{
key = "light_bowgun",
skill_keys = {
"fanning_maneuver",
"wyvernblast_reload"
}
},
-- Heavy Bowgun
{
key = "heavy_bowgun",
skill_keys = {
"counter_charger",
"overheat",
"rising_moon",
"setting_sun",
"wyvernsnipe_reload"
}
},
-- Hammer
{
key = "hammer",
skill_keys = {
"impact_burst"
}
},
-- Gunlance
{
key = "gunlance",
skill_keys = {
"erupting_cannon",
"ground_splitter",
}
},
-- Lance
{
key = "lance",
skill_keys = {
"anchor_rage",
"spiral_thrust",
"twin_wine"
} }
}, },
-- Sword & Shield -- Sword & Shield
@@ -126,52 +179,19 @@ this.keys = {
{ {
key = "dual_blades", key = "dual_blades",
skill_keys = { skill_keys = {
"archdemon_mode",
"ironshine_silk", "ironshine_silk",
"archdemon_mode"
}
},
-- Lance
{
key = "lance",
skill_keys = {
"anchor_rage",
"spiral_thrust",
"twin_wine"
}
},
-- Gunlance
{
key = "gunlance",
skill_keys = {
"ground_splitter",
"erupting_cannon"
}
},
-- Hammer
{
key = "hammer",
skill_keys = {
"impact_burst"
} }
}, },
-- Hunting Horn -- Hunting Horn
{ {
key = "hunting_horn", key = "hunting_horn",
skill_keys = { skill_keys = {
"silkbind_shockwave",
"bead_of_resonance", "bead_of_resonance",
"silkbind_shockwave",
"sonic_bloom" "sonic_bloom"
} }
}, },
-- Switch Axe
{
key = "switch_axe",
skill_keys = {
"amped_state",
"switch_charger",
"axe_heavy_slam"
}
},
-- Charge Blade -- Charge Blade
{ {
key = "charge_blade", key = "charge_blade",
@@ -190,33 +210,14 @@ this.keys = {
"all_extracts_mix" "all_extracts_mix"
} }
}, },
-- Light Bowgun
{
key = "light_bowgun",
skill_keys = {
"fanning_maneuver",
"wyvernblast_reload"
}
},
-- Heavy Bowgun
{
key = "heavy_bowgun",
skill_keys = {
"counter_charger",
"rising_moon",
"setting_sun",
"overheat",
"wyvernsnipe_reload"
}
},
-- Bow -- Bow
{ {
key = "bow", key = "bow",
skill_keys = { skill_keys = {
"herculean_draw",
"bolt_boost",
"arc_shot_affinity", "arc_shot_affinity",
"arc_shot_brace" "arc_shot_brace",
"bolt_boost",
"herculean_draw",
} }
} }
}; };
@@ -273,6 +274,7 @@ local weapon_skill_ids = {
bolt_boost = 154 bolt_boost = 154
}; };
local weapon_skill_type_name = "weapon_skills";
-- 0 Great Sword -- 0 Great Sword
local great_sword_type_name = "great_sword"; local great_sword_type_name = "great_sword";
-- 1 Switch Axe -- 1 Switch Axe
@@ -302,7 +304,8 @@ local insect_glaive_type_name = "insect_glaive";
-- 13 Bow -- 13 Bow
local bow_type_name = "bow"; local bow_type_name = "bow";
local previous_weapon_type = -1; local previous_weapon_type = 0;
local previous_weapon_key = "great_sword";
local spirit_gauge_breakpoints = {3, 2}; local spirit_gauge_breakpoints = {3, 2};
@@ -500,6 +503,7 @@ function this.update(player, player_data, weapon_type)
end end
previous_weapon_type = weapon_type; previous_weapon_type = weapon_type;
previous_weapon_key = this.keys[previous_weapon_type + 1].key;
if weapon_type == 0 then if weapon_type == 0 then
this.update_great_sword_skills(player); this.update_great_sword_skills(player);
@@ -546,12 +550,13 @@ function this.update(player, player_data, weapon_type)
end end
function this.update_weapon_skill(key, weapon_type_name, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_weapon_skill(key, weapon_type_name, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.weapon_skills[weapon_type_name], this.get_weapon_skill_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.weapon_skills[weapon_type_name], this.get_weapon_skill_name,
weapon_skill_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_weapon_skill_name, key, level, timer); return buffs.update_generic(this.list, this.get_weapon_skill_name, weapon_skill_type_name, key, level, timer);
end end
function this.apply_filter(weapon_type_name, key) function this.apply_filter(weapon_type_name, key)
@@ -581,35 +586,41 @@ function this.update_harvest_moon()
end end
if singletons.long_sword_shell_manager == nil then if singletons.long_sword_shell_manager == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: long_sword_shell_manager"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: long_sword_shell_manager");
this.list.harvest_moon = nil;
return; return;
end end
local master_long_sword_shell_010_list = get_master_long_sword_shell_010s_method:call(singletons.long_sword_shell_manager, players.myself.id); local master_long_sword_shell_010_list = get_master_long_sword_shell_010s_method:call(singletons.long_sword_shell_manager, players.myself.id);
if master_long_sword_shell_010_list == nil then if master_long_sword_shell_010_list == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: master_long_sword_shell_010_list"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: master_long_sword_shell_010_list");
this.list.harvest_moon = nil;
return; return;
end end
local master_long_sword_shell_010_list_count = get_long_sword_shell_010_list_count_method:call(master_long_sword_shell_010_list); local master_long_sword_shell_010_list_count = get_long_sword_shell_010_list_count_method:call(master_long_sword_shell_010_list);
if master_long_sword_shell_010_list_count == nil then if master_long_sword_shell_010_list_count == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: master_long_sword_shell_010_list_count"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: master_long_sword_shell_010_list_count");
this.list.harvest_moon = nil;
return; return;
end end
if master_long_sword_shell_010_list_count == 0 then if master_long_sword_shell_010_list_count == 0 then
this.list.harvest_moon = nil;
return; return;
end end
local master_long_sword_shell_010 = get_long_sword_shell_010_list_item_method:call(master_long_sword_shell_010_list, 0); local master_long_sword_shell_010 = get_long_sword_shell_010_list_item_method:call(master_long_sword_shell_010_list, 0);
if master_long_sword_shell_010 == nil then if master_long_sword_shell_010 == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: master_long_sword_shell_010"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: master_long_sword_shell_010");
this.list.harvest_moon = nil;
return; return;
end end
local life_timer = long_sword_shell_010_life_timer_field:get_data(master_long_sword_shell_010); local life_timer = long_sword_shell_010_life_timer_field:get_data(master_long_sword_shell_010);
if life_timer == nil then if life_timer == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: life_timer"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: life_timer");
this.list.harvest_moon = nil;
return; return;
end end
@@ -634,7 +645,8 @@ function this.update_wyvernblast_reload(player_data)
local wyvernblast_reload_timer = wyvernblast_reload_timer_field:get_data(player_data); local wyvernblast_reload_timer = wyvernblast_reload_timer_field:get_data(player_data);
if wyvernblast_reload_timer == nil then if wyvernblast_reload_timer == nil then
error_handler.report("weapon_skills.update_wyvernblast_reload", "Failed to access Data: heavy_bowgun_overheat_timer_field"); error_handler.report("weapon_skills.update_wyvernblast_reload", "Failed to Access Data: heavy_bowgun_overheat_timer_field");
this.list.wyvernblast_reload = nil;
return; return;
end end
@@ -663,19 +675,22 @@ function this.update_rising_moon()
end end
if singletons.light_bowgun_shell_manager == nil then if singletons.light_bowgun_shell_manager == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_manager"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: light_bowgun_shell_manager");
this.list.rising_moon = nil;
return; return;
end end
local light_bowgun_shell_030s_speed_boost_list = get_light_bowgun_shell_030s_speed_boost_list_method:call(singletons.light_bowgun_shell_manager); local light_bowgun_shell_030s_speed_boost_list = get_light_bowgun_shell_030s_speed_boost_list_method:call(singletons.light_bowgun_shell_manager);
if light_bowgun_shell_030s_speed_boost_list == nil then if light_bowgun_shell_030s_speed_boost_list == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_030s_speed_boost_list"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: light_bowgun_shell_030s_speed_boost_list");
this.list.rising_moon = nil;
return; return;
end end
local light_bowgun_shell_030_speed_boost_list_count = get_light_bowgun_shell_030_list_count_method:call(light_bowgun_shell_030s_speed_boost_list); local light_bowgun_shell_030_speed_boost_list_count = get_light_bowgun_shell_030_list_count_method:call(light_bowgun_shell_030s_speed_boost_list);
if light_bowgun_shell_030_speed_boost_list_count == nil then if light_bowgun_shell_030_speed_boost_list_count == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_030_speed_boost_list_count"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: light_bowgun_shell_030_speed_boost_list_count");
this.list.rising_moon = nil;
return; return;
end end
@@ -684,16 +699,17 @@ function this.update_rising_moon()
return; return;
end end
-- Possibly requires players.myself.id instead of 0?
local light_bowgun_shell_030 = get_light_bowgun_shell_030_list_item_method:call(light_bowgun_shell_030s_speed_boost_list, 0); local light_bowgun_shell_030 = get_light_bowgun_shell_030_list_item_method:call(light_bowgun_shell_030s_speed_boost_list, 0);
if light_bowgun_shell_030 == nil then if light_bowgun_shell_030 == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_030"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: light_bowgun_shell_030");
this.list.rising_moon = nil;
return; return;
end end
local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030); local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030);
if is_hit_enable == nil then if is_hit_enable == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: is_hit_enable"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: is_hit_enable");
this.list.rising_moon = nil;
return; return;
end end
@@ -704,7 +720,8 @@ function this.update_rising_moon()
local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030); local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030);
if timer == nil then if timer == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: timer"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: timer");
this.list.rising_moon = nil;
return; return;
end end
@@ -722,19 +739,22 @@ function this.update_setting_sun()
end end
if singletons.light_bowgun_shell_manager == nil then if singletons.light_bowgun_shell_manager == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_manager"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: light_bowgun_shell_manager");
this.list.setting_sun = nil;
return; return;
end end
local light_bowgun_shell_030s_all_list = get_light_bowgun_shell_030s_all_list_method:call(singletons.light_bowgun_shell_manager); local light_bowgun_shell_030s_all_list = get_light_bowgun_shell_030s_all_list_method:call(singletons.light_bowgun_shell_manager);
if light_bowgun_shell_030s_all_list == nil then if light_bowgun_shell_030s_all_list == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_030s_all_list"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: light_bowgun_shell_030s_all_list");
this.list.setting_sun = nil;
return; return;
end end
local light_bowgun_shell_030_all_list_count = get_light_bowgun_shell_030_list_count_method:call(light_bowgun_shell_030s_all_list); local light_bowgun_shell_030_all_list_count = get_light_bowgun_shell_030_list_count_method:call(light_bowgun_shell_030s_all_list);
if light_bowgun_shell_030_all_list_count == nil then if light_bowgun_shell_030_all_list_count == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_030_all_list_count"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: light_bowgun_shell_030_all_list_count");
this.list.setting_sun = nil;
return; return;
end end
@@ -748,16 +768,17 @@ function this.update_setting_sun()
return; return;
end end
-- Possibly requires players.myself.id instead of 0?
local light_bowgun_shell_030 = get_light_bowgun_shell_030_list_item_method:call(light_bowgun_shell_030s_all_list, 0); local light_bowgun_shell_030 = get_light_bowgun_shell_030_list_item_method:call(light_bowgun_shell_030s_all_list, 0);
if light_bowgun_shell_030 == nil then if light_bowgun_shell_030 == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_030"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: light_bowgun_shell_030");
this.list.setting_sun = nil;
return; return;
end end
local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030); local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030);
if is_hit_enable == nil then if is_hit_enable == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: is_hit_enable"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: is_hit_enable");
this.list.setting_sun = nil;
return; return;
end end
@@ -768,7 +789,8 @@ function this.update_setting_sun()
local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030); local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030);
if timer == nil then if timer == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: timer"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: timer");
this.list.setting_sun = nil;
return; return;
end end
@@ -787,7 +809,8 @@ function this.update_overheat(player_data)
local heavy_bowgun_overheat_timer = heavy_bowgun_overheat_timer_field:get_data(player_data); local heavy_bowgun_overheat_timer = heavy_bowgun_overheat_timer_field:get_data(player_data);
if heavy_bowgun_overheat_timer_field == nil then if heavy_bowgun_overheat_timer_field == nil then
error_handler.report("weapon_skills.update_overheat", "Failed to access Data: heavy_bowgun_overheat_timer_field"); error_handler.report("weapon_skills.update_overheat", "Failed to Access Data: heavy_bowgun_overheat_timer_field");
this.list.overheat = nil;
return; return;
end end
@@ -822,7 +845,8 @@ function this.update_twin_wine(player)
local chain_death_match_shell = chain_death_match_shell_field:get_data(player); local chain_death_match_shell = chain_death_match_shell_field:get_data(player);
if chain_death_match_shell == nil then if chain_death_match_shell == nil then
error_handler.report("weapon_skills.update_twin_wine", "Failed to access Data: chain_death_match_shell"); error_handler.report("weapon_skills.update_twin_wine", "Failed to Access Data: chain_death_match_shell");
this.list.twin_wine = nil;
return; return;
end end
@@ -846,7 +870,8 @@ function this.update_archdemon_mode(player)
local is_kijin_kyouka = is_kijin_kyouka_field:get_data(player); local is_kijin_kyouka = is_kijin_kyouka_field:get_data(player);
if is_kijin_kyouka == nil then if is_kijin_kyouka == nil then
error_handler.report("weapon_skills.update_archdemon_mode", "Failed to access Data: is_kijin_kyouka"); error_handler.report("weapon_skills.update_archdemon_mode", "Failed to Access Data: is_kijin_kyouka");
this.list.archdemon_mode = nil;
return; return;
end end
@@ -857,7 +882,8 @@ function this.update_archdemon_mode(player)
local kijin_kyouka_gauge = get_kijin_kyouka_gauge_method:call(player); local kijin_kyouka_gauge = get_kijin_kyouka_gauge_method:call(player);
if kijin_kyouka_gauge == nil then if kijin_kyouka_gauge == nil then
error_handler.report("weapon_skills.update_archdemon_mode", "Failed to access Data: kijin_kyouka_gauge"); error_handler.report("weapon_skills.update_archdemon_mode", "Failed to Access Data: kijin_kyouka_gauge");
this.list.archdemon_mode = nil;
return; return;
end end
@@ -882,36 +908,41 @@ function this.update_bead_of_resonance()
end end
if singletons.horn_shell_manager == nil then if singletons.horn_shell_manager == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_manager"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_manager");
this.list.bead_of_resonance = nil;
return; return;
end end
local horn_shell_003s_array = horn_shell_003s_field:get_data(singletons.horn_shell_manager); local horn_shell_003s_array = horn_shell_003s_field:get_data(singletons.horn_shell_manager);
if horn_shell_003s_array == nil then if horn_shell_003s_array == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003s_list"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003s_list");
this.list.bead_of_resonance = nil;
return; return;
end end
local horn_shell_003s_array_length = get_length_method:call(horn_shell_003s_array); local horn_shell_003s_array_length = get_length_method:call(horn_shell_003s_array);
if horn_shell_003s_array_length == nil then if horn_shell_003s_array_length == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003s_array_length"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003s_array_length");
return;
end
if players.myself.id >= horn_shell_003s_array_length then
this.list.bead_of_resonance = nil; this.list.bead_of_resonance = nil;
return; return;
end end
local horn_shell_003_list = get_value_method:call(horn_shell_003s_array, players.myself.id); if horn_shell_003s_array_length == 0 then
this.list.bead_of_resonance = nil;
return;
end
local horn_shell_003_list = get_value_method:call(horn_shell_003s_array, 0);
if horn_shell_003_list == nil then if horn_shell_003_list == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003_list"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003_list");
this.list.bead_of_resonance = nil;
return; return;
end end
local horn_shell_003_list_count = get_horn_shell_003_list_count_method:call(horn_shell_003_list); local horn_shell_003_list_count = get_horn_shell_003_list_count_method:call(horn_shell_003_list);
if horn_shell_003_list_count == nil then if horn_shell_003_list_count == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003_list_count"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003_list_count");
this.list.bead_of_resonance = nil;
return; return;
end end
@@ -922,13 +953,15 @@ function this.update_bead_of_resonance()
local horn_shell_003 = get_horn_shell_003_list_item_method:call(horn_shell_003_list, 0); local horn_shell_003 = get_horn_shell_003_list_item_method:call(horn_shell_003_list, 0);
if horn_shell_003 == nil then if horn_shell_003 == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003");
this.list.bead_of_resonance = nil;
return; return;
end end
local life_timer = horn_shell_003_life_timer_field:get_data(horn_shell_003); local life_timer = horn_shell_003_life_timer_field:get_data(horn_shell_003);
if life_timer == nil then if life_timer == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: life_timer"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: life_timer");
this.list.bead_of_resonance = nil;
return; return;
end end
@@ -947,18 +980,19 @@ function this.update_sonic_bloom(player)
local blast_speaker_shell = get_ref_blast_speaker_shell_method:call(player); local blast_speaker_shell = get_ref_blast_speaker_shell_method:call(player);
if blast_speaker_shell == nil then if blast_speaker_shell == nil then
this.list.bead_of_resonance = nil; this.list.sonic_bloom = nil;
return; return;
end end
local life_timer = horn_shell_020_life_timer_field:get_data(blast_speaker_shell); local life_timer = horn_shell_020_life_timer_field:get_data(blast_speaker_shell);
if life_timer == nil then if life_timer == nil then
error_handler.report("weapon_skills.update_sonic_bloom", "Failed to access Data: life_timer"); error_handler.report("weapon_skills.update_sonic_bloom", "Failed to Access Data: life_timer");
this.list.sonic_bloom = nil;
return; return;
end end
if utils.number.is_equal(life_timer, 0) then if utils.number.is_equal(life_timer, 0) then
this.list.bead_of_resonance = nil; this.list.sonic_bloom = nil;
return; return;
end end
@@ -967,7 +1001,6 @@ end
function this.update_charge_blade_skills(player) function this.update_charge_blade_skills(player)
this.update_weapon_skill("element_boost", charge_blade_type_name, nil, nil, player, shield_buff_timer_field); this.update_weapon_skill("element_boost", charge_blade_type_name, nil, nil, player, shield_buff_timer_field);
this.update_weapon_skill("sword_boost_mode", charge_blade_type_name, nil, nil, player, sword_buff_timer_field); this.update_weapon_skill("sword_boost_mode", charge_blade_type_name, nil, nil, player, sword_buff_timer_field);
end end
@@ -993,7 +1026,8 @@ function this.update_all_extracts_mix(player)
local is_get_all_extractive = is_get_all_extractive_method:call(player); local is_get_all_extractive = is_get_all_extractive_method:call(player);
if is_get_all_extractive == nil then if is_get_all_extractive == nil then
error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to access Data: is_get_all_extractive"); error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to Access Data: is_get_all_extractive");
this.list.all_extracts_mix = nil;
return; return;
end end
@@ -1004,7 +1038,8 @@ function this.update_all_extracts_mix(player)
local red_extractive_time = get_red_extractive_time_method:call(player); local red_extractive_time = get_red_extractive_time_method:call(player);
if red_extractive_time == nil then if red_extractive_time == nil then
error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to access Data: red_extractive_time"); error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to Access Data: red_extractive_time");
this.list.all_extracts_mix = nil;
return; return;
end end
@@ -1023,7 +1058,8 @@ function this.update_extract(player, extract_key, time_holder)
local extractive_time = time_holder:call(player); local extractive_time = time_holder:call(player);
if extractive_time == nil then if extractive_time == nil then
error_handler.report("weapon_skills.update_extract", string.format("Failed to access Data: %s_extractive_time", extract_key)); error_handler.report("weapon_skills.update_extract", string.format("Failed to Access Data: %s_extractive_time", extract_key));
this.list[extract_key] = nil;
return; return;
end end
@@ -1042,6 +1078,12 @@ function this.update_bow_skills(player, player_data)
this.update_weapon_skill("arc_shot_brace", bow_type_name, nil, nil, player_data, super_armor_item_timer_field); this.update_weapon_skill("arc_shot_brace", bow_type_name, nil, nil, player_data, super_armor_item_timer_field);
end end
function this.init_all_UI()
for weapon_skill_key, weapon_skill in pairs(this.list) do
buffs.init_UI(weapon_skill);
end
end
function this.init_names() function this.init_names()
for weapon_skill_key, weapon_skill in pairs(this.list) do for weapon_skill_key, weapon_skill in pairs(this.list) do
weapon_skill.name = this.get_weapon_skill_name(weapon_skill_key); weapon_skill.name = this.get_weapon_skill_name(weapon_skill_key);
@@ -1049,9 +1091,10 @@ function this.init_names()
end end
function this.get_weapon_skill_name(weapon_skill_key) function this.get_weapon_skill_name(weapon_skill_key)
if weapon_skill_ids[weapon_skill_key] == nil then local weapon_skill_id = weapon_skill_ids[weapon_skill_key];
if weapon_skill_id == nil then
local weapon_skill_name = language.current_language.weapon_skills[weapon_skill_key]; local weapon_skill_name = language.current_language.weapon_skills[previous_weapon_key][weapon_skill_key];
if weapon_skill_name == nil then if weapon_skill_name == nil then
return weapon_skill_key; return weapon_skill_key;
end end
@@ -1059,9 +1102,9 @@ function this.get_weapon_skill_name(weapon_skill_key)
return weapon_skill_name; return weapon_skill_name;
end end
local weapon_skill_name = get_name_method:call(nil, weapon_skill_ids[weapon_skill_key]); local weapon_skill_name = get_name_method:call(nil, weapon_skill_id);
if weapon_skill_name == nil then if weapon_skill_name == nil then
error_handler.report("weapon_skills.get_weapon_skill_name", string.format("Failed to access Data: %s_name", weapon_skill_key)); error_handler.report("weapon_skills.get_weapon_skill_name", string.format("Failed to Access Data: %s_name", weapon_skill_key));
return weapon_skill_key; return weapon_skill_key;
end end

View File

@@ -107,13 +107,13 @@ function this.update_damage(enemy, enemy_calc_damage_info)
local is_large_monster = is_boss_enemy_method:call(enemy); local is_large_monster = is_boss_enemy_method:call(enemy);
if is_large_monster == nil then if is_large_monster == nil then
error_handler.report("damage_hook.update_damage", "Failed to access Data: is_large_monster"); error_handler.report("damage_hook.update_damage", "Failed to Access Data: is_large_monster");
return; return;
end end
local dead_or_captured = check_die_method:call(enemy); local dead_or_captured = check_die_method:call(enemy);
if dead_or_captured == nil then if dead_or_captured == nil then
error_handler.report("damage_hook.update_damage", "Failed to access Data: dead_or_captured"); error_handler.report("damage_hook.update_damage", "Failed to Access Data: dead_or_captured");
return; return;
end end
@@ -231,33 +231,6 @@ function this.update_damage(enemy, enemy_calc_damage_info)
players.update_damage(players.total, damage_source_type, is_large_monster, damage_object); players.update_damage(players.total, damage_source_type, is_large_monster, damage_object);
players.update_damage(player, damage_source_type, is_large_monster, damage_object); players.update_damage(player, damage_source_type, is_large_monster, damage_object);
--[[xy = string.format(
PhysicalPartsVitalDamage(): %s
PhysicalPartsBreakVitalDamage(): %s
PhysicalPartsLossVitalDamage(): %s
PhysicalMultiPartsVitalDamage(): %s
ElementPartsVitalDamage(): %s
ElementPartsBreakVitalDamage(): %s
ElementPartsLossVitalDamage(): %s
ElementMultiPartsVitalDamage(): %s
IsBreakPartsDamage(): %s
,
tostring(enemy_calc_damage_info:get_PhysicalPartsVitalDamage()),
tostring(enemy_calc_damage_info:get_PhysicalPartsBreakVitalDamage()),
tostring(enemy_calc_damage_info:get_PhysicalPartsLossVitalDamage()),
tostring(enemy_calc_damage_info:get_PhysicalMultiPartsVitalDamage()),
tostring(enemy_calc_damage_info:get_ElementPartsVitalDamage()),
tostring(enemy_calc_damage_info:get_ElementPartsBreakVitalDamage()),
tostring(enemy_calc_damage_info:get_ElementPartsLossVitalDamage()),
tostring(enemy_calc_damage_info:get_ElementMultiPartsVitalDamage()),
tostring(enemy_calc_damage_info:get_IsBreakPartsDamage())
);]]
end end
function this.cart(dead_player_id, flag_cat_skill_insurance) function this.cart(dead_player_id, flag_cat_skill_insurance)
@@ -358,7 +331,7 @@ function this.on_anomaly_core_break(anomaly_core_part)
local anomaly_core_break_damage_rate = get_mystery_core_break_damage_rate_method:call(anomaly_monster.enemy); local anomaly_core_break_damage_rate = get_mystery_core_break_damage_rate_method:call(anomaly_monster.enemy);
if anomaly_core_break_damage_rate == nil then if anomaly_core_break_damage_rate == nil then
error_handler.report("damage_hook.on_anomaly_core_break", "Failed to access Data: anomaly_core_break_damage_rate"); error_handler.report("damage_hook.on_anomaly_core_break", "Failed to Access Data: anomaly_core_break_damage_rate");
return; return;
end end

View File

@@ -134,19 +134,19 @@ function this.update_servant_list()
local cached_config = config.current_config.damage_meter_UI; local cached_config = config.current_config.damage_meter_UI;
if singletons.servant_manager == nil then if singletons.servant_manager == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: servant_manager"); error_handler.report("non_players.update_servant_list", "Failed to Access Data: servant_manager");
return; return;
end end
local quest_servant_id_list = get_quest_servant_id_list_method:call(singletons.servant_manager); local quest_servant_id_list = get_quest_servant_id_list_method:call(singletons.servant_manager);
if quest_servant_id_list == nil then if quest_servant_id_list == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: quest_servant_id_list"); -- error_handler.report("non_players.update_servant_list", "Failed to Access Data: quest_servant_id_list");
return; return;
end end
local servant_count = servant_get_count_method:call(quest_servant_id_list); local servant_count = servant_get_count_method:call(quest_servant_id_list);
if servant_count == nil then if servant_count == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: servant_count"); error_handler.report("non_players.update_servant_list", "Failed to Access Data: servant_count");
return; return;
end end
@@ -154,20 +154,20 @@ function this.update_servant_list()
for i = 0, servant_count - 1 do for i = 0, servant_count - 1 do
local servant_id = servant_get_item_method:call(quest_servant_id_list, i); local servant_id = servant_get_item_method:call(quest_servant_id_list, i);
if servant_id == nil then if servant_id == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: servant_id No." .. tostring(i)); error_handler.report("non_players.update_servant_list", "Failed to Access Data: servant_id No." .. tostring(i));
goto continue; goto continue;
end end
local ai_control = get_ai_control_by_servant_id_method:call(singletons.servant_manager, servant_id); local ai_control = get_ai_control_by_servant_id_method:call(singletons.servant_manager, servant_id);
if ai_control == nil then if ai_control == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: ai_control No." .. tostring(i)); error_handler.report("non_players.update_servant_list", "Failed to Access Data: ai_control No." .. tostring(i));
goto continue; goto continue;
end end
local servant_info = get_servant_info_method:call(ai_control); local servant_info = get_servant_info_method:call(ai_control);
if servant_info == nil then if servant_info == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: servant_info No." .. tostring(i)); error_handler.report("non_players.update_servant_list", "Failed to Access Data: servant_info No." .. tostring(i));
goto continue; goto continue;
end end
@@ -191,7 +191,7 @@ end
function this.update_otomo_list(is_on_quest, is_online) function this.update_otomo_list(is_on_quest, is_online)
if singletons.otomo_manager == nil then if singletons.otomo_manager == nil then
error_handler.report("non_players.update_otomo_list", "Failed to access Data: otomo_manager"); error_handler.report("non_players.update_otomo_list", "Failed to Access Data: otomo_manager");
return; return;
end end
@@ -220,11 +220,11 @@ function this.update_my_otomos()
local first_otomo = get_master_otomo_info_method:call(singletons.otomo_manager, 0); local first_otomo = get_master_otomo_info_method:call(singletons.otomo_manager, 0);
if first_otomo == nil then if first_otomo == nil then
error_handler.report("non_players.update_my_otomos", "Failed to access Data: first_otomo"); error_handler.report("non_players.update_my_otomos", "Failed to Access Data: first_otomo");
else else
local name = otomo_create_data_name_field:get_data(first_otomo); local name = otomo_create_data_name_field:get_data(first_otomo);
if name == nil then if name == nil then
error_handler.report("non_players.update_my_otomos", "Failed to access Data: first_otomo -> name"); error_handler.report("non_players.update_my_otomos", "Failed to Access Data: first_otomo -> name");
end end
if name ~= nil and name ~= "" then if name ~= nil and name ~= "" then
@@ -241,11 +241,11 @@ function this.update_my_otomos()
local second_otomo = get_master_otomo_info_method:call(singletons.otomo_manager, 1); local second_otomo = get_master_otomo_info_method:call(singletons.otomo_manager, 1);
if second_otomo == nil then if second_otomo == nil then
error_handler.report("non_players.update_my_otomos", "Failed to access Data: second_otomo"); error_handler.report("non_players.update_my_otomos", "Failed to Access Data: second_otomo");
else else
local name = otomo_create_data_name_field:get_data(second_otomo); local name = otomo_create_data_name_field:get_data(second_otomo);
if name == nil then if name == nil then
error_handler.report("non_players.update_my_otomos", "Failed to access Data: second_otomo -> name"); error_handler.report("non_players.update_my_otomos", "Failed to Access Data: second_otomo -> name");
return; return;
end end
@@ -268,20 +268,20 @@ function this.update_servant_otomos()
local servant_otomo_list = get_servant_otomo_list_method:call(singletons.otomo_manager); local servant_otomo_list = get_servant_otomo_list_method:call(singletons.otomo_manager);
if servant_otomo_list == nil then if servant_otomo_list == nil then
error_handler.report("non_players.update_servant_otomos", "Failed to access Data: servant_otomo_list"); error_handler.report("non_players.update_servant_otomos", "Failed to Access Data: servant_otomo_list");
return; return;
end end
local count = otomo_get_count_method:call(servant_otomo_list); local count = otomo_get_count_method:call(servant_otomo_list);
if count == nil then if count == nil then
error_handler.report("non_players.update_servant_otomos", "Failed to access Data: servant_otomo_list -> count"); error_handler.report("non_players.update_servant_otomos", "Failed to Access Data: servant_otomo_list -> count");
return; return;
end end
for i = 0, count - 1 do for i = 0, count - 1 do
local servant_otomo = otomo_get_item_method:call(servant_otomo_list, i); local servant_otomo = otomo_get_item_method:call(servant_otomo_list, i);
if servant_otomo == nil then if servant_otomo == nil then
error_handler.report("non_players.update_servant_otomos", "Failed to access Data: servant_otomo No. " .. tostring(i)); error_handler.report("non_players.update_servant_otomos", "Failed to Access Data: servant_otomo No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -292,7 +292,7 @@ function this.update_servant_otomos()
local member_id = otomo_create_data:get_field("MemberID"); local member_id = otomo_create_data:get_field("MemberID");
if name == nil then if name == nil then
error_handler.report("non_players.update_servant_otomos", string.format("Failed to access Data: servant_otomo No. %d -> name", i)); error_handler.report("non_players.update_servant_otomos", string.format("Failed to Access Data: servant_otomo No. %d -> name", i));
goto continue; goto continue;
end end
@@ -313,33 +313,33 @@ function this.update_otomos(otomo_info_field_)
local cached_config = config.current_config.damage_meter_UI; local cached_config = config.current_config.damage_meter_UI;
if singletons.lobby_manager == nil then if singletons.lobby_manager == nil then
error_handler.report("non_players.update_otomos", "Failed to access Data: lobby_manager"); error_handler.report("non_players.update_otomos", "Failed to Access Data: lobby_manager");
return; return;
end end
-- other players -- other players
local otomo_info_list = otomo_info_field_:get_data(singletons.lobby_manager); local otomo_info_list = otomo_info_field_:get_data(singletons.lobby_manager);
if otomo_info_list == nil then if otomo_info_list == nil then
error_handler.report("non_players.update_otomos", "Failed to access Data: otomo_info_list"); error_handler.report("non_players.update_otomos", "Failed to Access Data: otomo_info_list");
return; return;
end end
local count = otomo_info_get_count_method:call(otomo_info_list); local count = otomo_info_get_count_method:call(otomo_info_list);
if count == nil then if count == nil then
error_handler.report("non_players.update_otomos", "Failed to access Data: otomo_info_list -> count"); error_handler.report("non_players.update_otomos", "Failed to Access Data: otomo_info_list -> count");
return; return;
end end
for id = 0, count - 1 do for id = 0, count - 1 do
local otomo_info = otomo_info_get_item_method:call(otomo_info_list, id); local otomo_info = otomo_info_get_item_method:call(otomo_info_list, id);
if otomo_info == nil then if otomo_info == nil then
error_handler.report("non_players.update_otomos", "Failed to access Data: otomo_info No. " .. tostring(id)); error_handler.report("non_players.update_otomos", "Failed to Access Data: otomo_info No. " .. tostring(id));
goto continue; goto continue;
end end
local name = otomo_info_name_field:get_data(otomo_info); local name = otomo_info_name_field:get_data(otomo_info);
if name == nil then if name == nil then
error_handler.report("non_players.update_otomos", string.format("Failed to access Data: otomo_info No. %d -> name", id)); error_handler.report("non_players.update_otomos", string.format("Failed to Access Data: otomo_info No. %d -> name", id));
goto continue; goto continue;
end end

View File

@@ -390,7 +390,7 @@ local get_pos_field = player_base_type_def:get_method("get_Pos");
function this.update_myself_position() function this.update_myself_position()
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("players.update_myself_position", "Failed to access Data: player_manager"); error_handler.report("players.update_myself_position", "Failed to Access Data: player_manager");
return; return;
end end
@@ -401,13 +401,13 @@ function this.update_myself_position()
local master_player = find_master_player_method:call(singletons.player_manager); local master_player = find_master_player_method:call(singletons.player_manager);
if master_player == nil then if master_player == nil then
error_handler.report("players.update_myself_position", "Failed to access Data: master_player"); error_handler.report("players.update_myself_position", "Failed to Access Data: master_player");
return; return;
end end
local position = get_pos_field:call(master_player); local position = get_pos_field:call(master_player);
if position == nil then if position == nil then
error_handler.report("players.update_myself_position", "Failed to access Data: position"); error_handler.report("players.update_myself_position", "Failed to Access Data: position");
end end
this.myself_position = position; this.myself_position = position;
@@ -466,25 +466,25 @@ function this.update_player_list(hunter_info_field_)
local cached_config = config.current_config.damage_meter_UI; local cached_config = config.current_config.damage_meter_UI;
if singletons.lobby_manager == nil then if singletons.lobby_manager == nil then
error_handler.report("players.update_player_list", "Failed to access Data: lobby_manager"); error_handler.report("players.update_player_list", "Failed to Access Data: lobby_manager");
return; return;
end end
if singletons.progress_manager == nil then if singletons.progress_manager == nil then
error_handler.report("players.update_player_list", "Failed to access Data: progress_manager"); error_handler.report("players.update_player_list", "Failed to Access Data: progress_manager");
return; return;
end end
-- myself player -- myself player
local myself_player_info = my_hunter_info_field:get_data(singletons.lobby_manager); local myself_player_info = my_hunter_info_field:get_data(singletons.lobby_manager);
if myself_player_info == nil then if myself_player_info == nil then
error_handler.report("players.update_player_list", "Failed to access Data: myself_player_info"); error_handler.report("players.update_player_list", "Failed to Access Data: myself_player_info");
return; return;
end end
local myself_player_name = name_field:get_data(myself_player_info); local myself_player_name = name_field:get_data(myself_player_info);
if myself_player_name == nil then if myself_player_name == nil then
error_handler.report("players.update_player_list", "Failed to access Data: myself_player_name"); error_handler.report("players.update_player_list", "Failed to Access Data: myself_player_name");
return; return;
end end
@@ -494,7 +494,7 @@ function this.update_player_list(hunter_info_field_)
local myself_id = get_master_player_id_method:call(singletons.player_manager); local myself_id = get_master_player_id_method:call(singletons.player_manager);
if myself_id == nil then if myself_id == nil then
error_handler.report("players.update_player_list", "Failed to access Data: myself_id"); error_handler.report("players.update_player_list", "Failed to Access Data: myself_id");
return; return;
end end
@@ -507,26 +507,26 @@ function this.update_player_list(hunter_info_field_)
-- other players -- other players
local player_info_array = hunter_info_field_:get_data(singletons.lobby_manager); local player_info_array = hunter_info_field_:get_data(singletons.lobby_manager);
if player_info_array == nil then if player_info_array == nil then
error_handler.report("players.update_player_list", "Failed to access Data: player_info_array"); error_handler.report("players.update_player_list", "Failed to Access Data: player_info_array");
return; return;
end end
local count = get_count_method:call(player_info_array); local count = get_count_method:call(player_info_array);
if count == nil then if count == nil then
error_handler.report("players.update_player_list", "Failed to access Data: player_info_array -> count"); error_handler.report("players.update_player_list", "Failed to Access Data: player_info_array -> count");
return; return;
end end
for i = 0, count - 1 do for i = 0, count - 1 do
local player_info = get_item_method:call(player_info_array, i); local player_info = get_item_method:call(player_info_array, i);
if player_info == nil then if player_info == nil then
error_handler.report("players.update_player_list", "Failed to access Data: player_info No. " .. tostring(i)); -- error_handler.report("players.update_player_list", "Failed to Access Data: player_info No. " .. tostring(i));
goto continue; goto continue;
end end
local id = member_index_field:get_data(player_info); local id = member_index_field:get_data(player_info);
if id == nil then if id == nil then
error_handler.report("players.update_player_list", string.format("Failed to access Data: player_info No. %d -> id", i)); error_handler.report("players.update_player_list", string.format("Failed to Access Data: player_info No. %d -> id", i));
goto continue; goto continue;
end end
@@ -535,7 +535,7 @@ function this.update_player_list(hunter_info_field_)
local name = name_field:get_data(player_info); local name = name_field:get_data(player_info);
if name == nil then if name == nil then
error_handler.report("players.update_player_list", string.format("Failed to access Data: player_info No. %d -> name", i)); error_handler.report("players.update_player_list", string.format("Failed to Access Data: player_info No. %d -> name", i));
goto continue; goto continue;
end end

View File

@@ -53,6 +53,29 @@ this.creature_ids = {
gold_wirebug = 63, gold_wirebug = 63,
}; };
local environment_creature_base_type_def = sdk.find_type_definition("snow.envCreature.EnvironmentCreatureBase");
local creature_type_field = environment_creature_base_type_def:get_field("_Type");
local creature_is_inactive_field = environment_creature_base_type_def:get_field("<Muteki>k__BackingField");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_env_creature_name_message_method = message_manager_type_def:get_method("getEnvCreatureNameMessage");
local get_pos_method = environment_creature_base_type_def:get_method("get_Pos");
local get_ref_mesh_method = environment_creature_base_type_def:get_method("getMesh");
local mesh_type_def = get_ref_mesh_method:get_return_type();
local get_game_object_method = mesh_type_def:get_method("get_GameObject");
local game_object_type_def = get_game_object_method:get_return_type();
local get_transform_method = game_object_type_def:get_method("get_Transform");
local transform_type_def = get_transform_method:get_return_type();
local get_joint_by_name_method = transform_type_def:get_method("getJointByName");
local joint_type_def = get_joint_by_name_method:get_return_type();
local get_position_method = joint_type_def:get_method("get_Position");
function this.new(REcreature) function this.new(REcreature)
local creature = {}; local creature = {};
@@ -81,30 +104,23 @@ function this.get_creature(REcreature)
return this.list[REcreature]; return this.list[REcreature];
end end
local environment_creature_base_type_def = sdk.find_type_definition("snow.envCreature.EnvironmentCreatureBase");
local creature_type_field = environment_creature_base_type_def:get_field("_Type");
local creature_is_inactive_field = environment_creature_base_type_def:get_field("<Muteki>k__BackingField");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_env_creature_name_message_method = message_manager_type_def:get_method("getEnvCreatureNameMessage");
local get_pos_method = environment_creature_base_type_def:get_method("get_Pos");
function this.init(creature, REcreature) function this.init(creature, REcreature)
local creature_type = creature_type_field:get_data(REcreature); local creature_type = creature_type_field:get_data(REcreature);
if creature_type == nil then if creature_type == nil then
error_handler.report("env_creature.init", "Failed to access Data: creature_type"); error_handler.report("env_creature.init", "Failed to Access Data: creature_type");
return; return;
end end
local creature_name = get_env_creature_name_message_method:call(singletons.message_manager, creature_type); local creature_name = get_env_creature_name_message_method:call(singletons.message_manager, creature_type);
if creature_name == nil then if creature_name == nil then
error_handler.report("env_creature.init", "Failed to access Data: creature_name"); error_handler.report("env_creature.init", "Failed to Access Data: creature_name");
return; return;
end end
creature.name = creature_name; creature.name = creature_name;
creature.id = creature_type; creature.id = creature_type;
this.update_head_joint(REcreature, creature)
end end
function this.init_UI(creature) function this.init_UI(creature)
@@ -127,10 +143,12 @@ function this.update_position(REcreature, creature)
local position = get_pos_method:call(REcreature); local position = get_pos_method:call(REcreature);
if position == nil then if position == nil then
error_handler.report("env_creature.update_position", "Failed to access Data: position"); error_handler.report("env_creature.update_position", "Failed to Access Data: position");
end end
creature.position = position; creature.position = position;
this.update_head_position(REcreature, creature);
end end
function this.update(REcreature, creature) function this.update(REcreature, creature)
@@ -144,19 +162,94 @@ function this.update(REcreature, creature)
local is_inactive = creature_is_inactive_field:get_data(REcreature); local is_inactive = creature_is_inactive_field:get_data(REcreature);
if is_inactive == nil then if is_inactive == nil then
error_handler.report("env_creature.update", "Failed to access Data: is_inactive"); error_handler.report("env_creature.update", "Failed to Access Data: is_inactive");
end end
creature.is_inactive = is_inactive; creature.is_inactive = is_inactive;
end end
function this.update_head_joint(REcreature, creature)
local mesh = get_ref_mesh_method:call(REcreature);
if mesh == nil then
error_handler.report("env_creature.update_head_joint", "Failed to Access Data: Mesh");
return;
end
local game_object = get_game_object_method:call(mesh);
if game_object == nil then
error_handler.report("env_creature.update_head_joint", "Failed to Access Data: GameObject");
return;
end
local transform = get_transform_method:call(game_object);
if transform == nil then
error_handler.report("env_creature.update_head_joint", "Failed to Access Data: Transform");
return;
end
local head_joint = get_joint_by_name_method:call(transform, "Head_00")
or get_joint_by_name_method:call(transform, "Head")
or get_joint_by_name_method:call(transform, "Head_01")
or get_joint_by_name_method:call(transform, "Spine_00")
or get_joint_by_name_method:call(transform, "Body_00")
or get_joint_by_name_method:call(transform, "body_00")
or get_joint_by_name_method:call(transform, "Cog")
or get_joint_by_name_method:call(transform, "Cog_00")
or get_joint_by_name_method:call(transform, "head")
or get_joint_by_name_method:call(transform, "root");
if head_joint == nil then
-- local out = "";
-- local joints = transform:get_Joints();
-- for i = 0, joints:get_Length() - 1 do
-- local joint = joints[i];
-- local joint_name = joint:get_Name();
-- out = out .. joint_name .. "\n";
-- end
-- error_handler.report(creature.name, out);
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: HeadJoint");
return;
end
creature.head_joint = head_joint;
end
function this.update_head_position(REcreature, creature)
if creature.head_joint == nil then
return;
end
local head_position = get_position_method:call(creature.head_joint);
if head_position == nil then
error_handler.report("env_creature.update_head_position", "Failed to Access Data: HeadPosition");
return;
end
creature.head_position = head_position;
end
function this.draw(creature, position_on_screen, opacity_scale) function this.draw(creature, position_on_screen, opacity_scale)
if d2d ~= nil and config.current_config.global_settings.renderer.use_d2d_if_available then if d2d ~= nil and config.current_config.global_settings.renderer.use_d2d_if_available then
local text_width, text_height = drawing.font:measure(creature.name); local text_width, text_height = drawing.font:measure(creature.name);
position_on_screen.x = position_on_screen.x - text_width / 2; position_on_screen.x = position_on_screen.x - text_width / 2;
end end
drawing.draw_label(creature.name_label, position_on_screen, opacity_scale, creature.name .. " " .. creature.id); local cached_config = config.current_config.endemic_life_UI.creature_name_label.include;
local name_text = "";
if cached_config.name then
name_text = string.format("%s ", creature.name);
end
if cached_config.id then
name_text = string.format("%s%s ", name_text, tostring(creature.id));
end
drawing.draw_label(creature.name_label, position_on_screen, opacity_scale, name_text);
end end
function this.init_list() function this.init_list()

View File

@@ -9,6 +9,7 @@ local large_monster;
local damage_meter_UI; local damage_meter_UI;
local time; local time;
local error_handler; local error_handler;
local quest_status;
local sdk = sdk; local sdk = sdk;
local tostring = tostring; local tostring = tostring;
@@ -49,6 +50,7 @@ local hard_keyboard_field_type_def = hard_keyboard_field:get_type();
local get_down_method = hard_keyboard_field_type_def:get_method("getDown"); local get_down_method = hard_keyboard_field_type_def:get_method("getDown");
local get_trigger_method = hard_keyboard_field_type_def:get_method("getTrg"); local get_trigger_method = hard_keyboard_field_type_def:get_method("getTrg");
local get_release_method = hard_keyboard_field_type_def:get_method("getRelease"); local get_release_method = hard_keyboard_field_type_def:get_method("getRelease");
local update_method = hard_keyboard_field_type_def:get_method("update");
this.hotkey_modifiers_down = { this.hotkey_modifiers_down = {
ctrl = false, ctrl = false,
@@ -334,15 +336,9 @@ this.keys = {
--[254] = "Clear" --[254] = "Clear"
}; };
function this.update() function this.update(hard_keyboard)
if singletons.game_keyboard == nil then
error_handler.report("keyboard.update", "Failed to access Data: game_keyboard");
return;
end
local hard_keyboard = hard_keyboard_field:get_data(singletons.game_keyboard);
if hard_keyboard == nil then if hard_keyboard == nil then
error_handler.report("keyboard.update", "Failed to access Data: hard_keyboard"); error_handler.report("keyboard.update", "Failed to Access Data: hard_keyboard");
return; return;
end end
@@ -480,6 +476,28 @@ function this.register_hotkey(hard_keyboard)
return true; return true;
end end
end end
elseif customization_menu.buff_UI_waiting_for_key then
for key, key_name in pairs(this.keys) do
if get_release_method:call(hard_keyboard, key) then
cached_config.buff_UI.ctrl = this.hotkey_modifiers_down.ctrl;
cached_config.buff_UI.shift = this.hotkey_modifiers_down.shift;
cached_config.buff_UI.alt = this.hotkey_modifiers_down.alt;
cached_config.buff_UI.key = key;
customization_menu.buff_UI_waiting_for_key = false;
return true;
end
end
elseif customization_menu.stats_UI_waiting_for_key then
for key, key_name in pairs(this.keys) do
if get_release_method:call(hard_keyboard, key) then
cached_config.stats_UI.ctrl = this.hotkey_modifiers_down.ctrl;
cached_config.stats_UI.shift = this.hotkey_modifiers_down.shift;
cached_config.stats_UI.alt = this.hotkey_modifiers_down.alt;
cached_config.stats_UI.key = key;
customization_menu.stats_UI_waiting_for_key = false;
return true;
end
end
end end
return false; return false;
@@ -495,7 +513,7 @@ function this.check_hotkeys(hard_keyboard)
local all_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.all_UI.key)); local all_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.all_UI.key));
if all_UI_key_release == nil then if all_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: all_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: all_UI_key_release");
elseif all_UI_key_release then elseif all_UI_key_release then
local is_any_enabled = config.current_config.time_UI.enabled local is_any_enabled = config.current_config.time_UI.enabled
@@ -503,7 +521,10 @@ function this.check_hotkeys(hard_keyboard)
or config.current_config.large_monster_UI.dynamic.enabled or config.current_config.large_monster_UI.dynamic.enabled
or config.current_config.large_monster_UI.static.enabled or config.current_config.large_monster_UI.static.enabled
or config.current_config.large_monster_UI.highlighted.enabled or config.current_config.large_monster_UI.highlighted.enabled
or config.current_config.damage_meter_UI.enabled; or config.current_config.damage_meter_UI.enabled
or config.current_config.endemic_life_UI.enabled
or config.current_config.buff_UI.enabled
or config.current_config.stats_UI.enabled;
config.current_config.time_UI.enabled = not is_any_enabled; config.current_config.time_UI.enabled = not is_any_enabled;
config.current_config.small_monster_UI.enabled = not is_any_enabled; config.current_config.small_monster_UI.enabled = not is_any_enabled;
@@ -511,6 +532,9 @@ function this.check_hotkeys(hard_keyboard)
config.current_config.large_monster_UI.static.enabled = not is_any_enabled; config.current_config.large_monster_UI.static.enabled = not is_any_enabled;
config.current_config.large_monster_UI.highlighted.enabled = not is_any_enabled; config.current_config.large_monster_UI.highlighted.enabled = not is_any_enabled;
config.current_config.damage_meter_UI.enabled = not is_any_enabled; config.current_config.damage_meter_UI.enabled = not is_any_enabled;
config.current_config.endemic_life_UI.enabled = not is_any_enabled;
config.current_config.buff_UI.enabled = not is_any_enabled;
config.current_config.stats_UI.enabled = not is_any_enabled;
end end
end end
@@ -521,7 +545,7 @@ function this.check_hotkeys(hard_keyboard)
local small_monster_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.small_monster_UI.key)); local small_monster_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.small_monster_UI.key));
if small_monster_UI_key_release == nil then if small_monster_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: small_monster_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: small_monster_UI_key_release");
elseif small_monster_UI_key_release then elseif small_monster_UI_key_release then
config.current_config.small_monster_UI.enabled = not config.current_config.small_monster_UI.enabled; config.current_config.small_monster_UI.enabled = not config.current_config.small_monster_UI.enabled;
@@ -535,7 +559,7 @@ function this.check_hotkeys(hard_keyboard)
local large_monster_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_UI.key)); local large_monster_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_UI.key));
if large_monster_UI_key_release == nil then if large_monster_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: large_monster_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: large_monster_UI_key_release");
elseif large_monster_UI_key_release then elseif large_monster_UI_key_release then
local is_any_enabled = config.current_config.large_monster_UI.dynamic.enabled local is_any_enabled = config.current_config.large_monster_UI.dynamic.enabled
@@ -555,7 +579,7 @@ function this.check_hotkeys(hard_keyboard)
local large_monster_dynamic_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_dynamic_UI.key)); local large_monster_dynamic_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_dynamic_UI.key));
if large_monster_dynamic_UI_key_release == nil then if large_monster_dynamic_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: large_monster_dynamic_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: large_monster_dynamic_UI_key_release");
elseif large_monster_dynamic_UI_key_release then elseif large_monster_dynamic_UI_key_release then
config.current_config.large_monster_UI.dynamic.enabled = not config.current_config.large_monster_UI.dynamic.enabled; config.current_config.large_monster_UI.dynamic.enabled = not config.current_config.large_monster_UI.dynamic.enabled;
@@ -569,7 +593,7 @@ function this.check_hotkeys(hard_keyboard)
local large_monster_static_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_static_UI.key)); local large_monster_static_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_static_UI.key));
if large_monster_static_UI_key_release == nil then if large_monster_static_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: large_monster_static_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: large_monster_static_UI_key_release");
elseif large_monster_static_UI_key_release then elseif large_monster_static_UI_key_release then
config.current_config.large_monster_UI.static.enabled = not config.current_config.large_monster_UI.static.enabled; config.current_config.large_monster_UI.static.enabled = not config.current_config.large_monster_UI.static.enabled;
@@ -583,7 +607,7 @@ function this.check_hotkeys(hard_keyboard)
local large_monster_highlighted_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_highlighted_UI.key)); local large_monster_highlighted_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_highlighted_UI.key));
if large_monster_highlighted_UI_key_release == nil then if large_monster_highlighted_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: large_monster_highlighted_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: large_monster_highlighted_UI_key_release");
elseif large_monster_highlighted_UI_key_release then elseif large_monster_highlighted_UI_key_release then
config.current_config.large_monster_UI.highlighted.enabled = not config.current_config.large_monster_UI.highlighted.enabled; config.current_config.large_monster_UI.highlighted.enabled = not config.current_config.large_monster_UI.highlighted.enabled;
@@ -597,7 +621,7 @@ function this.check_hotkeys(hard_keyboard)
local time_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.time_UI.key)); local time_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.time_UI.key));
if time_UI_key_release == nil then if time_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: time_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: time_UI_key_release");
elseif time_UI_key_release then elseif time_UI_key_release then
config.current_config.time_UI.enabled = not config.current_config.time_UI.enabled; config.current_config.time_UI.enabled = not config.current_config.time_UI.enabled;
@@ -611,7 +635,7 @@ function this.check_hotkeys(hard_keyboard)
local damage_meter_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.damage_meter_UI.key)); local damage_meter_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.damage_meter_UI.key));
if damage_meter_UI_key_release == nil then if damage_meter_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: damage_meter_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: damage_meter_UI_key_release");
elseif damage_meter_UI_key_release then elseif damage_meter_UI_key_release then
config.current_config.damage_meter_UI.enabled = not config.current_config.damage_meter_UI.enabled; config.current_config.damage_meter_UI.enabled = not config.current_config.damage_meter_UI.enabled;
@@ -625,12 +649,40 @@ function this.check_hotkeys(hard_keyboard)
local endemic_life_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.endemic_life_UI.key)); local endemic_life_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.endemic_life_UI.key));
if endemic_life_UI_key_release == nil then if endemic_life_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: endemic_life_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: endemic_life_UI_key_release");
elseif endemic_life_UI_key_release then elseif endemic_life_UI_key_release then
config.current_config.endemic_life_UI.enabled = not config.current_config.endemic_life_UI.enabled; config.current_config.endemic_life_UI.enabled = not config.current_config.endemic_life_UI.enabled;
end end
end end
if not (cached_config.buff_UI.ctrl and not this.hotkey_modifiers_down.ctrl)
and not (cached_config.buff_UI.shift and not this.hotkey_modifiers_down.shift)
and not (cached_config.buff_UI.alt and not this.hotkey_modifiers_down.alt) then
local buff_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.buff_UI.key));
if buff_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: buff_UI_key_release");
elseif buff_UI_key_release then
config.current_config.buff_UI.enabled = not config.current_config.buff_UI.enabled;
end
end
if not (cached_config.stats_UI.ctrl and not this.hotkey_modifiers_down.ctrl)
and not (cached_config.stats_UI.shift and not this.hotkey_modifiers_down.shift)
and not (cached_config.stats_UI.alt and not this.hotkey_modifiers_down.alt) then
local stats_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.stats_UI.key));
if stats_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: stats_UI_key_release");
elseif stats_UI_key_release then
config.current_config.stats_UI.enabled = not config.current_config.stats_UI.enabled;
end
end
end end
function this.get_hotkey_name(hotkey) function this.get_hotkey_name(hotkey)
@@ -661,9 +713,19 @@ function this.init_dependencies()
damage_meter_UI = require("MHR_Overlay.UI.Modules.damage_meter_UI"); damage_meter_UI = require("MHR_Overlay.UI.Modules.damage_meter_UI");
time = require("MHR_Overlay.Game_Handler.time"); time = require("MHR_Overlay.Game_Handler.time");
error_handler = require("MHR_Overlay.Misc.error_handler"); error_handler = require("MHR_Overlay.Misc.error_handler");
quest_status = require("MHR_Overlay.Game_Handler.quest_status");
end end
function this.init_module() function this.init_module()
sdk.hook(update_method, function(args)
local hard_keyboard = sdk.to_managed_object(args[2]);
this.update(hard_keyboard);
end, function(retval)
return retval;
end);
end end
return this; return this;

View File

@@ -177,44 +177,44 @@ end
function this.update_cart_count() function this.update_cart_count()
if singletons.quest_manager == nil then if singletons.quest_manager == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: quest_manager"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: quest_manager");
return; return;
end end
local death_num = get_death_num_method:call(singletons.quest_manager); local death_num = get_death_num_method:call(singletons.quest_manager);
if death_num == nil then if death_num == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: death_num"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: death_num");
else else
this.cart_count = death_num; this.cart_count = death_num;
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: player_manager"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: player_manager");
return; return;
end end
local player_data_array = get_player_data_method:call(singletons.player_manager); local player_data_array = get_player_data_method:call(singletons.player_manager);
if player_data_array == nil then if player_data_array == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: player_data_array"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: player_data_array");
return; return;
end end
local player_data_array_length = get_length_method:call(player_data_array); local player_data_array_length = get_length_method:call(player_data_array);
if player_data_array_length == nil then if player_data_array_length == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: player_data_array_length"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: player_data_array_length");
return; return;
end end
for i = 0, player_data_array_length - 1 do for i = 0, player_data_array_length - 1 do
local player_data = get_value_method:call(player_data_array, i); local player_data = get_value_method:call(player_data_array, i);
if player_data_array_length == nil then if player_data_array_length == nil then
error_handler.report("quest_status.update_cart_count", string.format("Failed to access Data: player_data No. %d", i)); error_handler.report("quest_status.update_cart_count", string.format("Failed to Access Data: player_data No. %d", i));
goto continue; goto continue;
end end
local die_count = die_count_field:get_data(player_data); local die_count = die_count_field:get_data(player_data);
if die_count == nil then if die_count == nil then
error_handler.report("quest_status.update_cart_count", string.format("Failed to access Data: die_count No. %d", i)); error_handler.report("quest_status.update_cart_count", string.format("Failed to Access Data: die_count No. %d", i));
goto continue; goto continue;
end end
@@ -229,13 +229,13 @@ end
function this.get_max_cart_count() function this.get_max_cart_count()
if singletons.quest_manager == nil then if singletons.quest_manager == nil then
error_handler.report("quest_status.get_max_cart_count", "Failed to access Data: quest_manager"); error_handler.report("quest_status.get_max_cart_count", "Failed to Access Data: quest_manager");
return; return;
end end
local quest_life = get_quest_life_method:call(singletons.quest_manager); local quest_life = get_quest_life_method:call(singletons.quest_manager);
if quest_life == nil then if quest_life == nil then
error_handler.report("quest_status.get_max_cart_count", "Failed to access Data: quest_life"); error_handler.report("quest_status.get_max_cart_count", "Failed to Access Data: quest_life");
end end
this.max_cart_count = quest_life; this.max_cart_count = quest_life;
@@ -256,7 +256,7 @@ function this.on_demo_request_activation(request_data_base)
local request_data_type = request_data_base:call("get_Type"); local request_data_type = request_data_base:call("get_Type");
if request_data_type == nil then if request_data_type == nil then
error_handler.report("quest_status.on_demo_request_activation", "Failed to access Data: request_data_type"); error_handler.report("quest_status.on_demo_request_activation", "Failed to Access Data: request_data_type");
return; return;
end end
@@ -388,13 +388,13 @@ end
function this.init() function this.init()
if singletons.quest_manager == nil then if singletons.quest_manager == nil then
error_handler.report("quest_status.init", "Failed to access Data: quest_manager"); error_handler.report("quest_status.init", "Failed to Access Data: quest_manager");
return; return;
end end
local new_quest_status = get_status_method:call(singletons.game_manager); local new_quest_status = get_status_method:call(singletons.game_manager);
if new_quest_status == nil then if new_quest_status == nil then
error_handler.report("quest_status.init", "Failed to access Data: new_quest_status"); error_handler.report("quest_status.init", "Failed to Access Data: new_quest_status");
return; return;
end end
@@ -415,13 +415,13 @@ end
function this.update_is_online() function this.update_is_online()
if singletons.lobby_manager == nil then if singletons.lobby_manager == nil then
error_handler.report("quest_status.update_is_online", "Failed to access Data: lobby_manager"); error_handler.report("quest_status.update_is_online", "Failed to Access Data: lobby_manager");
return; return;
end end
local is_quest_online = is_quest_online_method:call(singletons.lobby_manager); local is_quest_online = is_quest_online_method:call(singletons.lobby_manager);
if is_quest_online == nil then if is_quest_online == nil then
error_handler.report("quest_status.update_is_online", "Failed to access Data: is_quest_online"); error_handler.report("quest_status.update_is_online", "Failed to Access Data: is_quest_online");
return; return;
end end
@@ -430,13 +430,13 @@ end
--[[function quest_status.update_is_quest_host() --[[function quest_status.update_is_quest_host()
if singletons.lobby_manager == nil then if singletons.lobby_manager == nil then
error_handler.report("quest_status.update_is_quest_host", "Failed to access Data: lobby_manager"); error_handler.report("quest_status.update_is_quest_host", "Failed to Access Data: lobby_manager");
return; return;
end end
local is_quest_host = is_quest_host_method:call(singletons.lobby_manager, true); local is_quest_host = is_quest_host_method:call(singletons.lobby_manager, true);
if is_quest_host == nil then if is_quest_host == nil then
error_handler.report("quest_status.update_is_quest_host", "Failed to access Data: is_quest_host"); error_handler.report("quest_status.update_is_quest_host", "Failed to Access Data: is_quest_host");
return; return;
end end
@@ -445,13 +445,13 @@ end--]]
function this.update_is_training_area() function this.update_is_training_area()
if singletons.village_area_manager == nil then if singletons.village_area_manager == nil then
error_handler.report("quest_status.update_is_training_area", "Failed to access Data: village_area_manager"); error_handler.report("quest_status.update_is_training_area", "Failed to Access Data: village_area_manager");
return; return;
end end
local is_training_area = check_current_area_training_area_method:call(singletons.village_area_manager); local is_training_area = check_current_area_training_area_method:call(singletons.village_area_manager);
if is_training_area == nil then if is_training_area == nil then
error_handler.report("quest_status.update_is_training_area", "Failed to access Data: is_training_area"); error_handler.report("quest_status.update_is_training_area", "Failed to Access Data: is_training_area");
return; return;
end end

View File

@@ -75,26 +75,26 @@ function this.get_game_window_size()
scene_view = sdk.call_native_func(singletons.scene_manager, sdk.find_type_definition("via.SceneManager") , "get_MainView"); scene_view = sdk.call_native_func(singletons.scene_manager, sdk.find_type_definition("via.SceneManager") , "get_MainView");
if scene_view == nil then if scene_view == nil then
error_handler.report("screen.get_game_window_size", "Failed to access Data: scene_view"); error_handler.report("screen.get_game_window_size", "Failed to Access Data: scene_view");
return; return;
end end
end end
local size = get_size_method:call(scene_view); local size = get_size_method:call(scene_view);
if size == nil then if size == nil then
error_handler.report("screen.get_game_window_size", "Failed to access Data: size"); error_handler.report("screen.get_game_window_size", "Failed to Access Data: size");
return; return;
end end
local screen_width = width_field:get_data(size); local screen_width = width_field:get_data(size);
if screen_width == nil then if screen_width == nil then
error_handler.report("screen.get_game_window_size", "Failed to access Data: screen_width"); error_handler.report("screen.get_game_window_size", "Failed to Access Data: screen_width");
return; return;
end end
local screen_height = height_field:get_data(size); local screen_height = height_field:get_data(size);
if screen_height == nil then if screen_height == nil then
error_handler.report("screen.get_game_window_size", "Failed to access Data: screen_height"); error_handler.report("screen.get_game_window_size", "Failed to Access Data: screen_height");
return; return;
end end

View File

@@ -48,166 +48,166 @@ this.game_keyboard = nil;
this.scene_manager = nil; this.scene_manager = nil;
this.game_manager = nil; this.game_manager = nil;
function this.init() function this.update()
this.init_message_manager(); this.update_message_manager();
this.init_enemy_manager(); this.update_enemy_manager();
this.init_lobby_manager() this.update_lobby_manager()
this.init_progress_manager(); this.update_progress_manager();
this.init_quest_manager(); this.update_quest_manager();
this.init_player_manager(); this.update_player_manager();
this.init_village_area_manager(); this.update_village_area_manager();
this.init_gui_manager(); this.update_gui_manager();
this.init_game_keyboard(); this.update_game_keyboard();
this.init_scene_manager(); this.update_scene_manager();
this.init_game_manager(); this.update_game_manager();
this.init_servant_manager(); this.update_servant_manager();
this.init_otomo_manager(); this.update_otomo_manager();
this.init_long_sword_shell_manager(); this.update_long_sword_shell_manager();
this.init_light_bowgun_shell_manager(); this.update_light_bowgun_shell_manager();
this.init_horn_shell_manager(); this.update_horn_shell_manager();
end end
function this.init_message_manager() function this.update_message_manager()
this.message_manager = sdk.get_managed_singleton("snow.gui.MessageManager"); this.message_manager = sdk.get_managed_singleton("snow.gui.MessageManager");
if this.message_manager == nil then if this.message_manager == nil then
error_handler.report("singletons.init_message_manager", "Failed to access Data: message_manager"); error_handler.report("singletons.update_message_manager", "Failed to Access Data: message_manager");
end end
return this.message_manager; return this.message_manager;
end end
function this.init_enemy_manager() function this.update_enemy_manager()
this.enemy_manager = sdk.get_managed_singleton("snow.enemy.EnemyManager"); this.enemy_manager = sdk.get_managed_singleton("snow.enemy.EnemyManager");
if this.enemy_manager == nil then if this.enemy_manager == nil then
error_handler.report("singletons.init_enemy_manager", "Failed to access Data: enemy_manager"); error_handler.report("singletons.update_enemy_manager", "Failed to Access Data: enemy_manager");
end end
return this.enemy_manager; return this.enemy_manager;
end end
function this.init_lobby_manager() function this.update_lobby_manager()
this.lobby_manager = sdk.get_managed_singleton("snow.LobbyManager"); this.lobby_manager = sdk.get_managed_singleton("snow.LobbyManager");
if this.lobby_manager == nil then if this.lobby_manager == nil then
error_handler.report("singletons.init_lobby_manager", "Failed to access Data: lobby_manager"); error_handler.report("singletons.update_lobby_manager", "Failed to Access Data: lobby_manager");
return false; return false;
end end
return this.lobby_manager; return this.lobby_manager;
end end
function this.init_progress_manager() function this.update_progress_manager()
this.progress_manager = sdk.get_managed_singleton("snow.progress.ProgressManager"); this.progress_manager = sdk.get_managed_singleton("snow.progress.ProgressManager");
if this.progress_manager == nil then if this.progress_manager == nil then
error_handler.report("singletons.init_lobby_manager", "Failed to access Data: progress_manager"); error_handler.report("singletons.update_progress_manager", "Failed to Access Data: progress_manager");
return false; return false;
end end
return this.progress_manager; return this.progress_manager;
end end
function this.init_quest_manager() function this.update_quest_manager()
this.quest_manager = sdk.get_managed_singleton("snow.QuestManager"); this.quest_manager = sdk.get_managed_singleton("snow.QuestManager");
if this.quest_manager == nil then if this.quest_manager == nil then
error_handler.report("singletons.init_quest_manager", "Failed to access Data: quest_manager"); error_handler.report("singletons.update_quest_manager", "Failed to Access Data: quest_manager");
end end
return this.quest_manager; return this.quest_manager;
end end
function this.init_player_manager() function this.update_player_manager()
this.player_manager = sdk.get_managed_singleton("snow.player.PlayerManager"); this.player_manager = sdk.get_managed_singleton("snow.player.PlayerManager");
if this.player_manager == nil then if this.player_manager == nil then
error_handler.report("singletons.init_player_manager", "Failed to access Data: player_manager"); error_handler.report("singletons.update_player_manager", "Failed to Access Data: player_manager");
end end
return this.player_manager; return this.player_manager;
end end
function this.init_village_area_manager() function this.update_village_area_manager()
this.village_area_manager = sdk.get_managed_singleton("snow.VillageAreaManager"); this.village_area_manager = sdk.get_managed_singleton("snow.VillageAreaManager");
if this.village_area_manager == nil then if this.village_area_manager == nil then
error_handler.report("singletons.init_village_area_manager", "Failed to access Data: village_area_manager"); -- error_handler.report("singletons.update_village_area_manager", "Failed to Access Data: village_area_manager");
end end
return this.village_area_manager; return this.village_area_manager;
end end
function this.init_gui_manager() function this.update_gui_manager()
this.gui_manager = sdk.get_managed_singleton("snow.gui.GuiManager"); this.gui_manager = sdk.get_managed_singleton("snow.gui.GuiManager");
if this.gui_manager == nil then if this.gui_manager == nil then
error_handler.report("singletons.init_gui_manager", "Failed to access Data: gui_manager"); error_handler.report("singletons.update_gui_manager", "Failed to Access Data: gui_manager");
end end
return this.gui_manager; return this.gui_manager;
end end
function this.init_game_keyboard() function this.update_game_keyboard()
this.game_keyboard = sdk.get_managed_singleton("snow.GameKeyboard"); this.game_keyboard = sdk.get_managed_singleton("snow.GameKeyboard");
if this.game_keyboard == nil then if this.game_keyboard == nil then
error_handler.report("singletons.init_game_keyboard", "Failed to access Data: game_keyboard"); error_handler.report("singletons.update_game_keyboard", "Failed to Access Data: game_keyboard");
end end
return this.game_keyboard; return this.game_keyboard;
end end
function this.init_scene_manager() function this.update_scene_manager()
this.scene_manager = sdk.get_native_singleton("via.SceneManager"); this.scene_manager = sdk.get_native_singleton("via.SceneManager");
if this.scene_manager == nil then if this.scene_manager == nil then
error_handler.report("singletons.init_scene_manager", "Failed to access Data: scene_manager"); error_handler.report("singletons.update_scene_manager", "Failed to Access Data: scene_manager");
end end
return this.scene_manager; return this.scene_manager;
end end
function this.init_game_manager() function this.update_game_manager()
this.game_manager = sdk.get_managed_singleton("snow.SnowGameManager"); this.game_manager = sdk.get_managed_singleton("snow.SnowGameManager");
if this.game_manager == nil then if this.game_manager == nil then
error_handler.report("singletons.init_game_manager", "Failed to access Data: game_manager"); error_handler.report("singletons.update_game_manager", "Failed to Access Data: game_manager");
end end
return this.game_manager; return this.game_manager;
end end
function this.init_servant_manager() function this.update_servant_manager()
this.servant_manager = sdk.get_managed_singleton("snow.ai.ServantManager"); this.servant_manager = sdk.get_managed_singleton("snow.ai.ServantManager");
if this.servant_manager == nil then if this.servant_manager == nil then
error_handler.report("singletons.init_servant_manager", "Failed to access Data: servant_manager"); error_handler.report("singletons.update_servant_manager", "Failed to Access Data: servant_manager");
end end
return this.servant_manager; return this.servant_manager;
end end
function this.init_otomo_manager() function this.update_otomo_manager()
this.otomo_manager = sdk.get_managed_singleton("snow.otomo.OtomoManager"); this.otomo_manager = sdk.get_managed_singleton("snow.otomo.OtomoManager");
if this.otomo_manager == nil then if this.otomo_manager == nil then
error_handler.report("singletons.init_otomo_manager", "Failed to access Data: otomo_manager"); error_handler.report("singletons.update_otomo_manager", "Failed to Access Data: otomo_manager");
end end
return this.otomo_manager; return this.otomo_manager;
end end
function this.init_long_sword_shell_manager() function this.update_long_sword_shell_manager()
this.long_sword_shell_manager = sdk.get_managed_singleton("snow.shell.LongSwordShellManager"); this.long_sword_shell_manager = sdk.get_managed_singleton("snow.shell.LongSwordShellManager");
if this.long_sword_shell_manager == nil then if this.long_sword_shell_manager == nil then
error_handler.report("singletons.init_long_sword_shell_manager", "Failed to access Data: long_sword_shell_manager"); error_handler.report("singletons.update_long_sword_shell_manager", "Failed to Access Data: long_sword_shell_manager");
end end
return this.long_sword_shell_manager; return this.long_sword_shell_manager;
end end
function this.init_light_bowgun_shell_manager() function this.update_light_bowgun_shell_manager()
this.light_bowgun_shell_manager = sdk.get_managed_singleton("snow.shell.LightBowgunShellManager"); this.light_bowgun_shell_manager = sdk.get_managed_singleton("snow.shell.LightBowgunShellManager");
if this.light_bowgun_shell_manager == nil then if this.light_bowgun_shell_manager == nil then
error_handler.report("singletons.init_light_bowgun_shell_manager", "Failed to access Data: light_bowgun_shell_manager"); error_handler.report("singletons.update_light_bowgun_shell_manager", "Failed to Access Data: light_bowgun_shell_manager");
end end
return this.light_bowgun_shell_manager; return this.light_bowgun_shell_manager;
end end
function this.init_horn_shell_manager() function this.update_horn_shell_manager()
this.horn_shell_manager = sdk.get_managed_singleton("snow.shell.HornShellManager"); this.horn_shell_manager = sdk.get_managed_singleton("snow.shell.HornShellManager");
if this.horn_shell_manager == nil then if this.horn_shell_manager == nil then
error_handler.report("singletons.init_horn_shell_manager", "Failed to access Data: horn_shell_manager"); error_handler.report("singletons.update_horn_shell_manager", "Failed to Access Data: horn_shell_manager");
end end
return this.horn_shell_manager; return this.horn_shell_manager;
@@ -221,7 +221,7 @@ function this.init_dependencies()
end end
function this.init_module() function this.init_module()
this.init(); this.update();
end end
return this; return this;

View File

@@ -74,14 +74,14 @@ function this.new_timer(callback, cooldown_seconds, start_offset_seconds)
this.timer_list[callback] = timer; this.timer_list[callback] = timer;
end end
function this.new_delay_timer(callback, delay) function this.new_delay_timer(callback, delay_seconds)
if callback == nil or delay == nil then if callback == nil or delay_seconds == nil then
return; return;
end end
local delay_timer = {}; local delay_timer = {};
delay_timer.callback = callback; delay_timer.callback = callback;
delay_timer.delay = delay; delay_timer.delay = delay_seconds;
delay_timer.init_time = os.clock(); delay_timer.init_time = os.clock();
@@ -95,18 +95,22 @@ function this.remove_delay_timer(delay_timer)
return; return;
end end
this.delay_timer_list[delay_timer.callback] = nil; this.delay_timer_list[delay_timer.callback] = nil;
end end
function this.init_global_timers() function this.init_global_timers()
this.new_timer(singletons.init, 1); local cached_config = config.current_config.global_settings.performance.timer_delays;
this.new_timer(screen.update_window_size, 1);
this.new_timer(quest_status.update_is_online, 1); this.timer_list = {};
this.new_timer(this.update_quest_time, 1 / 60);
this.new_timer(players.update_players, 0.5); this.new_timer(singletons.update, cached_config.update_singletons_delay);
this.new_timer(players.update_myself_position, 1); this.new_timer(screen.update_window_size, cached_config.update_window_size_delay);
this.new_timer(buffs.update, 0.5); this.new_timer(quest_status.update_is_online, cached_config.update_is_online_delay);
this.new_timer(player_info.update, 0.5); this.new_timer(this.update_quest_time, cached_config.update_quest_time_delay);
this.new_timer(players.update_players, cached_config.update_players_delay);
this.new_timer(players.update_myself_position, cached_config.update_myself_position_delay);
this.new_timer(buffs.update, cached_config.update_buffs_delay);
this.new_timer(player_info.update, cached_config.update_player_info_delay);
end end
function this.update_timers() function this.update_timers()
@@ -149,14 +153,14 @@ function this.update_quest_time()
local quest_time_elapsed_minutes = get_quest_elapsed_time_min_method:call(singletons.quest_manager); local quest_time_elapsed_minutes = get_quest_elapsed_time_min_method:call(singletons.quest_manager);
if quest_time_elapsed_minutes == nil then if quest_time_elapsed_minutes == nil then
error_handler.report("time.update_quest_time", "Failed to access Data: quest_time_elapsed_minutes"); error_handler.report("time.update_quest_time", "Failed to Access Data: quest_time_elapsed_minutes");
else else
this.elapsed_minutes = quest_time_elapsed_minutes; this.elapsed_minutes = quest_time_elapsed_minutes;
end end
local quest_time_total_elapsed_seconds = get_quest_elapsed_time_sec_method:call(singletons.quest_manager); local quest_time_total_elapsed_seconds = get_quest_elapsed_time_sec_method:call(singletons.quest_manager);
if quest_time_total_elapsed_seconds == nil then if quest_time_total_elapsed_seconds == nil then
error_handler.report("time.update_quest_time", "Failed to access Data: quest_time_total_elapsed_seconds"); error_handler.report("time.update_quest_time", "Failed to Access Data: quest_time_total_elapsed_seconds");
else else
this.total_elapsed_seconds = quest_time_total_elapsed_seconds; this.total_elapsed_seconds = quest_time_total_elapsed_seconds;
end end

File diff suppressed because it is too large Load Diff

View File

@@ -37,64 +37,53 @@ local package = package;
this.language_folder = "MHR Overlay\\languages\\"; this.language_folder = "MHR Overlay\\languages\\";
--[[ -- this.chinese_ranges = {
EXAMPLE: -- 0x0020, 0x00FF, -- Basic Latin + Latin Supplement
unicode_glyph_ranges = { -- 0x2000, 0x206F, -- General Punctuations
0x0020, 0x00FF, -- Basic Latin + Latin Supplement -- 0x2E80, 0x2EFF, -- CJK Radicals Supplement
0x2000, 0x206F, -- General Punctuation -- 0x3000, 0x303F, -- CJK Symbols and Punctuations
0x3000, 0x30FF, -- CJK Symbols and Punctuations, Hiragana, Katakana -- 0x3200, 0x4DBF, -- Enclosed CJK Letters and Months, CJK Compatibility, CJK Unified Ideographs Extension A
0x31F0, 0x31FF, -- Katakana Phonetic Extensions -- 0x4E00, 0x9FFF, -- CJK Unified Ideograms
0x4e00, 0x9FAF, -- CJK Ideograms -- 0xF900, 0xFAFF, -- CJK Compatibility Ideographs
0xFF00, 0xFFEF, -- Half-width characters -- 0xFE30, 0xFE4F, -- CJK Compatibility Forms
0 -- 0xFF00, 0xFFEF, -- Half-width characters
}, -- 0
]] -- };
--[[ -- this.japanese_glyph_ranges = {
EXAMPLE: -- 0x0020, 0x00FF, -- Basic Latin + Latin Supplement
unicode_glyph_ranges = { -- 0x2000, 0x206F, -- General Punctuation
0x0020, 0x00FF, -- Basic Latin + Latin Supplement -- 0x2E80, 0x2EFF, -- CJK Radicals Supplement
0x0400, 0x052F, -- Cyrillic -- 0x3000, 0x30FF, -- CJK Symbols and Punctuations, Hiragana, Katakana
0x2000, 0x206F, -- General Punctuation -- 0x31F0, 0x4DBF, -- Katakana Phonetic Extensions, Enclosed CJK Letters and Months, CJK Compatibility, CJK Unified Ideographs Extension A
0xFF00, 0xFFEF, -- Half-width characters -- 0x4E00, 0x9FFF, -- CJK Unified Ideograms
0 -- 0xF900, 0xFAFF, -- CJK Compatibility Ideographs
}, -- 0xFE30, 0xFE4F, -- CJK Compatibility Forms
]] -- 0xFF00, 0xFFEF, -- Half-width characters
-- 0
-- };
--[[ -- this.korean_glyph_ranges = {
EXAMPLE: -- 0x0020, 0x00FF, -- Basic Latin + Latin Supplement
unicode_glyph_ranges = { -- 0x1100, 0x11FF, -- Hangul Jamo
0x0020, 0x00FF, -- Basic Latin + Latin Supplement -- 0x2000, 0x206F, -- General Punctuation
0x1100, 0x11FF, -- Hangul Jamo -- 0x2E80, 0x2EFF, -- CJK Radicals Supplement
0x2000, 0x206F, -- General Punctuation -- 0x3000, 0x303F, -- CJK Symbols and Punctuations
0x3130, 0x318F, -- Hangul Compatibility Jamo -- 0x3130, 0x318F, -- Hangul Compatibility Jamo
0xAC00, 0xD7AF, -- Hangul Syllables -- 0x3200, 0x4DBF, -- Enclosed CJK Letters and Months, CJK Compatibility, CJK Unified Ideographs Extension A
0xFF00, 0xFFEF, -- Half-width characters -- 0x4E00, 0x9FFF, -- CJK Unified Ideograms
0 -- 0xAC00, 0xD7AF, -- Hangul Syllables
}, -- 0xF900, 0xFAFF, -- CJK Compatibility Ideographs
]] -- 0xFE30, 0xFE4F, -- CJK Compatibility Forms
-- 0xFF00, 0xFFEF, -- Half-width characters
-- 0
-- }
this.current_language = {}; this.current_language = {};
this.default_language = { this.default_language = {
font_name = "", font_name = nil,
unicode_glyph_ranges = { unicode_glyph_ranges = nil,
-- 0x0020, 0x00FF, -- Basic Latin + Latin Supplement
-- 0x0100, 0x017F, -- Latin Extended-A
-- 0x0400, 0x052F, -- Cyrillic
-- 0x1100, 0x11FF, -- Hangul Jamo
-- 0x2000, 0x206F, -- General Punctuation
-- 0x3000, 0x30FF, -- CJK Symbols and Punctuations, Hiragana, Katakana
-- 0x3130, 0x318F, -- Hangul Compatibility Jamo
-- 0x31F0, 0x31FF, -- Katakana Phonetic Extensions
-- 0x4e00, 0x9FAF, -- CJK Ideograms
-- 0xAC00, 0xD7AF, -- Hangul Syllables
-- 0xFF00, 0xFFEF, -- Half-width characters
0
},
-- unicode_glyph_ranges = {
-- 0x0020, 0xFFFF,
-- 0
-- },
parts = { parts = {
head = "Head", head = "Head",
neck = "Neck", neck = "Neck",
@@ -235,15 +224,123 @@ this.default_language = {
frenzy_overcome = "Frenzy Overcome" frenzy_overcome = "Frenzy Overcome"
}, },
item_buffs = {
demondrug = "Demondrug",
mega_demondrug = "Mega Demondrug",
armorskin = "Armorskin",
mega_armorskin = "Mega Armorskin",
might_seed = "Might Seed",
adamant_seed = "Adamant Seed",
demon_powder = "Demon Powder",
hardshell_powder = "Hardshell Powder",
immunizer = "Immunizer",
dash_juice = "Dash Juice",
gourmet_fish = "Gourmet Fish",
demon_ammo = "Demon Ammo",
armor_ammo = "Armor Ammo",
},
endemic_life = {
cutterfly = "Cutterfly",
clothfly = "Clothfly",
butterflame = "Butterflame",
peepersects = "Peepersects",
stinkmink = "Stinkmink",
ruby_wirebug = "Ruby Wirebug",
gold_wirebug = "Gold Wirebug",
red_lampsquid = "Red Lampsquid",
yellow_lampsquid = "Yellow Lampsquid"
},
melody_effects = {
self_improvement = "Self-Improvement",
attack_up = "Attack Up",
defense_up ="Defense Up",
affinity_up = "Affinity Up",
elemental_attack_boost = "Elemental Attack Boost",
attack_and_defense_up = "Attack and Defense Up",
attack_and_affinity_up = "Attack and Affinity Up",
knockbacks_negated = "Knockbacks Negated",
earplugs_s = "Earplugs (S)",
earplugs_l = "Earplugs (L)",
tremors_negated = "Tremors Negated",
wind_pressure_negated = "Wind Pressure Negated",
stun_negated = "Stun Negated",
blight_negated = "Blight Negated",
divine_protection = "Divine Protection",
health_recovery_s = "Health Recovery (S)",
health_recovery_l = "Health Recovery (L)",
health_recovery_s_antidote = "Health Recovery (S) + Antidote",
health_regeneration = "Health Regeneration",
stamina_use_reduced = "Stamina Use Reduced",
stamina_recovery_up = "Stamina Recovery Up",
sharpness_loss_reduced = "Sharpness Loss Reduced",
environment_damage_negated = "Environment Damage Negated",
sonic_wave = "Sonic Wave",
sonic_barrier = "Sonic Barrier",
infernal_melody = "Infernal Melody",
sharpness_regeneration = "Sharpness Regeneration",
sharpness_extension = "Sharpness Extension",
},
dango_skills = { dango_skills = {
dango_insurance_defense_up = "Dango Insurance Defense Up" dango_adrenaline = "Dango Adrenaline",
dango_booster = "Dango Booster",
dango_bulker = "Dango Bulker",
dango_connector = "Dango Connector",
dango_defender = "Dango Defender",
dango_flyer = "Dango Flyer",
dango_glutton = "Dango Glutton",
dango_hunter = "Dango Hunter",
dango_insurance = "Dango Insurance",
dango_insurance_defense_up = "Dango Insurance Defense Up",
super_recovery_dango = "Super Recovery Dango"
},
rampage_skills = {
chameleos_soul = "Chameleos Soul",
kushala_daora_soul = "Kushala Daora Soul"
}, },
skills = { skills = {
adrenaline_rush = "Adrenaline Rush",
affinity_sliding = "Affinity Sliding",
agitator = "Agitator",
berserk = "Berserk",
bladescale_hone = "Bladescale Hone",
blood_awakening = "Blood Awakening",
bloodlust = "Bloodlust",
burst = "Burst",
coalescence = "Coalescence",
counterstrike = "Counterstrike",
dereliction = "Dereliction",
dragon_conversion_elemental_attack_up = "Dragon Conversion: Elem. Atk Up",
dragon_conversion_elemental_res_up = "Dragon Conversion: Elem. Res Up",
dragonheart = "Dragonheart",
embolden = "Embolden",
frenzied_bloodlust = "Frenzied Bloodlust",
furious = "Furious",
grinder_s = "Grinder (S)",
heaven_sent = "Heaven-Sent",
hellfire_cloak = "Hellfire Cloak",
heroics = "Heroics",
inspiration = "Inspiration",
intrepid_heart = "Intrepid Heart",
latent_power = "Latent Power",
maximum_might = "Maximum Might",
offensive_guard = "Offensive Guard",
partbreaker = "Partbreaker",
peak_performance = "Peak Performance",
powder_mantle_red = "Powder Mantle (Red)", powder_mantle_red = "Powder Mantle (Red)",
powder_mantle_blue = "Powder Mantle (Blue)", powder_mantle_blue = "Powder Mantle (Blue)",
dragon_conversion_elemental_attack_up = "Dragon Conversion Elem. Atk Up", protective_polish = "Protective Polish",
dragon_conversion_elemental_res_up = "Dragon Conversion Elem. Res Up", resentment = "Resentment",
resuscitate = "Resuscitate",
spiribirds_call = "Spiribird's Call",
status_trigger = "Status Trigger",
strife = "Strife",
wall_runner = "Wall Runner",
wind_mantle = "Wind Mantle"
}, },
weapons = { weapons = {
@@ -265,69 +362,92 @@ this.default_language = {
weapon_skills = { weapon_skills = {
-- Great Sword -- Great Sword
power_sheathe = "Power Sheathe", great_sword = {
power_sheathe = "Power Sheathe"
},
-- Long Sword -- Long Sword
iai_slash = "Iai Slash", long_sword = {
spirit_gauge_autofill = "Spirit Gauge Autofill", -- Soaring Kick, Iai Slash harvest_moon = "Harvest Moon",
spirit_gauge = "Spirit Gauge", iai_slash = "Iai Slash",
-- harvest_moon = "Harvest Moon", soaring_kick = "Soaring Kick",
spirit_gauge = "Spirit Gauge",
spirit_gauge_autofill = "Spirit Gauge Autofill", -- Soaring Kick, Iai Slash
},
-- Sword & Shield -- Sword & Shield
-- destroyer_oil = "Destroyer Oil", sword_and_shield = {
destroyer_oil = "Destroyer Oil"
},
-- Dual Blades -- Dual Blades
ironshine_silk = "Ironshine Silk", dual_blades = {
archdemon_mode = "Archdemon Mode", archdemon_mode = "Archdemon Mode",
ironshine_silk = "Ironshine Silk"
},
-- Lance -- Lance
-- anchor_rage = "Anchor Rage", lance = {
-- spiral_thrust = "Spiral Thrust", anchor_rage = "Anchor Rage",
twin_wine = "Twin Wine", spiral_thrust = "Spiral Thrust",
twin_wine = "Twin Wine"
},
-- Gunlance -- Gunlance
--ground_splitter = "Ground Splitter", gunlance = {
--erupting_cannon = "Erupting Cannon", erupting_cannon = "Erupting Cannon",
ground_splitter = "Ground Splitter"
},
-- Hammer -- Hammer
-- impact_burst = "Impact Burst", hammer = {
impact_burst = "Impact Burst"
},
-- Hunting Horn -- Hunting Horn
-- silkbind_shockwave = "Silkbind Shockwave", hunting_horn = {
-- bead_of_resonance = "Bead of Resonance", bead_of_resonance = "Bead of Resonance",
-- sonic_bloom = "Sonic Bloom", silkbind_shockwave = "Silkbind Shockwave",
sonic_bloom = "Sonic Bloom"
},
-- Switch Axe -- Switch Axe
amped_state = "Amped State", switch_axe = {
switch_charger = "Switch Charger", amped_state = "Amped State",
axe_heavy_slam = "Axe: Heavy Slam", axe_heavy_slam = "Axe: Heavy Slam",
switch_charger = "Switch Charger"
},
-- Charge Blade -- Charge Blade
element_boost = "Element Boost", charge_blade = {
sword_boost_mode ="Sword Boost Mode", element_boost = "Element Boost",
sword_boost_mode = "Sword Boost Mode"
},
-- Insect Glaive -- Insect Glaive
red_extract = "Red Extract", insect_glaive = {
white_extract = "White Extract", red_extract = "Red Extract",
orange_extract = "Orange Extract", white_extract = "White Extract",
all_extracts_mix = "All Extracts Mix", orange_extract = "Orange Extract",
all_extracts_mix = "All Extracts Mix"
},
-- Light Bowgun -- Light Bowgun
-- fanning_maneuver = "Fanning Maneuver", light_bowgun = {
wyvernblast_reload = "Wyvernblast Reload", fanning_maneuver = "Fanning Maneuver",
wyvernblast_reload = "Wyvernblast Reload"
},
-- Heavy Bowgun -- Heavy Bowgun
-- counter_charger = "Counter Charger", heavy_bowgun = {
-- rising_moon = "Rising Moon", counter_charger = "Counter Charger",
-- setting_sun = "Setting Sun", overheat = "Overheat",
overheat = "Overheat", rising_moon = "Rising Moon",
wyvernsnipe_reload = "Wyvernsnipe Reload", setting_sun = "Setting Sun",
wyvernsnipe_reload = "Wyvernsnipe Reload"
},
-- Bow -- Bow
herculean_draw = "Herculean Draw", bow = {
-- bolt_boost = "Bolt Boost", arc_shot_affinity = "Arc Shot: Affinity",
arc_shot_affinity = "Arc Shot: Affinity", arc_shot_brace = "Arc Shot: Brace",
arc_shot_brace = "Arc Shot: Brace", bolt_boost = "Bolt Boost",
herculean_draw = "Herculean Draw"
}
},
otomo_moves = {
go_fight_win = "Go, Fight, Win",
power_drum = "Power Drum",
rousing_roar = "Rousing Roar",
vase_of_vitality = "Vase of Vitality",
}, },
misc_buffs = { misc_buffs = {
@@ -768,10 +888,26 @@ this.default_language = {
weapon_skills = "Weapon Skills", weapon_skills = "Weapon Skills",
otomo_moves = "Buddy Moves", otomo_moves = "Buddy Moves",
misc_buffs = "Misc Buffs", misc_buffs = "Misc Buffs",
timer_delays = "Timer Delays",
update_singletons_delay = "Update Singletons (seconds)",
update_window_size_delay = "Update Window Size (seconds)",
update_quest_time_delay = "Update Quest Time (seconds)",
update_is_online_delay = "Update Is Online (seconds)",
update_players_delay = "Update Players (seconds)",
update_myself_position_delay = "Update Myself Position (seconds)",
update_player_info_delay = "Update Player Info (seconds)",
update_buffs_delay = "Update Buffs (seconds)",
infinite_buffs_location = "Infinite Buffs Location",
effect_level = "Effect Level",
head_tracking = "Head Tracking"
}, },
}; };
this.language_names = { "default"}; this.language_names = { "default" };
this.languages = { this.default_language }; this.languages = { this.default_language };
function this.load() function this.load()
@@ -825,9 +961,21 @@ function this.init_dependencies()
end end
function this.init_module() function this.init_module()
this.save_default();
this.load(); this.load();
this.current_language = this.default_language; this.current_language = this.default_language;
this.default_language.font_name = "NotoSans-Bold.otf";
this.default_language.unicode_glyph_ranges = {
0x0020, 0x00FF, -- Basic Latin + Latin Supplement
0x0100, 0x024F, -- Latin Extended-A, Latin Extended-B,
0x0400, 0x052F, -- Cyrillic, Cyrillic Supplementary
0x1E00, 0x1EFF, -- Latin Extended Additional
0x2000, 0x206F, -- General Punctuation
0xFF00, 0xFFEF, -- Halfwidth and Fullwidth Forms
0
};
this.save_default();
end end
return this; return this;

View File

@@ -129,19 +129,19 @@ function this.update()
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("player_info.update", "Failed to access Data: player_manager"); error_handler.report("player_info.update", "Failed to Access Data: player_manager");
return; return;
end end
local master_player = find_master_player_method:call(singletons.player_manager); local master_player = find_master_player_method:call(singletons.player_manager);
if master_player == nil then if master_player == nil then
error_handler.report("player_info.update", "Failed to access Data: master_player"); error_handler.report("player_info.update", "Failed to Access Data: master_player");
return; return;
end end
local master_player_data = get_player_data_method:call(master_player); local master_player_data = get_player_data_method:call(master_player);
if master_player_data == nil then if master_player_data == nil then
error_handler.report("player_info.update", "Failed to access Data: master_player_data"); error_handler.report("player_info.update", "Failed to Access Data: master_player_data");
end end
master_player_ref = master_player; master_player_ref = master_player;
@@ -176,7 +176,7 @@ end
function this.update_generic(key, player_data, field) function this.update_generic(key, player_data, field)
local value = field:get_data(player_data); local value = field:get_data(player_data);
if value == nil then if value == nil then
error_handler.report("player_info.update_generic", string.format("Failed to access Data: %s_value", key)); error_handler.report("player_info.update_generic", string.format("Failed to Access Data: %s_value", key));
return; return;
end end
@@ -186,14 +186,14 @@ end
function this.update_resistances(player_data) function this.update_resistances(player_data)
local resistance_element_array = resistance_element_field:get_data(player_data); local resistance_element_array = resistance_element_field:get_data(player_data);
if resistance_element_array == nil then if resistance_element_array == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: resistance_element_array"); error_handler.report("player_info.update_resistances", "Failed to Access Data: resistance_element_array");
return; return;
end end
-- Fire Resistance -- Fire Resistance
local fire_resistance_single_valtype = get_value_method:call(resistance_element_array, 0); local fire_resistance_single_valtype = get_value_method:call(resistance_element_array, 0);
if fire_resistance_single_valtype == nil then if fire_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: fire_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: fire_resistance_single_valtype");
return; return;
end end
@@ -201,14 +201,14 @@ function this.update_resistances(player_data)
if fire_resistance ~= nil then if fire_resistance ~= nil then
this.list.fire_resistance = math.floor(fire_resistance); this.list.fire_resistance = math.floor(fire_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: fire_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: fire_resistance");
return; return;
end end
-- Water Resistance -- Water Resistance
local water_resistance_single_valtype = get_value_method:call(resistance_element_array, 1); local water_resistance_single_valtype = get_value_method:call(resistance_element_array, 1);
if water_resistance_single_valtype == nil then if water_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: water_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: water_resistance_single_valtype");
return; return;
end end
@@ -216,14 +216,14 @@ function this.update_resistances(player_data)
if water_resistance ~= nil then if water_resistance ~= nil then
this.list.water_resistance = math.floor(water_resistance); this.list.water_resistance = math.floor(water_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: water_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: water_resistance");
return; return;
end end
-- Thunder Resistance -- Thunder Resistance
local thunder_resistance_single_valtype = get_value_method:call(resistance_element_array, 2); local thunder_resistance_single_valtype = get_value_method:call(resistance_element_array, 2);
if thunder_resistance_single_valtype == nil then if thunder_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: thunder_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: thunder_resistance_single_valtype");
return; return;
end end
@@ -231,14 +231,14 @@ function this.update_resistances(player_data)
if thunder_resistance ~= nil then if thunder_resistance ~= nil then
this.list.thunder_resistance = math.floor(thunder_resistance); this.list.thunder_resistance = math.floor(thunder_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: thunder_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: thunder_resistance");
return; return;
end end
-- Ice Resistance -- Ice Resistance
local ice_resistance_single_valtype = get_value_method:call(resistance_element_array, 3); local ice_resistance_single_valtype = get_value_method:call(resistance_element_array, 3);
if ice_resistance_single_valtype == nil then if ice_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: ice_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: ice_resistance_single_valtype");
return; return;
end end
@@ -246,14 +246,14 @@ function this.update_resistances(player_data)
if ice_resistance ~= nil then if ice_resistance ~= nil then
this.list.ice_resistance = math.floor(ice_resistance); this.list.ice_resistance = math.floor(ice_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: ice_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: ice_resistance");
return; return;
end end
-- Dragon Resistance -- Dragon Resistance
local dragon_resistance_single_valtype = get_value_method:call(resistance_element_array, 4); local dragon_resistance_single_valtype = get_value_method:call(resistance_element_array, 4);
if dragon_resistance_single_valtype == nil then if dragon_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: dragon_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: dragon_resistance_single_valtype");
return; return;
end end
@@ -261,7 +261,7 @@ function this.update_resistances(player_data)
if dragon_resistance ~= nil then if dragon_resistance ~= nil then
this.list.dragon_resistance = math.floor(dragon_resistance); this.list.dragon_resistance = math.floor(dragon_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: dragon_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: dragon_resistance");
return; return;
end end
end end
@@ -285,7 +285,7 @@ end
function this.update_health(quest_player_base) function this.update_health(quest_player_base)
local vital = get_vital_method:call(master_player_data_ref); local vital = get_vital_method:call(master_player_data_ref);
if vital == nil then if vital == nil then
error_handler.report("player_info.update_health", "Failed to access Data: vital"); error_handler.report("player_info.update_health", "Failed to Access Data: vital");
return; return;
end end
@@ -299,7 +299,7 @@ function this.update_heroics(quest_player_base)
local is_predicament_power_up = is_predicament_power_up_method:call(master_player_ref); local is_predicament_power_up = is_predicament_power_up_method:call(master_player_ref);
if is_predicament_power_up == nil then if is_predicament_power_up == nil then
error_handler.report("player_info.update_heroics", "Failed to access Data: is_predicament_power_up"); error_handler.report("player_info.update_heroics", "Failed to Access Data: is_predicament_power_up");
return; return;
end end
@@ -313,7 +313,7 @@ function this.update_dango_adrenaline(quest_player_base)
local is_kitchen_skill_predicament_powerup = is_kitchen_skill_predicament_powerup_method:call(master_player_ref); local is_kitchen_skill_predicament_powerup = is_kitchen_skill_predicament_powerup_method:call(master_player_ref);
if is_kitchen_skill_predicament_powerup == nil then if is_kitchen_skill_predicament_powerup == nil then
error_handler.report("player_info.update_dango_adrenaline", "Failed to access Data: is_kitchen_skill_predicament_powerup"); error_handler.report("player_info.update_dango_adrenaline", "Failed to Access Data: is_kitchen_skill_predicament_powerup");
return; return;
end end

View File

@@ -69,13 +69,13 @@ function this.poison_proc(poison_param)
local enemy = get_enemy_method:call(poison_param); local enemy = get_enemy_method:call(poison_param);
if enemy == nil then if enemy == nil then
error_handler.report("ailment_hook.poison_proc", "Failed to access Data: enemy"); error_handler.report("ailment_hook.poison_proc", "Failed to Access Data: enemy");
return; return;
end end
local is_large = is_boss_enemy_method:call(enemy); local is_large = is_boss_enemy_method:call(enemy);
if is_large == nil then if is_large == nil then
error_handler.report("ailment_hook.poison_proc", "Failed to access Data: is_large"); error_handler.report("ailment_hook.poison_proc", "Failed to Access Data: is_large");
return; return;
end end
@@ -100,13 +100,13 @@ function this.blast_proc(blast_param)
local enemy = get_enemy_method:call(blast_param); local enemy = get_enemy_method:call(blast_param);
if enemy == nil then if enemy == nil then
error_handler.report("ailment_hook.blast_proc", "Failed to access Data: enemy"); error_handler.report("ailment_hook.blast_proc", "Failed to Access Data: enemy");
return; return;
end end
local is_large = is_boss_enemy_method:call(enemy); local is_large = is_boss_enemy_method:call(enemy);
if is_large == nil then if is_large == nil then
error_handler.report("ailment_hook.blast_proc", "Failed to access Data: is_large"); error_handler.report("ailment_hook.blast_proc", "Failed to Access Data: is_large");
return; return;
end end
@@ -128,13 +128,13 @@ function this.stock_damage()
for enemy, monster in pairs(large_monster.list) do for enemy, monster in pairs(large_monster.list) do
local damage_param = get_damage_param_method:call(enemy); local damage_param = get_damage_param_method:call(enemy);
if damage_param == nil then if damage_param == nil then
error_handler.report("ailment_hook.stock_damage", "Failed to access Data: large_monster -> damage_param"); error_handler.report("ailment_hook.stock_damage", "Failed to Access Data: large_monster -> damage_param");
goto continue; goto continue;
end end
local poison_param = poison_param_field:get_data(damage_param); local poison_param = poison_param_field:get_data(damage_param);
if poison_param == nil then if poison_param == nil then
error_handler.report("ailment_hook.stock_damage", "Failed to access Data: large_monster -> poison_param"); error_handler.report("ailment_hook.stock_damage", "Failed to Access Data: large_monster -> poison_param");
goto continue; goto continue;
end end
@@ -145,13 +145,13 @@ function this.stock_damage()
for enemy, monster in pairs(small_monster.list) do for enemy, monster in pairs(small_monster.list) do
local damage_param = get_damage_param_method:call(enemy); local damage_param = get_damage_param_method:call(enemy);
if damage_param == nil then if damage_param == nil then
error_handler.report("ailment_hook.stock_damage", "Failed to access Data: small_monster -> damage_param"); error_handler.report("ailment_hook.stock_damage", "Failed to Access Data: small_monster -> damage_param");
goto continue; goto continue;
end end
local poison_param = poison_param_field:get_data(damage_param); local poison_param = poison_param_field:get_data(damage_param);
if poison_param == nil then if poison_param == nil then
error_handler.report("ailment_hook.stock_damage", "Failed to access Data: small_monster -> poison_param"); error_handler.report("ailment_hook.stock_damage", "Failed to Access Data: small_monster -> poison_param");
goto continue; goto continue;
end end

View File

@@ -289,7 +289,7 @@ function this.update_ailments(enemy, monster)
local damage_param = get_damage_param_method:call(enemy); local damage_param = get_damage_param_method:call(enemy);
if damage_param == nil then if damage_param == nil then
error_handler.report("ailments.update_ailments", "Failed to access Data: damage_param"); error_handler.report("ailments.update_ailments", "Failed to Access Data: damage_param");
return; return;
end end
@@ -307,13 +307,13 @@ function this.update_ailments(enemy, monster)
local condition_param_array = get_condition_param_method:call(damage_param); local condition_param_array = get_condition_param_method:call(damage_param);
if condition_param_array == nil then if condition_param_array == nil then
error_handler.report("ailments.update_ailments", "Failed to access Data: condition_param_array"); error_handler.report("ailments.update_ailments", "Failed to Access Data: condition_param_array");
return; return;
end end
local condition_param_array_length = get_length_method:call(condition_param_array); local condition_param_array_length = get_length_method:call(condition_param_array);
if condition_param_array_length == nil then if condition_param_array_length == nil then
error_handler.report("ailments.update_ailments", "Failed to access Data: condition_param_array_length"); error_handler.report("ailments.update_ailments", "Failed to Access Data: condition_param_array_length");
return; return;
end end
@@ -324,7 +324,7 @@ function this.update_ailments(enemy, monster)
local ailment_param = get_value_method:call(condition_param_array, id); local ailment_param = get_value_method:call(condition_param_array, id);
if ailment_param == nil then if ailment_param == nil then
error_handler.report("ailments.update_ailments", "Failed to access Data: ailment_param No. " .. tostring(id)); error_handler.report("ailments.update_ailments", "Failed to Access Data: ailment_param No. " .. tostring(id));
goto continue; goto continue;
end end
@@ -338,21 +338,21 @@ function this.update_stun_poison_blast_ailments(monster, damage_param)
if stun_param ~= nil then if stun_param ~= nil then
this.update_ailment(monster, stun_param, this.stun_id); this.update_ailment(monster, stun_param, this.stun_id);
else else
error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to access Data: stun_param"); error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to Access Data: stun_param");
end end
local poison_param = poison_param_field:get_data(damage_param); local poison_param = poison_param_field:get_data(damage_param);
if poison_param ~= nil then if poison_param ~= nil then
this.update_ailment(monster, poison_param, this.poison_id); this.update_ailment(monster, poison_param, this.poison_id);
else else
error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to access Data: poison_param"); error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to Access Data: poison_param");
end end
local blast_param = blast_param_field:get_data(damage_param); local blast_param = blast_param_field:get_data(damage_param);
if blast_param ~= nil then if blast_param ~= nil then
this.update_ailment(monster, blast_param, this.blast_id); this.update_ailment(monster, blast_param, this.blast_id);
else else
error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to access Data: blast_param"); error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to Access Data: blast_param");
end end
end end
@@ -380,14 +380,14 @@ function this.update_ailment(monster, ailment_param, id)
if activate_count_valtype ~= nil then if activate_count_valtype ~= nil then
activate_count = int32_mvalue_field:get_data(activate_count_valtype); activate_count = int32_mvalue_field:get_data(activate_count_valtype);
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: activate_count_valtype"); error_handler.report("ailments.update_ailment", "Failed to Access Data: activate_count_valtype");
end end
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: activate_count_array_length"); error_handler.report("ailments.update_ailment", "Failed to Access Data: activate_count_array_length");
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: activate_count_array"); error_handler.report("ailments.update_ailment", "Failed to Access Data: activate_count_array");
end end
if buildup_array ~= nil then if buildup_array ~= nil then
@@ -401,14 +401,14 @@ function this.update_ailment(monster, ailment_param, id)
if buildup_valtype ~= nil then if buildup_valtype ~= nil then
buildup = single_mvalue_field:get_data(buildup_valtype); buildup = single_mvalue_field:get_data(buildup_valtype);
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_valtype"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_valtype");
end end
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_array_length"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_array_length");
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_array"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_array");
end end
if buildup_limit_array ~= nil then if buildup_limit_array ~= nil then
@@ -422,14 +422,14 @@ function this.update_ailment(monster, ailment_param, id)
if buildup_limit_valtype ~= nil then if buildup_limit_valtype ~= nil then
buildup_limit = single_mvalue_field:get_data(buildup_limit_valtype); buildup_limit = single_mvalue_field:get_data(buildup_limit_valtype);
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_limit_valtype"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_limit_valtype");
end end
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_limit_array_length"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_limit_array_length");
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_limit_array"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_limit_array");
end end
if is_enable == nil then if is_enable == nil then
@@ -453,7 +453,7 @@ function this.update_ailment(monster, ailment_param, id)
monster.ailments[id].activate_count = activate_count; monster.ailments[id].activate_count = activate_count;
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: activate_count"); error_handler.report("ailments.update_ailment", "Failed to Access Data: activate_count");
end end
if buildup ~= nil then if buildup ~= nil then
@@ -463,7 +463,7 @@ function this.update_ailment(monster, ailment_param, id)
monster.ailments[id].total_buildup = buildup; monster.ailments[id].total_buildup = buildup;
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup");
end end
if buildup_limit ~= nil then if buildup_limit ~= nil then
@@ -473,7 +473,7 @@ function this.update_ailment(monster, ailment_param, id)
monster.ailments[id].buildup_limit = buildup_limit; monster.ailments[id].buildup_limit = buildup_limit;
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_limit"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_limit");
end end
if buildup ~= nil and buildup_limit ~= nil and buildup_limit ~= 0 then if buildup ~= nil and buildup_limit ~= nil and buildup_limit ~= 0 then
@@ -544,7 +544,7 @@ function this.update_poison(monster, poison_param)
--if poison tick, apply damage --if poison tick, apply damage
local is_damage = poison_get_is_damage_method:call(poison_param); local is_damage = poison_get_is_damage_method:call(poison_param);
if is_damage == nil then if is_damage == nil then
error_handler.report("ailments.update_poison", "Failed to access Data: is_damage"); error_handler.report("ailments.update_poison", "Failed to Access Data: is_damage");
return; return;
end end
@@ -554,7 +554,7 @@ function this.update_poison(monster, poison_param)
local poison_damage = poison_damage_field:get_data(poison_param); local poison_damage = poison_damage_field:get_data(poison_param);
if poison_damage == nil then if poison_damage == nil then
error_handler.report("ailments.update_poison", "Failed to access Data: poison_damage"); error_handler.report("ailments.update_poison", "Failed to Access Data: poison_damage");
return; return;
end end

View File

@@ -64,6 +64,126 @@ this.monster_ids = {
risen_chameleos = 2073 risen_chameleos = 2073
} }
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_type_field = enemy_character_base_type_def:get_field("<EnemyType>k__BackingField");
local get_monster_list_register_scale_method = enemy_character_base_type_def:get_method("get_MonsterListRegisterScale");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_enemy_name_message_method = message_manager_type_def:get_method("getEnemyNameMessage");
local enemy_manager_type_def = sdk.find_type_definition("snow.enemy.EnemyManager");
local find_enemy_size_info_method = enemy_manager_type_def:get_method("findEnemySizeInfo");
local size_info_type_def = find_enemy_size_info_method:get_return_type();
local get_small_border_method = size_info_type_def:get_method("get_SmallBorder");
local get_big_border_method = size_info_type_def:get_method("get_BigBorder");
local get_king_border_method = size_info_type_def:get_method("get_KingBorder");
local get_set_info_method = enemy_character_base_type_def:get_method("get_SetInfo");
local set_info_type = get_set_info_method:get_return_type();
local get_unique_id_method = set_info_type:get_method("get_UniqueId");
local get_physical_param_method = enemy_character_base_type_def:get_method("get_PhysicalParam");
local get_stamina_param_method = enemy_character_base_type_def:get_method("get_StaminaParam");
local get_anger_param_method = enemy_character_base_type_def:get_method("get_AngerParam");
local get_damage_param_method = enemy_character_base_type_def:get_method("get_DamageParam");
local get_mystery_param_method = enemy_character_base_type_def:get_method("get_MysteryParam");
local get_mario_param_method = enemy_character_base_type_def:get_method("get_MarioParam");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local is_disp_icon_mini_map_method = enemy_character_base_type_def:get_method("isDispIconMiniMap");
local get_ref_mesh_method = enemy_character_base_type_def:get_method("get_RefMesh");
local mesh_type_def = get_ref_mesh_method:get_return_type();
local get_game_object_method = mesh_type_def:get_method("get_GameObject");
local game_object_type_def = get_game_object_method:get_return_type();
local get_transform_method = game_object_type_def:get_method("get_Transform");
local transform_type_def = get_transform_method:get_return_type();
local get_joint_by_name_method = transform_type_def:get_method("getJointByName");
local joint_type_def = get_joint_by_name_method:get_return_type();
local get_position_method = joint_type_def:get_method("get_Position");
local physical_param_type_def = get_physical_param_method:get_return_type();
local get_vital_method = physical_param_type_def:get_method("getVital");
local get_capture_hp_vital_method = physical_param_type_def:get_method("get_CaptureHpVital");
local vital_param_type_def = get_vital_method:get_return_type();
local get_current_method = vital_param_type_def:get_method("get_Current");
local get_max_method = vital_param_type_def:get_method("get_Max");
local is_enable_method = vital_param_type_def:get_method("isEnable");
local stamina_param_type_def = get_stamina_param_method:get_return_type();
local is_tired_method = stamina_param_type_def:get_method("isTired");
local get_stamina_method = stamina_param_type_def:get_method("getStamina");
local get_max_stamina_method = stamina_param_type_def:get_method("getMaxStamina");
local get_remaining_tired_time_method = stamina_param_type_def:get_method("getStaminaRemainingTime");
local get_total_tired_time_method = stamina_param_type_def:get_method("get_TiredSec");
local anger_param_type_def = get_anger_param_method:get_return_type();
local is_anger_method = anger_param_type_def:get_method("isAnger");
local get_anger_point_method = anger_param_type_def:get_method("get_AngerPoint");
local get_limit_anger_method = anger_param_type_def:get_method("get_LimitAnger");
local get_remaining_anger_time_method = anger_param_type_def:get_method("getAngerRemainingTime");
local get_total_anger_time_method = anger_param_type_def:get_method("get_TimerAnger");
local mario_param_type_def = get_mario_param_method:get_return_type();
local get_is_marionette_method = mario_param_type_def:get_method("get_IsMarionette");
local get_mario_player_index_method = mario_param_type_def:get_method("get_MarioPlayerIndex");
local get_pos_field = enemy_character_base_type_def:get_method("get_Pos");
local system_array_type_def = sdk.find_type_definition("System.Array");
local get_length_method = system_array_type_def:get_method("get_Length");
local get_value_method = system_array_type_def:get_method("GetValue(System.Int32)");
-- Lucent Nargacuga
local em037_02Character_type_def = sdk.find_type_definition("snow.enemy.em037.Em037_02Character");
local is_stealth_method = em037_02Character_type_def:get_method("isStealth");
-- Risen Chameleos and CHameleos
local Em025Character_base_type_Def = sdk.find_type_definition("snow.enemy.em025.Em025CharacterBase");
local get_stealth_ctrl_method = Em025Character_base_type_Def:get_method("get_StealthCtrl");
local stealth_ctrl_type_def = get_stealth_ctrl_method:get_return_type();
local get_current_status_method = stealth_ctrl_type_def:get_method("get_CurrentStatus");
local damage_param_type_def = get_damage_param_method:get_return_type();
local enemy_parts_damage_info_field = damage_param_type_def:get_field("_EnemyPartsDamageInfo");
local enemy_parts_damage_info_type_def = enemy_parts_damage_info_field:get_type();
local get_part_info_array_method = enemy_parts_damage_info_type_def:get_method("get_PartsInfo");
local enemy_parts_info_type_def = sdk.find_type_definition("snow.enemy.EnemyDamageParam.EnemyPartsDamageInfo.EnemyPartsInfo");
local get_parts_break_damage_level_method = enemy_parts_info_type_def:get_method("get_PartsBreakDamageLevel");
local get_parts_break_damage_max_level_method = enemy_parts_info_type_def:get_method("get_PartsBreakDamageMaxLevel");
local get_parts_loss_state_method = enemy_parts_info_type_def:get_method("get_PartsLossState");
local mystery_param_type_def = get_mystery_param_method:get_return_type();
local core_parts_array_field = mystery_param_type_def:get_field("CoreParts");
local enemy_mystery_core_parts_type_def = sdk.find_type_definition("snow.enemy.EnemyMysteryCoreParts");
local core_parts_get_vital_method = enemy_mystery_core_parts_type_def:get_method("get_Vital");
local core_parts_get_is_active_method = enemy_mystery_core_parts_type_def:get_method("get_IsActive");
local core_parts_get_dying_vital_threashold_method = enemy_mystery_core_parts_type_def:get_method("get_DyingVitalThreashold");
local on_break_method = enemy_mystery_core_parts_type_def:get_method("onBreak");
local gui_manager_type_def = sdk.find_type_definition("snow.gui.GuiManager");
local get_tg_camera_method = gui_manager_type_def:get_method("get_refGuiHud_TgCamera");
local tg_camera_type_def = get_tg_camera_method:get_return_type();
local get_targeting_enemy_index_field = tg_camera_type_def:get_field("OldTargetingEmIndex");
local lobby_manager_type_def = sdk.find_type_definition("snow.LobbyManager");
local receive_quest_hunter_info_method = lobby_manager_type_def:get_method("receiveQuestHunterInfo");
function this.new(enemy) function this.new(enemy)
local monster = {}; local monster = {};
@@ -116,7 +236,10 @@ function this.new(enemy)
monster.rage_seconds_left = 0; monster.rage_seconds_left = 0;
monster.rage_timer_percentage = 0; monster.rage_timer_percentage = 0;
monster.head_joint = nil;
monster.position = Vector3f.new(0, 0, 0); monster.position = Vector3f.new(0, 0, 0);
monster.head_position = Vector3f.new(0, 0, 0);
monster.distance = 0; monster.distance = 0;
monster.name = "Large Monster"; monster.name = "Large Monster";
@@ -166,116 +289,10 @@ function this.get_monster(enemy)
return monster; return monster;
end end
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_type_field = enemy_character_base_type_def:get_field("<EnemyType>k__BackingField");
local get_monster_list_register_scale_method = enemy_character_base_type_def:get_method("get_MonsterListRegisterScale");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_enemy_name_message_method = message_manager_type_def:get_method("getEnemyNameMessage");
local enemy_manager_type_def = sdk.find_type_definition("snow.enemy.EnemyManager");
local find_enemy_size_info_method = enemy_manager_type_def:get_method("findEnemySizeInfo");
local size_info_type = find_enemy_size_info_method:get_return_type();
local get_small_border_method = size_info_type:get_method("get_SmallBorder");
local get_big_border_method = size_info_type:get_method("get_BigBorder");
local get_king_border_method = size_info_type:get_method("get_KingBorder");
local get_set_info_method = enemy_character_base_type_def:get_method("get_SetInfo");
local set_info_type = get_set_info_method:get_return_type();
local get_unique_id_method = set_info_type:get_method("get_UniqueId");
local get_physical_param_method = enemy_character_base_type_def:get_method("get_PhysicalParam");
local get_stamina_param_method = enemy_character_base_type_def:get_method("get_StaminaParam");
local get_anger_param_method = enemy_character_base_type_def:get_method("get_AngerParam");
local get_damage_param_method = enemy_character_base_type_def:get_method("get_DamageParam");
local get_mystery_param_method = enemy_character_base_type_def:get_method("get_MysteryParam");
local get_mario_param_method = enemy_character_base_type_def:get_method("get_MarioParam");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local is_disp_icon_mini_map_method = enemy_character_base_type_def:get_method("isDispIconMiniMap");
local physical_param_type = get_physical_param_method:get_return_type();
local get_vital_method = physical_param_type:get_method("getVital");
local get_capture_hp_vital_method = physical_param_type:get_method("get_CaptureHpVital");
local vital_param_type = get_vital_method:get_return_type();
local get_current_method = vital_param_type:get_method("get_Current");
local get_max_method = vital_param_type:get_method("get_Max");
local is_enable_method = vital_param_type:get_method("isEnable");
local stamina_param_type = get_stamina_param_method:get_return_type();
local is_tired_method = stamina_param_type:get_method("isTired");
local get_stamina_method = stamina_param_type:get_method("getStamina");
local get_max_stamina_method = stamina_param_type:get_method("getMaxStamina");
local get_remaining_tired_time_method = stamina_param_type:get_method("getStaminaRemainingTime");
local get_total_tired_time_method = stamina_param_type:get_method("get_TiredSec");
local anger_param_type = get_anger_param_method:get_return_type();
local is_anger_method = anger_param_type:get_method("isAnger");
local get_anger_point_method = anger_param_type:get_method("get_AngerPoint");
local get_limit_anger_method = anger_param_type:get_method("get_LimitAnger");
local get_remaining_anger_time_method = anger_param_type:get_method("getAngerRemainingTime");
local get_total_anger_time_method = anger_param_type:get_method("get_TimerAnger");
local mario_param_type = get_mario_param_method:get_return_type();
local get_is_marionette_method = mario_param_type:get_method("get_IsMarionette");
local get_mario_player_index_method = mario_param_type:get_method("get_MarioPlayerIndex");
local get_pos_field = enemy_character_base_type_def:get_method("get_Pos");
local system_array_type_def = sdk.find_type_definition("System.Array");
local get_length_method = system_array_type_def:get_method("get_Length");
local get_value_method = system_array_type_def:get_method("GetValue(System.Int32)");
-- Lucent Nargacuga
local em037_02Character_type_def = sdk.find_type_definition("snow.enemy.em037.Em037_02Character");
local is_stealth_method = em037_02Character_type_def:get_method("isStealth");
-- Risen Chameleos and CHameleos
local Em025Character_base_type_Def = sdk.find_type_definition("snow.enemy.em025.Em025CharacterBase");
local get_stealth_ctrl_method = Em025Character_base_type_Def:get_method("get_StealthCtrl");
local stealth_ctrl_type_def = get_stealth_ctrl_method:get_return_type();
local get_current_status_method = stealth_ctrl_type_def:get_method("get_CurrentStatus");
local damage_param_type_def = get_damage_param_method:get_return_type();
local enemy_parts_damage_info_field = damage_param_type_def:get_field("_EnemyPartsDamageInfo");
local enemy_parts_damage_info_type_def = enemy_parts_damage_info_field:get_type();
local get_part_info_array_method = enemy_parts_damage_info_type_def:get_method("get_PartsInfo");
local enemy_parts_info_type_def = sdk.find_type_definition("snow.enemy.EnemyDamageParam.EnemyPartsDamageInfo.EnemyPartsInfo");
local get_parts_break_damage_level_method = enemy_parts_info_type_def:get_method("get_PartsBreakDamageLevel");
local get_parts_break_damage_max_level_method = enemy_parts_info_type_def:get_method("get_PartsBreakDamageMaxLevel");
local get_parts_loss_state_method = enemy_parts_info_type_def:get_method("get_PartsLossState");
local mystery_param_type_def = get_mystery_param_method:get_return_type();
local core_parts_array_field = mystery_param_type_def:get_field("CoreParts");
local enemy_mystery_core_parts_type_def = sdk.find_type_definition("snow.enemy.EnemyMysteryCoreParts");
local core_parts_get_vital_method = enemy_mystery_core_parts_type_def:get_method("get_Vital");
local core_parts_get_is_active_method = enemy_mystery_core_parts_type_def:get_method("get_IsActive");
local core_parts_get_dying_vital_threashold_method = enemy_mystery_core_parts_type_def:get_method("get_DyingVitalThreashold");
local on_break_method = enemy_mystery_core_parts_type_def:get_method("onBreak");
local gui_manager_type_def = sdk.find_type_definition("snow.gui.GuiManager");
local get_tg_camera_method = gui_manager_type_def:get_method("get_refGuiHud_TgCamera");
local tg_camera_type_def = get_tg_camera_method:get_return_type();
local get_targeting_enemy_index_field = tg_camera_type_def:get_field("OldTargetingEmIndex");
local lobby_manager_type_def = sdk.find_type_definition("snow.LobbyManager");
local receive_quest_hunter_info_method = lobby_manager_type_def:get_method("receiveQuestHunterInfo");
function this.init(monster, enemy) function this.init(monster, enemy)
local monster_id = enemy_type_field:get_data(enemy); local monster_id = enemy_type_field:get_data(enemy);
if monster_id == nil then if monster_id == nil then
error_handler.report("large_monster.init", "Failed to access Data: enemy_type"); error_handler.report("large_monster.init", "Failed to Access Data: enemy_type");
return; return;
end end
@@ -289,7 +306,7 @@ function this.init(monster, enemy)
if enemy_name ~= nil then if enemy_name ~= nil then
monster.name = enemy_name; monster.name = enemy_name;
else else
error_handler.report("large_monster.init", "Failed to access Data: enemy_name"); error_handler.report("large_monster.init", "Failed to Access Data: enemy_name");
end end
if monster_id ~= this.monster_ids.toadversary then if monster_id ~= this.monster_ids.toadversary then
@@ -299,10 +316,10 @@ function this.init(monster, enemy)
if unique_id ~= nil then if unique_id ~= nil then
monster.unique_id = unique_id; monster.unique_id = unique_id;
else else
error_handler.report("large_monster.init", "Failed to access Data: unique_id"); error_handler.report("large_monster.init", "Failed to Access Data: unique_id");
end end
else else
error_handler.report("large_monster.init", "Failed to access Data: set_info"); error_handler.report("large_monster.init", "Failed to Access Data: set_info");
end end
local size_info = find_enemy_size_info_method:call(singletons.enemy_manager, monster_id); local size_info = find_enemy_size_info_method:call(singletons.enemy_manager, monster_id);
@@ -316,25 +333,25 @@ function this.init(monster, enemy)
if small_border ~= nil then if small_border ~= nil then
monster.small_border = small_border; monster.small_border = small_border;
else else
error_handler.report("large_monster.init", "Failed to access Data: small_border"); error_handler.report("large_monster.init", "Failed to Access Data: small_border");
end end
if big_border ~= nil then if big_border ~= nil then
monster.big_border = big_border; monster.big_border = big_border;
else else
error_handler.report("large_monster.init", "Failed to access Data: big_border"); error_handler.report("large_monster.init", "Failed to Access Data: big_border");
end end
if king_border ~= nil then if king_border ~= nil then
monster.king_border = king_border; monster.king_border = king_border;
else else
error_handler.report("large_monster.init", "Failed to access Data: king_border"); error_handler.report("large_monster.init", "Failed to Access Data: king_border");
end end
if size ~= nil then if size ~= nil then
monster.size = size; monster.size = size;
else else
error_handler.report("large_monster.init", "Failed to access Data: size"); error_handler.report("large_monster.init", "Failed to Access Data: size");
end end
if monster.size <= monster.small_border then if monster.size <= monster.small_border then
@@ -345,7 +362,7 @@ function this.init(monster, enemy)
monster.crown = language.current_language.UI.silver; monster.crown = language.current_language.UI.silver;
end end
else else
error_handler.report("large_monster.init", "Failed to access Data: size_info"); error_handler.report("large_monster.init", "Failed to Access Data: size_info");
end end
end end
@@ -360,13 +377,13 @@ function this.init(monster, enemy)
if is_capture_enable_ ~= nil then if is_capture_enable_ ~= nil then
is_capture_enable = is_capture_enable_; is_capture_enable = is_capture_enable_;
else else
error_handler.report("large_monster.init", "Failed to access Data: is_capture_enable_"); error_handler.report("large_monster.init", "Failed to Access Data: is_capture_enable_");
end end
else else
error_handler.report("large_monster.init", "Failed to access Data: capture_param"); error_handler.report("large_monster.init", "Failed to Access Data: capture_param");
end end
else else
error_handler.report("large_monster.init", "Failed to access Data: damage_param"); error_handler.report("large_monster.init", "Failed to Access Data: damage_param");
end end
local mystery_param = get_mystery_param_method:call(enemy); local mystery_param = get_mystery_param_method:call(enemy);
@@ -374,6 +391,8 @@ function this.init(monster, enemy)
monster.is_anomaly = is_anomaly; monster.is_anomaly = is_anomaly;
monster.is_capturable = is_capture_enable and not is_anomaly; monster.is_capturable = is_capture_enable and not is_anomaly;
this.update_head_joint(enemy, monster);
end end
function this.init_UI(monster, monster_UI, cached_config) function this.init_UI(monster, monster_UI, cached_config)
@@ -478,10 +497,73 @@ function this.update_position(enemy, monster)
local position = get_pos_field:call(enemy); local position = get_pos_field:call(enemy);
if position == nil then if position == nil then
error_handler.report("large_monster.update_position", "Failed to access Data: position"); error_handler.report("large_monster.update_position", "Failed to Access Data: position");
end end
monster.position = position; monster.position = position;
this.update_head_position(enemy, monster);
end
function this.update_head_joint(enemy, monster)
local mesh = get_ref_mesh_method:call(enemy);
if mesh == nil then
error_handler.report("large_monster.update_head_joint", "Failed to Access Data: Mesh");
return;
end
local game_object = get_game_object_method:call(mesh);
if game_object == nil then
error_handler.report("large_monster.update_head_joint", "Failed to Access Data: GameObject");
return;
end
local transform = get_transform_method:call(game_object);
if transform == nil then
error_handler.report("large_monster.update_head_joint", "Failed to Access Data: Transform");
return;
end
local head_joint = get_joint_by_name_method:call(transform, "Head_00")
or get_joint_by_name_method:call(transform, "Head")
or get_joint_by_name_method:call(transform, "Head_01")
or get_joint_by_name_method:call(transform, "Spine_00")
or get_joint_by_name_method:call(transform, "Cog")
or get_joint_by_name_method:call(transform, "head")
or get_joint_by_name_method:call(transform, "root");
if head_joint == nil then
-- local joints = transform:get_Joints();
-- local out = "";
-- for i = 0, joints:get_Length() - 1 do
-- local joint = joints[i];
-- local joint_name = joint:get_Name();
-- out = out .. joint_name .. "\n";
-- end
-- error_handler.report(monster.name, out);
error_handler.report("large_monster.update_head_joint", "Failed to Access Data: HeadJoint");
return;
end
monster.head_joint = head_joint;
end
function this.update_head_position(enemy, monster)
if monster.head_joint == nil then
return;
end
local head_position = get_position_method:call(monster.head_joint);
if head_position == nil then
error_handler.report("large_monster.update_head_position", "Failed to Access Data: HeadPosition");
return;
end
monster.head_position = head_position;
end end
-- Code by coavins -- Code by coavins
@@ -490,20 +572,20 @@ function this.update_all_riders()
-- get marionette rider -- get marionette rider
local mario_param = get_mario_param_method:call(enemy); local mario_param = get_mario_param_method:call(enemy);
if mario_param == nil then if mario_param == nil then
error_handler.report("large_monster.update_all_riders", "Failed to access Data: mario_param"); error_handler.report("large_monster.update_all_riders", "Failed to Access Data: mario_param");
goto continue; goto continue;
end end
local is_marionette = get_is_marionette_method:call(mario_param); local is_marionette = get_is_marionette_method:call(mario_param);
if is_marionette == nil then if is_marionette == nil then
error_handler.report("large_monster.update_all_riders", "Failed to access Data: is_marionette"); error_handler.report("large_monster.update_all_riders", "Failed to Access Data: is_marionette");
goto continue; goto continue;
end end
if is_marionette then if is_marionette then
local player_id = get_mario_player_index_method:call(mario_param); local player_id = get_mario_player_index_method:call(mario_param);
if player_id == nil then if player_id == nil then
error_handler.report("large_monster.update_all_riders", "Failed to access Data: player_id"); error_handler.report("large_monster.update_all_riders", "Failed to Access Data: player_id");
goto continue; goto continue;
end end
@@ -529,14 +611,14 @@ function this.update(enemy, monster)
if dead_or_captured ~= nil then if dead_or_captured ~= nil then
monster.dead_or_captured = dead_or_captured; monster.dead_or_captured = dead_or_captured;
else else
error_handler.report("large_monster.update", "Failed to access Data: dead_or_captured"); error_handler.report("large_monster.update", "Failed to Access Data: dead_or_captured");
end end
local is_disp_icon_mini_map = is_disp_icon_mini_map_method:call(enemy); local is_disp_icon_mini_map = is_disp_icon_mini_map_method:call(enemy);
if is_disp_icon_mini_map ~= nil then if is_disp_icon_mini_map ~= nil then
monster.is_disp_icon_mini_map = is_disp_icon_mini_map; monster.is_disp_icon_mini_map = is_disp_icon_mini_map;
else else
error_handler.report("large_monster.update", "Failed to access Data: is_disp_icon_mini_map"); error_handler.report("large_monster.update", "Failed to Access Data: is_disp_icon_mini_map");
end end
if monster.id == this.monster_ids.lucent_nargacuga or monster.id == this.monster_ids.chameleos or monster.id == this.monster_ids.risen_chameleos then if monster.id == this.monster_ids.lucent_nargacuga or monster.id == this.monster_ids.chameleos or monster.id == this.monster_ids.risen_chameleos then
@@ -550,7 +632,7 @@ function this.update(enemy, monster)
if is_stealth == nil then if is_stealth == nil then
monster.is_stealth = is_stealth; monster.is_stealth = is_stealth;
else else
error_handler.report("large_monster.update", "Failed to access Data: is_stealth"); error_handler.report("large_monster.update", "Failed to Access Data: is_stealth");
end end
-- Chameleos and Risen Chameleos -- Chameleos and Risen Chameleos
@@ -560,14 +642,14 @@ function this.update(enemy, monster)
local status = get_current_status_method:call(stealth_controller); local status = get_current_status_method:call(stealth_controller);
if status == nil then if status == nil then
error_handler.report("large_monster.update", "Failed to access Data: status"); error_handler.report("large_monster.update", "Failed to Access Data: status");
elseif status >= 2 then elseif status >= 2 then
monster.is_stealth = true; monster.is_stealth = true;
else else
monster.is_stealth = false; monster.is_stealth = false;
end end
else else
error_handler.report("large_monster.update", "Failed to access Data: stealth_controller"); error_handler.report("large_monster.update", "Failed to Access Data: stealth_controller");
end end
end end
end end
@@ -592,13 +674,13 @@ function this.update_health(enemy, monster)
local physical_param = get_physical_param_method:call(enemy); local physical_param = get_physical_param_method:call(enemy);
if physical_param == nil then if physical_param == nil then
error_handler.report("large_monster.update_health", "Failed to access Data: physical_param"); error_handler.report("large_monster.update_health", "Failed to Access Data: physical_param");
return nil; return nil;
end end
local vital_param = get_vital_method:call(physical_param, 0, 0); local vital_param = get_vital_method:call(physical_param, 0, 0);
if vital_param == nil then if vital_param == nil then
error_handler.report("large_monster.update_health", "Failed to access Data: vital_param"); error_handler.report("large_monster.update_health", "Failed to Access Data: vital_param");
return nil; return nil;
end end
@@ -606,21 +688,21 @@ function this.update_health(enemy, monster)
if health ~= nil then if health ~= nil then
monster.health = health; monster.health = health;
else else
error_handler.report("large_monster.update_health", "Failed to access Data: health"); error_handler.report("large_monster.update_health", "Failed to Access Data: health");
end end
local max_health = get_max_method:call(vital_param); local max_health = get_max_method:call(vital_param);
if max_health ~= nil then if max_health ~= nil then
monster.max_health = max_health; monster.max_health = max_health;
else else
error_handler.report("large_monster.update_health", "Failed to access Data: max_health"); error_handler.report("large_monster.update_health", "Failed to Access Data: max_health");
end end
local capture_health = get_capture_hp_vital_method:call(physical_param); local capture_health = get_capture_hp_vital_method:call(physical_param);
if capture_health ~= nil then if capture_health ~= nil then
monster.capture_health = capture_health; monster.capture_health = capture_health;
else else
error_handler.report("large_monster.update_health", "Failed to access Data: capture_health"); error_handler.report("large_monster.update_health", "Failed to Access Data: capture_health");
end end
monster.missing_health = max_health - health; monster.missing_health = max_health - health;
@@ -652,7 +734,7 @@ function this.update_stamina(enemy, monster, stamina_param)
if stamina_param == nil then if stamina_param == nil then
stamina_param = get_stamina_param_method:call(enemy); stamina_param = get_stamina_param_method:call(enemy);
if stamina_param == nil then if stamina_param == nil then
error_handler.report("large_monster.update_stamina", "Failed to access Data: stamina_param"); error_handler.report("large_monster.update_stamina", "Failed to Access Data: stamina_param");
return; return;
end end
end end
@@ -661,7 +743,7 @@ function this.update_stamina(enemy, monster, stamina_param)
if is_tired ~= nil then if is_tired ~= nil then
monster.is_tired = is_tired; monster.is_tired = is_tired;
else else
error_handler.report("large_monster.update_stamina", "Failed to access Data: is_tired"); error_handler.report("large_monster.update_stamina", "Failed to Access Data: is_tired");
return; return;
end end
@@ -673,7 +755,7 @@ function this.update_stamina(enemy, monster, stamina_param)
if stamina ~= nil then if stamina ~= nil then
monster.stamina = stamina; monster.stamina = stamina;
else else
error_handler.report("large_monster.update_stamina", "Failed to access Data: stamina"); error_handler.report("large_monster.update_stamina", "Failed to Access Data: stamina");
return; return;
end end
@@ -681,7 +763,7 @@ function this.update_stamina(enemy, monster, stamina_param)
if max_stamina ~= nil then if max_stamina ~= nil then
monster.max_stamina = max_stamina; monster.max_stamina = max_stamina;
else else
error_handler.report("large_monster.update_stamina", "Failed to access Data: max_stamina"); error_handler.report("large_monster.update_stamina", "Failed to Access Data: max_stamina");
return; return;
end end
@@ -709,7 +791,7 @@ function this.update_stamina_timer(enemy, monster, stamina_param)
if stamina_param == nil then if stamina_param == nil then
stamina_param = get_stamina_param_method:call(enemy); stamina_param = get_stamina_param_method:call(enemy);
if stamina_param == nil then if stamina_param == nil then
error_handler.report("large_monster.update_stamina_timer", "Failed to access Data: stamina_param"); error_handler.report("large_monster.update_stamina_timer", "Failed to Access Data: stamina_param");
return; return;
end end
end end
@@ -718,7 +800,7 @@ function this.update_stamina_timer(enemy, monster, stamina_param)
if is_tired ~= nil then if is_tired ~= nil then
monster.is_tired = is_tired; monster.is_tired = is_tired;
else else
error_handler.report("large_monster.update_stamina_timer", "Failed to access Data: is_tired"); error_handler.report("large_monster.update_stamina_timer", "Failed to Access Data: is_tired");
return; return;
end end
@@ -730,7 +812,7 @@ function this.update_stamina_timer(enemy, monster, stamina_param)
if tired_timer ~= nil then if tired_timer ~= nil then
monster.tired_timer = tired_timer; monster.tired_timer = tired_timer;
else else
error_handler.report("large_monster.update_stamina_timer", "Failed to access Data: tired_timer"); error_handler.report("large_monster.update_stamina_timer", "Failed to Access Data: tired_timer");
return; return;
end end
@@ -738,7 +820,7 @@ function this.update_stamina_timer(enemy, monster, stamina_param)
if tired_duration ~= nil then if tired_duration ~= nil then
monster.tired_duration = tired_duration; monster.tired_duration = tired_duration;
else else
error_handler.report("large_monster.update_stamina_timer", "Failed to access Data: tired_duration"); error_handler.report("large_monster.update_stamina_timer", "Failed to Access Data: tired_duration");
return; return;
end end
@@ -773,7 +855,7 @@ function this.update_rage(enemy, monster, anger_param)
if anger_param == nil then if anger_param == nil then
anger_param = get_anger_param_method:call(enemy); anger_param = get_anger_param_method:call(enemy);
if anger_param == nil then if anger_param == nil then
error_handler.report("large_monster.update_rage", "Failed to access Data: anger_param"); error_handler.report("large_monster.update_rage", "Failed to Access Data: anger_param");
return; return;
end end
end end
@@ -782,7 +864,7 @@ function this.update_rage(enemy, monster, anger_param)
if is_in_rage ~= nil then if is_in_rage ~= nil then
monster.is_in_rage = is_in_rage; monster.is_in_rage = is_in_rage;
else else
error_handler.report("large_monster.update_rage", "Failed to access Data: is_in_rage"); error_handler.report("large_monster.update_rage", "Failed to Access Data: is_in_rage");
return; return;
end end
@@ -794,7 +876,7 @@ function this.update_rage(enemy, monster, anger_param)
if rage_point ~= nil then if rage_point ~= nil then
monster.rage_point = rage_point; monster.rage_point = rage_point;
else else
error_handler.report("large_monster.update_rage", "Failed to access Data: rage_point"); error_handler.report("large_monster.update_rage", "Failed to Access Data: rage_point");
return; return;
end end
@@ -802,7 +884,7 @@ function this.update_rage(enemy, monster, anger_param)
if rage_limit ~= nil then if rage_limit ~= nil then
monster.rage_limit = rage_limit; monster.rage_limit = rage_limit;
else else
error_handler.report("large_monster.update_rage", "Failed to access Data: rage_limit"); error_handler.report("large_monster.update_rage", "Failed to Access Data: rage_limit");
return; return;
end end
@@ -829,7 +911,7 @@ function this.update_rage_timer(enemy, monster, anger_param)
if anger_param == nil then if anger_param == nil then
anger_param = get_anger_param_method:call(enemy); anger_param = get_anger_param_method:call(enemy);
if anger_param == nil then if anger_param == nil then
error_handler.report("large_monster.update_rage_timer", "Failed to access Data: anger_param"); error_handler.report("large_monster.update_rage_timer", "Failed to Access Data: anger_param");
return; return;
end end
end end
@@ -838,7 +920,7 @@ function this.update_rage_timer(enemy, monster, anger_param)
if is_in_rage ~= nil then if is_in_rage ~= nil then
monster.is_in_rage = is_in_rage; monster.is_in_rage = is_in_rage;
else else
error_handler.report("large_monster.update_rage_timer", "Failed to access Data: is_in_rage"); error_handler.report("large_monster.update_rage_timer", "Failed to Access Data: is_in_rage");
return; return;
end end
@@ -850,7 +932,7 @@ function this.update_rage_timer(enemy, monster, anger_param)
if rage_timer ~= nil then if rage_timer ~= nil then
monster.rage_timer = rage_timer; monster.rage_timer = rage_timer;
else else
error_handler.report("large_monster.update_rage_timer", "Failed to access Data: rage_timer"); error_handler.report("large_monster.update_rage_timer", "Failed to Access Data: rage_timer");
return; return;
end end
@@ -858,7 +940,7 @@ function this.update_rage_timer(enemy, monster, anger_param)
if rage_duration ~= nil then if rage_duration ~= nil then
monster.rage_duration = rage_duration; monster.rage_duration = rage_duration;
else else
error_handler.report("large_monster.update_rage_timer", "Failed to access Data: rage_duration"); error_handler.report("large_monster.update_rage_timer", "Failed to Access Data: rage_duration");
return; return;
end end
@@ -905,32 +987,32 @@ function this.update_parts(enemy, monster, physical_param)
if physical_param == nil then if physical_param == nil then
physical_param = get_physical_param_method:call(enemy); physical_param = get_physical_param_method:call(enemy);
if physical_param == nil then if physical_param == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: physical_param"); error_handler.report("large_monster.update_parts", "Failed to Access Data: physical_param");
return; return;
end end
end end
local damage_param = get_damage_param_method:call(enemy); local damage_param = get_damage_param_method:call(enemy);
if damage_param == nil then if damage_param == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: damage_param"); error_handler.report("large_monster.update_parts", "Failed to Access Data: damage_param");
return; return;
end end
local enemy_parts_damage_info = enemy_parts_damage_info_field:get_data(damage_param); local enemy_parts_damage_info = enemy_parts_damage_info_field:get_data(damage_param);
if enemy_parts_damage_info == nil then if enemy_parts_damage_info == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: enemy_parts_damage_info"); error_handler.report("large_monster.update_parts", "Failed to Access Data: enemy_parts_damage_info");
return; return;
end end
local core_parts_array = get_part_info_array_method:call(enemy_parts_damage_info); local core_parts_array = get_part_info_array_method:call(enemy_parts_damage_info);
if core_parts_array == nil then if core_parts_array == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: core_parts_array"); error_handler.report("large_monster.update_parts", "Failed to Access Data: core_parts_array");
return; return;
end end
local core_parts_array_length = get_length_method:call(core_parts_array); local core_parts_array_length = get_length_method:call(core_parts_array);
if core_parts_array_length == nil then if core_parts_array_length == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: core_parts_array_length"); error_handler.report("large_monster.update_parts", "Failed to Access Data: core_parts_array_length");
return; return;
end end
@@ -939,7 +1021,7 @@ function this.update_parts(enemy, monster, physical_param)
local enemy_parts_info = get_value_method:call(core_parts_array, i); local enemy_parts_info = get_value_method:call(core_parts_array, i);
if enemy_parts_info == nil then if enemy_parts_info == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: enemy_parts_info No. " .. tostring(i)); error_handler.report("large_monster.update_parts", "Failed to Access Data: enemy_parts_info No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -963,19 +1045,19 @@ function this.update_parts(enemy, monster, physical_param)
local part_current = get_current_method:call(part_vital); local part_current = get_current_method:call(part_vital);
if part_current == nil then if part_current == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_current", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_current", i));
end end
local part_max = get_max_method:call(part_vital); local part_max = get_max_method:call(part_vital);
if part_max == nil then if part_max == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_max", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_max", i));
end end
if part_current ~= nil and part_max ~= nil then if part_current ~= nil and part_max ~= nil then
body_part.update_flinch(part, part_current, part_max); body_part.update_flinch(part, part_current, part_max);
end end
else else
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_vital", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_vital", i));
end end
end end
@@ -988,29 +1070,29 @@ function this.update_parts(enemy, monster, physical_param)
local part_break_current = get_current_method:call(part_break_vital); local part_break_current = get_current_method:call(part_break_vital);
if part_break_current == nil then if part_break_current == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_current", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_current", i));
end end
local part_break_max = get_max_method:call(part_break_vital); local part_break_max = get_max_method:call(part_break_vital);
if part_break_max == nil then if part_break_max == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_max", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_max", i));
end end
local part_break_count = get_parts_break_damage_level_method:call(enemy_parts_info); local part_break_count = get_parts_break_damage_level_method:call(enemy_parts_info);
if part_break_count == nil then if part_break_count == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_count", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_count", i));
end end
local part_break_max_count = get_parts_break_damage_max_level_method:call(enemy_parts_info); local part_break_max_count = get_parts_break_damage_max_level_method:call(enemy_parts_info);
if part_break_max_count == nil then if part_break_max_count == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_max_count", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_max_count", i));
end end
if part_break_current ~= nil and part_break_max ~= nil and part_break_count ~= nil and part_break_max_count ~= nil then if part_break_current ~= nil and part_break_max ~= nil and part_break_count ~= nil and part_break_max_count ~= nil then
body_part.update_break(part, part_break_current, part_break_max, part_break_count, part_break_max_count); body_part.update_break(part, part_break_current, part_break_max, part_break_count, part_break_max_count);
end end
else else
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_vital", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_vital", i));
end end
end end
@@ -1023,24 +1105,24 @@ function this.update_parts(enemy, monster, physical_param)
local part_loss_current = get_current_method:call(part_loss_vital); local part_loss_current = get_current_method:call(part_loss_vital);
if part_loss_current == nil then if part_loss_current == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_loss_current", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_loss_current", i));
end end
local part_loss_max = get_max_method:call(part_loss_vital); local part_loss_max = get_max_method:call(part_loss_vital);
if part_loss_max == nil then if part_loss_max == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_loss_max", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_loss_max", i));
end end
local is_severed = get_parts_loss_state_method:call(enemy_parts_info); local is_severed = get_parts_loss_state_method:call(enemy_parts_info);
if is_severed == nil then if is_severed == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> is_severed", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> is_severed", i));
end end
if part_loss_current ~= nil and part_loss_max ~= nil and is_severed ~= nil then if part_loss_current ~= nil and part_loss_max ~= nil and is_severed ~= nil then
body_part.update_loss(part, part_loss_current, part_loss_max, is_severed); body_part.update_loss(part, part_loss_current, part_loss_max, is_severed);
end end
else else
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_loss_vital", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_loss_vital", i));
end end
end end
@@ -1078,13 +1160,13 @@ function this.update_anomaly_parts(enemy, monster, mystery_param)
local core_parts_array = core_parts_array_field:get_data(mystery_param); local core_parts_array = core_parts_array_field:get_data(mystery_param);
if core_parts_array == nil then if core_parts_array == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: core_parts_array"); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: core_parts_array");
return; return;
end end
local core_parts_array_length = get_length_method:call(core_parts_array); local core_parts_array_length = get_length_method:call(core_parts_array);
if core_parts_array_length == nil then if core_parts_array_length == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: core_parts_array_length"); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: core_parts_array_length");
return; return;
end end
@@ -1093,7 +1175,7 @@ function this.update_anomaly_parts(enemy, monster, mystery_param)
local core_part = get_value_method:call(core_parts_array, i); local core_part = get_value_method:call(core_parts_array, i);
if core_part == nil then if core_part == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: core_part No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: core_part No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -1110,13 +1192,13 @@ function this.update_anomaly_parts(enemy, monster, mystery_param)
local part_vital = core_parts_get_vital_method:call(core_part); local part_vital = core_parts_get_vital_method:call(core_part);
if part_vital == nil then if part_vital == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_vital No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_vital No. " .. tostring(i));
return; return;
end end
local part_is_active = core_parts_get_is_active_method:call(core_part); local part_is_active = core_parts_get_is_active_method:call(core_part);
if part_is_active == nil then if part_is_active == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_is_active No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_is_active No. " .. tostring(i));
return; return;
end end
@@ -1124,19 +1206,19 @@ function this.update_anomaly_parts(enemy, monster, mystery_param)
local part_current = get_current_method:call(part_vital); local part_current = get_current_method:call(part_vital);
if part_current == nil then if part_current == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_current No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_current No. " .. tostring(i));
goto continue; goto continue;
end end
local part_max = get_max_method:call(part_vital); local part_max = get_max_method:call(part_vital);
if part_max == nil then if part_max == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_max No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_max No. " .. tostring(i));
goto continue; goto continue;
end end
local part_is_enabled = is_enable_method:call(part_vital); local part_is_enabled = is_enable_method:call(part_vital);
if part_is_enabled == nil then if part_is_enabled == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_is_enabled No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_is_enabled No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -1159,19 +1241,19 @@ function this.update_highlighted_id()
end end
if singletons.gui_manager == nil then if singletons.gui_manager == nil then
error_handler.report("large_monster.update_highlighted_id", "Failed to access Data: gui_manager"); error_handler.report("large_monster.update_highlighted_id", "Failed to Access Data: gui_manager");
return; return;
end end
local gui_hud_target_camera = get_tg_camera_method:call(singletons.gui_manager); local gui_hud_target_camera = get_tg_camera_method:call(singletons.gui_manager);
if gui_hud_target_camera == nil then if gui_hud_target_camera == nil then
error_handler.report("large_monster.update_highlighted_id", "Failed to access Data: gui_hud_target_camera"); error_handler.report("large_monster.update_highlighted_id", "Failed to Access Data: gui_hud_target_camera");
return; return;
end end
local highlighted_id = get_targeting_enemy_index_field:get_data(gui_hud_target_camera); local highlighted_id = get_targeting_enemy_index_field:get_data(gui_hud_target_camera);
if highlighted_id == nil then if highlighted_id == nil then
error_handler.report("large_monster_UI.update_highlighted_id", "Failed to access Data: highlighted_id"); error_handler.report("large_monster_UI.update_highlighted_id", "Failed to Access Data: highlighted_id");
return; return;
end end

View File

@@ -44,6 +44,7 @@ local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.Enemy
local enemy_character_base_update_method = enemy_character_base_type_def:get_method("update"); local enemy_character_base_update_method = enemy_character_base_type_def:get_method("update");
local is_boss_enemy_method = enemy_character_base_type_def:get_method("get_isBossEnemy"); local is_boss_enemy_method = enemy_character_base_type_def:get_method("get_isBossEnemy");
local on_destroy_method = enemy_character_base_type_def:get_method("onDestroy");
local enemy_damage_check_type_def = sdk.find_type_definition("snow.enemy.EnemyDamageCheck"); local enemy_damage_check_type_def = sdk.find_type_definition("snow.enemy.EnemyDamageCheck");
local damage_check_update_param_update_method = enemy_damage_check_type_def:get_method("updateParam"); local damage_check_update_param_update_method = enemy_damage_check_type_def:get_method("updateParam");
@@ -205,13 +206,13 @@ end
function this.update_health(enemy_damage_check) function this.update_health(enemy_damage_check)
local enemy = get_ref_enemy:call(enemy_damage_check); local enemy = get_ref_enemy:call(enemy_damage_check);
if enemy == nil then if enemy == nil then
error_handler.report("monster_hook.update_health", "Failed to access Data: enemy"); error_handler.report("monster_hook.update_health", "Failed to Access Data: enemy");
return; return;
end end
local is_large = is_boss_enemy_method:call(enemy); local is_large = is_boss_enemy_method:call(enemy);
if is_large == nil then if is_large == nil then
error_handler.report("monster_hook.update_health", "Failed to access Data: is_large"); error_handler.report("monster_hook.update_health", "Failed to Access Data: is_large");
return; return;
end end
@@ -234,7 +235,7 @@ function this.update_stamina(stamina_param, stamina_sub)
local enemy = get_enemy_method:call(stamina_param); local enemy = get_enemy_method:call(stamina_param);
if enemy == nil then if enemy == nil then
error_handler.report("monster_hook.update_stamina", "Failed to access Data: enemy"); error_handler.report("monster_hook.update_stamina", "Failed to Access Data: enemy");
return; return;
end end
@@ -261,6 +262,20 @@ function this.update_rage_timer(anger_param, enemy)
large_monster.update_rage_timer(enemy, monster, anger_param); large_monster.update_rage_timer(enemy, monster, anger_param);
end end
function this.on_destroy(enemy)
local is_large = is_boss_enemy_method:call(enemy);
if is_large == nil then
error_handler.report("monster_hook.on_destroy", "Failed to Access Data: is_large");
return;
end
if is_large then
large_monster.list[enemy] = nil;
else
small_monster.list[enemy] = nil;
end
end
function this.init_dependencies() function this.init_dependencies()
small_monster = require("MHR_Overlay.Monsters.small_monster"); small_monster = require("MHR_Overlay.Monsters.small_monster");
large_monster = require("MHR_Overlay.Monsters.large_monster"); large_monster = require("MHR_Overlay.Monsters.large_monster");
@@ -296,6 +311,12 @@ function this.init_module()
end, function(retval) end, function(retval)
return retval; return retval;
end); end);
sdk.hook(on_destroy_method, function(args)
pcall(this.on_destroy, sdk.to_managed_object(args[2]));
end, function(retval)
return retval;
end);
end end
return this; return this;

View File

@@ -48,6 +48,39 @@ local package = package;
this.list = {}; this.list = {};
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_type_field = enemy_character_base_type_def:get_field("<EnemyType>k__BackingField");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_enemy_name_message_method = message_manager_type_def:get_method("getEnemyNameMessage");
local get_ref_mesh_method = enemy_character_base_type_def:get_method("get_RefMesh");
local mesh_type_def = get_ref_mesh_method:get_return_type();
local get_game_object_method = mesh_type_def:get_method("get_GameObject");
local game_object_type_def = get_game_object_method:get_return_type();
local get_transform_method = game_object_type_def:get_method("get_Transform");
local transform_type_def = get_transform_method:get_return_type();
local get_joint_by_name_method = transform_type_def:get_method("getJointByName");
local joint_type_def = get_joint_by_name_method:get_return_type();
local get_position_method = joint_type_def:get_method("get_Position");
local get_physical_param_method = enemy_character_base_type_def:get_method("get_PhysicalParam");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local physical_param_type = get_physical_param_method:get_return_type();
local get_vital_method = physical_param_type:get_method("getVital");
local vital_param_type = get_vital_method:get_return_type();
local get_current_method = vital_param_type:get_method("get_Current");
local get_max_method = vital_param_type:get_method("get_Max");
local get_pos_method = enemy_character_base_type_def:get_method("get_Pos");
function this.new(enemy) function this.new(enemy)
local monster = {}; local monster = {};
monster.is_large = false; monster.is_large = false;
@@ -58,7 +91,10 @@ function this.new(enemy)
monster.missing_health = 0; monster.missing_health = 0;
monster.capture_health = 0; monster.capture_health = 0;
monster.head_joint = nil;
monster.position = Vector3f.new(0, 0, 0); monster.position = Vector3f.new(0, 0, 0);
monster.head_position = Vector3f.new(0, 0, 0);
monster.distance = 0; monster.distance = 0;
monster.name = "Small Monster"; monster.name = "Small Monster";
@@ -89,16 +125,10 @@ function this.get_monster(enemy)
return monster; return monster;
end end
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_type_field = enemy_character_base_type_def:get_field("<EnemyType>k__BackingField");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_enemy_name_message_method = message_manager_type_def:get_method("getEnemyNameMessage");
function this.init(monster, enemy) function this.init(monster, enemy)
local enemy_type = enemy_type_field:get_data(enemy); local enemy_type = enemy_type_field:get_data(enemy);
if enemy_type == nil then if enemy_type == nil then
error_handler.report("small_monster.init", "Failed to access Data: enemy_type"); error_handler.report("small_monster.init", "Failed to Access Data: enemy_type");
return; return;
end end
@@ -106,10 +136,12 @@ function this.init(monster, enemy)
local enemy_name = get_enemy_name_message_method:call(singletons.message_manager, enemy_type); local enemy_name = get_enemy_name_message_method:call(singletons.message_manager, enemy_type);
if enemy_name == nil then if enemy_name == nil then
error_handler.report("small_monster.init", "Failed to access Data: enemy_name"); error_handler.report("small_monster.init", "Failed to Access Data: enemy_name");
end end
monster.name = enemy_name; monster.name = enemy_name;
this.update_head_joint(enemy, monster);
end end
function this.init_UI(monster) function this.init_UI(monster)
@@ -153,18 +185,6 @@ function this.init_UI(monster)
); );
end end
local get_physical_param_method = enemy_character_base_type_def:get_method("get_PhysicalParam");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local physical_param_type = get_physical_param_method:get_return_type();
local get_vital_method = physical_param_type:get_method("getVital");
local vital_param_type = get_vital_method:get_return_type();
local get_current_method = vital_param_type:get_method("get_Current");
local get_max_method = vital_param_type:get_method("get_Max");
local get_pos_method = enemy_character_base_type_def:get_method("get_Pos");
function this.update_position(enemy, monster) function this.update_position(enemy, monster)
local cached_config = config.current_config.small_monster_UI; local cached_config = config.current_config.small_monster_UI;
@@ -179,10 +199,73 @@ function this.update_position(enemy, monster)
local position = get_pos_method:call(enemy); local position = get_pos_method:call(enemy);
if position == nil then if position == nil then
error_handler.report("small_monster.update_position", "Failed to access Data: position"); error_handler.report("small_monster.update_position", "Failed to Access Data: position");
end end
monster.position = position; monster.position = position;
this.update_head_position(enemy, monster);
end
function this.update_head_joint(enemy, monster)
local mesh = get_ref_mesh_method:call(enemy);
if mesh == nil then
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: Mesh");
return;
end
local game_object = get_game_object_method:call(mesh);
if game_object == nil then
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: GameObject");
return;
end
local transform = get_transform_method:call(game_object);
if transform == nil then
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: Transform");
return;
end
local head_joint = get_joint_by_name_method:call(transform, "Head_00")
or get_joint_by_name_method:call(transform, "Head")
or get_joint_by_name_method:call(transform, "Head_01")
or get_joint_by_name_method:call(transform, "Spine_00")
or get_joint_by_name_method:call(transform, "Cog")
or get_joint_by_name_method:call(transform, "head")
or get_joint_by_name_method:call(transform, "root");
if head_joint == nil then
-- local out = "";
-- local joints = transform:get_Joints();
-- for i = 0, joints:get_Length() - 1 do
-- local joint = joints[i];
-- local joint_name = joint:get_Name();
-- out = out .. joint_name .. "\n";
-- end
-- error_handler.report(monster.name, out);
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: HeadJoint");
return;
end
monster.head_joint = head_joint;
end
function this.update_head_position(enemy, monster)
if monster.head_joint == nil then
return;
end
local head_position = get_position_method:call(monster.head_joint);
if head_position == nil then
error_handler.report("small_monster.update_head_position", "Failed to Access Data: HeadPosition");
return;
end
monster.head_position = head_position;
end end
function this.update(enemy, monster) function this.update(enemy, monster)
@@ -194,7 +277,7 @@ function this.update(enemy, monster)
if dead_or_captured ~= nil then if dead_or_captured ~= nil then
monster.dead_or_captured = dead_or_captured; monster.dead_or_captured = dead_or_captured;
else else
error_handler.report("small_monster.update", "Failed to access Data: dead_or_captured"); error_handler.report("small_monster.update", "Failed to Access Data: dead_or_captured");
end end
pcall(ailments.update_ailments, enemy, monster); pcall(ailments.update_ailments, enemy, monster);
@@ -207,13 +290,13 @@ function this.update_health(enemy, monster)
local physical_param = get_physical_param_method:call(enemy); local physical_param = get_physical_param_method:call(enemy);
if physical_param == nil then if physical_param == nil then
error_handler.report("small_monster.update_health", "Failed to access Data: physical_param"); error_handler.report("small_monster.update_health", "Failed to Access Data: physical_param");
return; return;
end end
local vital_param = get_vital_method:call(physical_param, 0, 0); local vital_param = get_vital_method:call(physical_param, 0, 0);
if vital_param == nil then if vital_param == nil then
error_handler.report("small_monster.update_health", "Failed to access Data: vital_param"); error_handler.report("small_monster.update_health", "Failed to Access Data: vital_param");
return; return;
end end
@@ -221,7 +304,7 @@ function this.update_health(enemy, monster)
if health ~= nil then if health ~= nil then
monster.health = health; monster.health = health;
else else
error_handler.report("small_monster.update_health", "Failed to access Data: health"); error_handler.report("small_monster.update_health", "Failed to Access Data: health");
return; return;
end end
@@ -229,7 +312,7 @@ function this.update_health(enemy, monster)
if max_health ~= nil then if max_health ~= nil then
monster.max_health = max_health; monster.max_health = max_health;
else else
error_handler.report("small_monster.update_health", "Failed to access Data: max_health"); error_handler.report("small_monster.update_health", "Failed to Access Data: max_health");
return; return;
end end

View File

@@ -131,36 +131,199 @@ function this.update()
end end
function this.sort_buffs(_displayed_buffs, cached_config) function this.sort_buffs(_displayed_buffs, cached_config)
local infinite_buffs_location = cached_config.settings.infinite_buffs_location;
cached_config = cached_config.sorting; cached_config = cached_config.sorting;
if cached_config.type == "Name" then if cached_config.type == "Name" then
if cached_config.reversed_order then if cached_config.reversed_order then
table.sort(_displayed_buffs, function(left, right) table.sort(_displayed_buffs, function(left, right)
return left.name > right.name;
if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then
return left.name < right.name;
elseif left.is_infinite then
return true;
elseif right.is_infinite then
return false;
else
return left.name < right.name;
end
elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then
return left.name < right.name;
elseif left.is_infinite then
return false;
elseif right.is_infinite then
return true;
else
return left.name < right.name;
end
else
return left.name < right.name;
end
end); end);
else else
table.sort(_displayed_buffs, function(left, right) table.sort(_displayed_buffs, function(left, right)
return left.name < right.name;
if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then
return left.name > right.name;
elseif left.is_infinite then
return false;
elseif right.is_infinite then
return true;
else
return left.name > right.name;
end
elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then
return left.name > right.name;
elseif left.is_infinite then
return true;
elseif right.is_infinite then
return false;
else
return left.name > right.name;
end
else
return left.name > right.name;
end
end); end);
end end
elseif cached_config.type == "Timer" then elseif cached_config.type == "Timer" then
if cached_config.reversed_order then if cached_config.reversed_order then
table.sort(_displayed_buffs, function(left, right) table.sort(_displayed_buffs, function(left, right)
return left.timer > right.timer;
if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then
return left.name < right.name;
elseif left.is_infinite then
return true;
elseif right.is_infinite then
return false;
else
return left.timer < right.timer;
end
elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then
return left.name < right.name;
elseif left.is_infinite then
return false;
elseif right.is_infinite then
return true;
else
return left.timer < right.timer;
end
else
return left.timer < right.timer;
end
end); end);
else else
table.sort(_displayed_buffs, function(left, right) table.sort(_displayed_buffs, function(left, right)
return left.timer < right.timer;
if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then
return left.name > right.name;
elseif left.is_infinite then
return false;
elseif right.is_infinite then
return true;
else
return left.timer > right.timer;
end
elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then
return left.name > right.name;
elseif left.is_infinite then
return true;
elseif right.is_infinite then
return false;
else
return left.timer > right.timer;
end
else
return left.timer > right.timer;
end
end); end);
end end
else else -- Duration
if cached_config.reversed_order then if cached_config.reversed_order then
table.sort(_displayed_buffs, function(left, right) table.sort(_displayed_buffs, function(left, right)
return left.duration > right.duration;
if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then
return left.name < right.name;
elseif left.is_infinite then
return true;
elseif right.is_infinite then
return false;
else
return left.duration < right.duration;
end
elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then
return left.name < right.name;
elseif left.is_infinite then
return false;
elseif right.is_infinite then
return true;
else
return left.duration < right.duration;
end
else
return left.duration < right.duration;
end
end); end);
else else
table.sort(_displayed_buffs, function(left, right) table.sort(_displayed_buffs, function(left, right)
return left.duration < right.duration;
if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then
return left.name > right.name;
elseif left.is_infinite then
return false;
elseif right.is_infinite then
return true;
else
return left.duration > right.duration;
end
elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then
return left.name > right.name;
elseif left.is_infinite then
return true;
elseif right.is_infinite then
return false;
else
return left.duration > right.duration;
end
else
return left.duration > right.duration;
end
end); end);
end end
end end

View File

@@ -86,7 +86,12 @@ function this.draw()
cached_config.world_offset.z cached_config.world_offset.z
); );
local position_on_screen = draw.world_to_screen(creature.position + world_offset); local position_on_screen;
if cached_config.settings.head_tracking then
position_on_screen = draw.world_to_screen(creature.head_position + world_offset);
else
position_on_screen = draw.world_to_screen(creature.position + world_offset);
end
if position_on_screen == nil then if position_on_screen == nil then
goto continue; goto continue;

View File

@@ -65,7 +65,7 @@ function this.update(dynamic_enabled, static_enabled, highlighted_enabled)
local cached_config = config.current_config.large_monster_UI; local cached_config = config.current_config.large_monster_UI;
if singletons.enemy_manager == nil then if singletons.enemy_manager == nil then
error_handler.report("large_monster_UI.update", "Failed to access Data: enemy_manager"); error_handler.report("large_monster_UI.update", "Failed to Access Data: enemy_manager");
return; return;
end end
@@ -73,7 +73,7 @@ function this.update(dynamic_enabled, static_enabled, highlighted_enabled)
local enemy_count = get_boss_enemy_count_method:call(singletons.enemy_manager); local enemy_count = get_boss_enemy_count_method:call(singletons.enemy_manager);
if enemy_count == nil then if enemy_count == nil then
error_handler.report("large_monster_UI.update", "Failed to access Data: enemy_count"); error_handler.report("large_monster_UI.update", "Failed to Access Data: enemy_count");
return; return;
end end
@@ -81,7 +81,7 @@ function this.update(dynamic_enabled, static_enabled, highlighted_enabled)
for i = 0, enemy_count - 1 do for i = 0, enemy_count - 1 do
local enemy = get_boss_enemy_method:call(singletons.enemy_manager, i); local enemy = get_boss_enemy_method:call(singletons.enemy_manager, i);
if enemy == nil then if enemy == nil then
error_handler.report("large_monster_UI.update", "Failed to access Data: enemy No. " .. tostring(i)); error_handler.report("large_monster_UI.update", "Failed to Access Data: enemy No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -337,7 +337,13 @@ function this.draw_dynamic(cached_config)
local i = 0; local i = 0;
for _, monster in ipairs(displayed_dynamic_monsters) do for _, monster in ipairs(displayed_dynamic_monsters) do
local world_offset = Vector3f.new(cached_config.world_offset.x, cached_config.world_offset.y, cached_config.world_offset.z); local world_offset = Vector3f.new(cached_config.world_offset.x, cached_config.world_offset.y, cached_config.world_offset.z);
local position_on_screen = draw.world_to_screen(monster.position + world_offset);
local position_on_screen;
if cached_config.settings.head_tracking then
position_on_screen = draw.world_to_screen(monster.head_position + world_offset);
else
position_on_screen = draw.world_to_screen(monster.position + world_offset);
end
if position_on_screen == nil then if position_on_screen == nil then
goto continue; goto continue;

View File

@@ -126,7 +126,8 @@ end
function this.draw() function this.draw()
local cached_config = config.current_config.small_monster_UI; local cached_config = config.current_config.small_monster_UI;
local is_dynamic_positioning_enabled = cached_config.dynamic_positioning.enabled; local dynamic_positioning_config = cached_config.dynamic_positioning;
local is_dynamic_positioning_enabled = dynamic_positioning_config.enabled;
local i = 0; local i = 0;
for _, monster in ipairs(displayed_monsters) do for _, monster in ipairs(displayed_monsters) do
@@ -134,19 +135,23 @@ function this.draw()
if is_dynamic_positioning_enabled then if is_dynamic_positioning_enabled then
local world_offset = Vector3f.new( local world_offset = Vector3f.new(
cached_config.dynamic_positioning.world_offset.x, dynamic_positioning_config.world_offset.x,
cached_config.dynamic_positioning.world_offset.y, dynamic_positioning_config.world_offset.y,
cached_config.dynamic_positioning.world_offset.z dynamic_positioning_config.world_offset.z
); );
position_on_screen = draw.world_to_screen(monster.position + world_offset); if dynamic_positioning_config.head_tracking then
position_on_screen = draw.world_to_screen(monster.head_position + world_offset);
else
position_on_screen = draw.world_to_screen(monster.position + world_offset);
end
if position_on_screen == nil then if position_on_screen == nil then
goto continue; goto continue;
end end
position_on_screen.x = position_on_screen.x + cached_config.dynamic_positioning.viewport_offset.x; position_on_screen.x = position_on_screen.x + dynamic_positioning_config.viewport_offset.x;
position_on_screen.y = position_on_screen.y + cached_config.dynamic_positioning.viewport_offset.y; position_on_screen.y = position_on_screen.y + dynamic_positioning_config.viewport_offset.y;
else else
position_on_screen = screen.calculate_absolute_coordinates(cached_config.static_position); position_on_screen = screen.calculate_absolute_coordinates(cached_config.static_position);
if cached_config.settings.orientation == "Horizontal" then if cached_config.settings.orientation == "Horizontal" then
@@ -157,9 +162,9 @@ function this.draw()
end end
local opacity_scale = 1; local opacity_scale = 1;
if is_dynamic_positioning_enabled and cached_config.dynamic_positioning.opacity_falloff then if is_dynamic_positioning_enabled and dynamic_positioning_config.opacity_falloff then
monster.distance = (players.myself_position - monster.position):length(); monster.distance = (players.myself_position - monster.position):length();
opacity_scale = 1 - (monster.distance / cached_config.dynamic_positioning.max_distance); opacity_scale = 1 - (monster.distance / dynamic_positioning_config.max_distance);
end end
small_monster.draw(monster, cached_config, position_on_screen, opacity_scale); small_monster.draw(monster, cached_config, position_on_screen, opacity_scale);

View File

@@ -73,9 +73,13 @@ function this.draw(buff, buff_UI, position_on_screen, opacity_scale)
drawing.draw_bar(buff_UI.bar, position_on_screen, opacity_scale, 1); drawing.draw_bar(buff_UI.bar, position_on_screen, opacity_scale, 1);
end end
local buff_name = buff.name; local buff_name = "";
if cached_config.name_label.include.skill_level and buff.level > 1 then if buff_UI.name_label.include.name then
buff_name = string.format("%s %s%d", buff_name, language.current_language.UI.lv, buff.level); buff_name = string.format("%s ", buff.name);
end
if buff_UI.name_label.include.effect_level and buff.level > 1 then
buff_name = string.format("%s%s%d", buff_name, language.current_language.UI.lv, buff.level);
end end
drawing.draw_label(buff_UI.name_label, position_on_screen, opacity_scale, buff_name); drawing.draw_label(buff_UI.name_label, position_on_screen, opacity_scale, buff_name);

View File

@@ -99,6 +99,9 @@ this.displayed_monster_UI_sorting_types = {};
this.buff_UI_sorting_types = {}; this.buff_UI_sorting_types = {};
this.displayed_buff_UI_sorting_types = {}; this.displayed_buff_UI_sorting_types = {};
this.buff_UI_infinite_buffs_location_types = {};
this.displayed_buff_UI_infinite_buffs_location_types = {};
this.damage_meter_UI_highlighted_entity_types = {}; this.damage_meter_UI_highlighted_entity_types = {};
this.displayed_damage_meter_UI_highlighted_entity_types = {}; this.displayed_damage_meter_UI_highlighted_entity_types = {};
@@ -142,6 +145,8 @@ this.large_monster_highlighted_UI_waiting_for_key = false;
this.time_UI_waiting_for_key = false; this.time_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key = false; this.damage_meter_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key = false; this.endemic_life_UI_waiting_for_key = false;
this.buff_UI_waiting_for_key = false;
this.stats_UI_waiting_for_key = false;
this.menu_font_changed = false; this.menu_font_changed = false;
this.config_name_input = ""; this.config_name_input = "";
@@ -237,6 +242,20 @@ function this.init()
current.duration current.duration
}; };
this.buff_UI_infinite_buffs_location_types =
{
default.normal,
default.first,
default.last
};
this.displayed_buff_UI_infinite_buffs_location_types =
{
current.normal,
current.first,
current.last
};
this.damage_meter_UI_highlighted_entity_types = this.damage_meter_UI_highlighted_entity_types =
{ {
default.top_damage, default.top_damage,
@@ -370,7 +389,9 @@ function this.draw()
local language_changed = false; local language_changed = false;
local modifiers_changed = false; local modifiers_changed = false;
local modules_changed = false; local modules_changed = false;
local hotkeys_changed = false;
local global_settings_changed = false; local global_settings_changed = false;
local timer_delays_changed = false;
local small_monster_UI_changed = false; local small_monster_UI_changed = false;
local large_monster_dynamic_UI_changed = false; local large_monster_dynamic_UI_changed = false;
local large_monster_static_UI_changed = false; local large_monster_static_UI_changed = false;
@@ -404,8 +425,8 @@ function this.draw()
config_changed, apply_font_requested = this.draw_config(); config_changed, apply_font_requested = this.draw_config();
modules_changed = this.draw_modules(); modules_changed = this.draw_modules();
this.draw_hotkeys(); hotkeys_changed = this.draw_hotkeys();
global_settings_changed, modifiers_changed, apply_font_requested, language_changed = this.draw_global_settings(apply_font_requested, config_changed); global_settings_changed, modifiers_changed, timer_delays_changed, apply_font_requested, language_changed = this.draw_global_settings(apply_font_requested, config_changed);
small_monster_UI_changed = this.draw_small_monster_UI(); small_monster_UI_changed = this.draw_small_monster_UI();
if imgui.tree_node(language.current_language.customization_menu.large_monster_UI) then if imgui.tree_node(language.current_language.customization_menu.large_monster_UI) then
@@ -482,21 +503,24 @@ function this.draw()
end end
if buff_UI_changed or modifiers_changed or config_changed then if buff_UI_changed or modifiers_changed or config_changed then
-- for _, buff in pairs(buffs.list) do buffs.init_all_UI();
-- buffs.init_UI(buff); buffs.init_names();
-- end
end end
if stats_UI_changed or modifiers_changed or config_changed then if stats_UI_changed or modifiers_changed or config_changed then
stats_UI.init_UI(); stats_UI.init_UI();
end end
if timer_delays_changed then
time.init_global_timers();
end
if this.menu_font_changed and (apply_font_requested or config_changed) then if this.menu_font_changed and (apply_font_requested or config_changed) then
this.menu_font_changed = false; this.menu_font_changed = false;
this.reload_font(); this.reload_font();
end end
if window_changed or modules_changed or global_settings_changed or small_monster_UI_changed or large_monster_dynamic_UI_changed or if window_changed or modules_changed or hotkeys_changed or global_settings_changed or small_monster_UI_changed or large_monster_dynamic_UI_changed or
large_monster_static_UI_changed or large_monster_highlighted_UI_changed or time_UI_changed or damage_meter_UI_changed or large_monster_static_UI_changed or large_monster_highlighted_UI_changed or time_UI_changed or damage_meter_UI_changed or
endemic_life_UI_changed or buff_UI_changed or stats_UI_changed or modifiers_changed or config_changed or debug_changed then endemic_life_UI_changed or buff_UI_changed or stats_UI_changed or modifiers_changed or config_changed or debug_changed then
config.save_current(); config.save_current();
@@ -632,6 +656,8 @@ function this.draw_modules()
end end
function this.draw_hotkeys() function this.draw_hotkeys()
local config_changed = false;
if imgui.tree_node(language.current_language.customization_menu.hotkeys) then if imgui.tree_node(language.current_language.customization_menu.hotkeys) then
if this.all_UI_waiting_for_key then if this.all_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
@@ -640,25 +666,26 @@ function this.draw_hotkeys()
config.current_config.global_settings.hotkeys_with_modifiers.all_UI.shift = false; config.current_config.global_settings.hotkeys_with_modifiers.all_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.all_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.all_UI.alt = false;
this.all_UI_waiting_for_key = false; this.all_UI_waiting_for_key = false;
config_changed = true;
end end
elseif imgui.button(language.current_language.customization_menu.all_UI) then elseif imgui.button(language.current_language.customization_menu.all_UI) then
local is_any_other_waiting = this.small_monster_UI_waiting_for_key or this.all_UI_waiting_for_key = true;
this.large_monster_UI_waiting_for_key or this.small_monster_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key or this.large_monster_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key or this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key or this.large_monster_static_UI_waiting_for_key = false;
this.time_UI_waiting_for_key or this.large_monster_highlighted_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key or this.time_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key; this.damage_meter_UI_waiting_for_key = false;
if not is_any_other_waiting then this.endemic_life_UI_waiting_for_key = false;
this.all_UI_waiting_for_key = true; this.buff_UI_waiting_for_key = false;
end this.stats_UI_waiting_for_key = false;
end end
imgui.same_line(); imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.all_UI)); imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.all_UI));
if this.small_monster_UI_waiting_for_key then if this.small_monster_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.small_monster_UI.key = 0; config.current_config.global_settings.hotkeys_with_modifiers.small_monster_UI.key = 0;
@@ -666,24 +693,25 @@ function this.draw_hotkeys()
config.current_config.global_settings.hotkeys_with_modifiers.small_monster_UI.shift = false; config.current_config.global_settings.hotkeys_with_modifiers.small_monster_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.small_monster_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.small_monster_UI.alt = false;
this.small_monster_UI_waiting_for_key = false; this.small_monster_UI_waiting_for_key = false;
config_changed = true;
end end
elseif imgui.button(language.current_language.customization_menu.small_monster_UI) then elseif imgui.button(language.current_language.customization_menu.small_monster_UI) then
local is_any_other_waiting = this.all_UI_waiting_for_key or this.all_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key or this.small_monster_UI_waiting_for_key = true;
this.large_monster_dynamic_UI_waiting_for_key or this.large_monster_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key or this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key or this.large_monster_static_UI_waiting_for_key = false;
this.time_UI_waiting_for_key or this.large_monster_highlighted_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key or this.time_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key; this.damage_meter_UI_waiting_for_key = false;
if not is_any_other_waiting then this.endemic_life_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key = true; this.buff_UI_waiting_for_key = false;
end this.stats_UI_waiting_for_key = false;
end end
imgui.same_line(); imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.small_monster_UI)); imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.small_monster_UI));
if this.large_monster_UI_waiting_for_key then if this.large_monster_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_UI.key = 0; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_UI.key = 0;
@@ -691,24 +719,25 @@ function this.draw_hotkeys()
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_UI.shift = false; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_UI.alt = false;
this.large_monster_UI_waiting_for_key = false; this.large_monster_UI_waiting_for_key = false;
config_changed = true;
end end
elseif imgui.button(language.current_language.customization_menu.large_monster_UI) then elseif imgui.button(language.current_language.customization_menu.large_monster_UI) then
local is_any_other_waiting = this.all_UI_waiting_for_key or this.all_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key or this.small_monster_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key or this.large_monster_UI_waiting_for_key = true;
this.large_monster_static_UI_waiting_for_key or this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key or this.large_monster_static_UI_waiting_for_key = false;
this.time_UI_waiting_for_key or this.large_monster_highlighted_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key or this.time_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key; this.damage_meter_UI_waiting_for_key = false;
if not is_any_other_waiting then this.endemic_life_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key = true; this.buff_UI_waiting_for_key = false;
end this.stats_UI_waiting_for_key = false;
end end
imgui.same_line(); imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.large_monster_UI)); imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.large_monster_UI));
if this.large_monster_dynamic_UI_waiting_for_key then if this.large_monster_dynamic_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_dynamic_UI.key = 0; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_dynamic_UI.key = 0;
@@ -716,25 +745,25 @@ function this.draw_hotkeys()
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_dynamic_UI.shift = false; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_dynamic_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_dynamic_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_dynamic_UI.alt = false;
this.large_monster_dynamic_UI_waiting_for_key = false; this.large_monster_dynamic_UI_waiting_for_key = false;
config_changed = true;
end end
elseif imgui.button(language.current_language.customization_menu.large_monster_dynamic_UI) then elseif imgui.button(language.current_language.customization_menu.large_monster_dynamic_UI) then
local is_any_other_waiting = this.all_UI_waiting_for_key or this.all_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key or this.small_monster_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key or this.large_monster_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key or this.large_monster_dynamic_UI_waiting_for_key = true;
this.large_monster_highlighted_UI_waiting_for_key or this.large_monster_static_UI_waiting_for_key = false;
this.time_UI_waiting_for_key or this.large_monster_highlighted_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key or this.time_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key; this.damage_meter_UI_waiting_for_key = false;
if not is_any_other_waiting then this.endemic_life_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key = true; this.buff_UI_waiting_for_key = false;
end this.stats_UI_waiting_for_key = false;
end end
imgui.same_line(); imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.large_monster_dynamic_UI));
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers
.large_monster_dynamic_UI));
if this.large_monster_static_UI_waiting_for_key then if this.large_monster_static_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_static_UI.key = 0; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_static_UI.key = 0;
@@ -742,25 +771,25 @@ function this.draw_hotkeys()
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_static_UI.shift = false; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_static_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_static_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_static_UI.alt = false;
this.large_monster_static_UI_waiting_for_key = false; this.large_monster_static_UI_waiting_for_key = false;
config_changed = true;
end end
elseif imgui.button(language.current_language.customization_menu.large_monster_static_UI) then elseif imgui.button(language.current_language.customization_menu.large_monster_static_UI) then
local is_any_other_waiting = this.all_UI_waiting_for_key or this.all_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key or this.small_monster_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key or this.large_monster_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key or this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key or this.large_monster_static_UI_waiting_for_key = true;
this.time_UI_waiting_for_key or this.large_monster_highlighted_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key or this.time_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key; this.damage_meter_UI_waiting_for_key = false;
if not is_any_other_waiting then this.endemic_life_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key = true; this.buff_UI_waiting_for_key = false;
end this.stats_UI_waiting_for_key = false;
end end
imgui.same_line(); imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.large_monster_static_UI));
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers
.large_monster_static_UI));
if this.large_monster_highlighted_UI_waiting_for_key then if this.large_monster_highlighted_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_highlighted_UI.key = 0; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_highlighted_UI.key = 0;
@@ -768,23 +797,25 @@ function this.draw_hotkeys()
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_highlighted_UI.shift = false; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_highlighted_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.large_monster_highlighted_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.large_monster_highlighted_UI.alt = false;
this.large_monster_highlighted_UI_waiting_for_key = false; this.large_monster_highlighted_UI_waiting_for_key = false;
config_changed = true;
end end
elseif imgui.button(language.current_language.customization_menu.large_monster_highlighted_UI) then elseif imgui.button(language.current_language.customization_menu.large_monster_highlighted_UI) then
local is_any_other_waiting = this.all_UI_waiting_for_key or this.all_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key or this.small_monster_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key or this.large_monster_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key or this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key or this.large_monster_static_UI_waiting_for_key = false;
this.time_UI_waiting_for_key or this.large_monster_highlighted_UI_waiting_for_key = true;
this.damage_meter_UI_waiting_for_key or this.time_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key; this.damage_meter_UI_waiting_for_key = false;
if not is_any_other_waiting then this.endemic_life_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key = true; this.buff_UI_waiting_for_key = false;
end this.stats_UI_waiting_for_key = false;
end end
imgui.same_line(); imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.large_monster_highlighted_UI));
.large_monster_highlighted_UI));
if this.time_UI_waiting_for_key then if this.time_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.time_UI.key = 0; config.current_config.global_settings.hotkeys_with_modifiers.time_UI.key = 0;
@@ -792,24 +823,25 @@ function this.draw_hotkeys()
config.current_config.global_settings.hotkeys_with_modifiers.time_UI.shift = false; config.current_config.global_settings.hotkeys_with_modifiers.time_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.time_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.time_UI.alt = false;
this.time_UI_waiting_for_key = false; this.time_UI_waiting_for_key = false;
config_changed = true;
end end
elseif imgui.button(language.current_language.customization_menu.time_UI) then elseif imgui.button(language.current_language.customization_menu.time_UI) then
local is_any_other_waiting = this.all_UI_waiting_for_key or this.all_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key or this.small_monster_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key or this.large_monster_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key or this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key or this.large_monster_static_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key or this.large_monster_highlighted_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key or this.time_UI_waiting_for_key = true;
this.endemic_life_UI_waiting_for_key; this.damage_meter_UI_waiting_for_key = false;
if not is_any_other_waiting then this.endemic_life_UI_waiting_for_key = false;
this.time_UI_waiting_for_key = true; this.buff_UI_waiting_for_key = false;
end this.stats_UI_waiting_for_key = false;
end end
imgui.same_line(); imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.time_UI)); imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.time_UI));
if this.damage_meter_UI_waiting_for_key then if this.damage_meter_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.damage_meter_UI.key = 0; config.current_config.global_settings.hotkeys_with_modifiers.damage_meter_UI.key = 0;
@@ -817,24 +849,25 @@ function this.draw_hotkeys()
config.current_config.global_settings.hotkeys_with_modifiers.damage_meter_UI.shift = false; config.current_config.global_settings.hotkeys_with_modifiers.damage_meter_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.damage_meter_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.damage_meter_UI.alt = false;
this.damage_meter_UI_waiting_for_key = false; this.damage_meter_UI_waiting_for_key = false;
config_changed = true;
end end
elseif imgui.button(language.current_language.customization_menu.damage_meter_UI) then elseif imgui.button(language.current_language.customization_menu.damage_meter_UI) then
local is_any_other_waiting = this.all_UI_waiting_for_key or this.all_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key or this.small_monster_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key or this.large_monster_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key or this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key or this.large_monster_static_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key or this.large_monster_highlighted_UI_waiting_for_key = false;
this.time_UI_waiting_for_key or this.time_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key; this.damage_meter_UI_waiting_for_key = true;
if not is_any_other_waiting then this.endemic_life_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key = true; this.buff_UI_waiting_for_key = false;
end this.stats_UI_waiting_for_key = false;
end end
imgui.same_line(); imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.damage_meter_UI)); imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.damage_meter_UI));
if this.endemic_life_UI_waiting_for_key then if this.endemic_life_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI.key = 0; config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI.key = 0;
@@ -842,32 +875,88 @@ function this.draw_hotkeys()
config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI.shift = false; config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI.alt = false;
this.endemic_life_UI_waiting_for_key = false; this.endemic_life_UI_waiting_for_key = false;
config_changed = true;
end end
elseif imgui.button(language.current_language.customization_menu.endemic_life_UI) then elseif imgui.button(language.current_language.customization_menu.endemic_life_UI) then
local is_any_other_waiting = this.all_UI_waiting_for_key or this.all_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key or this.small_monster_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key or this.large_monster_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key or this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key or this.large_monster_static_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key or this.large_monster_highlighted_UI_waiting_for_key = false;
this.time_UI_waiting_for_key or this.time_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key; this.damage_meter_UI_waiting_for_key = false;
if not is_any_other_waiting then this.endemic_life_UI_waiting_for_key = true;
this.endemic_life_UI_waiting_for_key = true; this.buff_UI_waiting_for_key = false;
end this.stats_UI_waiting_for_key = false;
end end
imgui.same_line(); imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI)); imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI));
if this.buff_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.buff_UI.key = 0;
config.current_config.global_settings.hotkeys_with_modifiers.buff_UI.ctrl = false;
config.current_config.global_settings.hotkeys_with_modifiers.buff_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.buff_UI.alt = false;
this.buff_UI_waiting_for_key = false;
config_changed = true;
end
elseif imgui.button(language.current_language.customization_menu.buff_UI) then
this.all_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key = false;
this.time_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key = false;
this.buff_UI_waiting_for_key = true;
this.stats_UI_waiting_for_key = false;
end
imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.buff_UI));
if this.stats_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then
config.current_config.global_settings.hotkeys_with_modifiers.stats_UI.key = 0;
config.current_config.global_settings.hotkeys_with_modifiers.stats_UI.ctrl = false;
config.current_config.global_settings.hotkeys_with_modifiers.stats_UI.shift = false;
config.current_config.global_settings.hotkeys_with_modifiers.stats_UI.alt = false;
this.stats_UI_waiting_for_key = false;
config_changed = true;
end
elseif imgui.button(language.current_language.customization_menu.stats_UI) then
this.all_UI_waiting_for_key = false;
this.small_monster_UI_waiting_for_key = false;
this.large_monster_UI_waiting_for_key = false;
this.large_monster_dynamic_UI_waiting_for_key = false;
this.large_monster_static_UI_waiting_for_key = false;
this.large_monster_highlighted_UI_waiting_for_key = false;
this.time_UI_waiting_for_key = false;
this.damage_meter_UI_waiting_for_key = false;
this.endemic_life_UI_waiting_for_key = false;
this.buff_UI_waiting_for_key = false;
this.stats_UI_waiting_for_key = true;
end
imgui.same_line();
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.stats_UI));
imgui.tree_pop(); imgui.tree_pop();
end end
return config_changed;
end end
function this.draw_global_settings(apply_font_requested, language_changed) function this.draw_global_settings(apply_font_requested, language_changed)
local changed = false; local changed = false;
local config_changed = false; local config_changed = false;
local modifiers_changed = false; local modifiers_changed = false;
local timer_delays_changed = false;
local index = 1; local index = 1;
@@ -1007,6 +1096,67 @@ function this.draw_global_settings(apply_font_requested, language_changed)
config_changed = config_changed or changed; config_changed = config_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.timer_delays) then
changed, cached_config.performance.timer_delays.update_singletons_delay = imgui.drag_float(
language.current_language.customization_menu.update_singletons_delay,
cached_config.performance.timer_delays.update_singletons_delay, 0.001, 0.001, screen.width, "%.3f");
config_changed = config_changed or changed;
timer_delays_changed = timer_delays_changed or changed;
changed, cached_config.performance.timer_delays.update_window_size_delay = imgui.drag_float(
language.current_language.customization_menu.update_window_size_delay,
cached_config.performance.timer_delays.update_window_size_delay, 0.001, 0.001, screen.width, "%.3f");
config_changed = config_changed or changed;
timer_delays_changed = timer_delays_changed or changed;
changed, cached_config.performance.timer_delays.update_quest_time_delay = imgui.drag_float(
language.current_language.customization_menu.update_quest_time_delay,
cached_config.performance.timer_delays.update_quest_time_delay, 0.001, 0.001, screen.width, "%.3f");
config_changed = config_changed or changed;
timer_delays_changed = timer_delays_changed or changed;
changed, cached_config.performance.timer_delays.update_is_online_delay = imgui.drag_float(
language.current_language.customization_menu.update_is_online_delay,
cached_config.performance.timer_delays.update_is_online_delay, 0.001, 0.001, screen.width, "%.3f");
config_changed = config_changed or changed;
timer_delays_changed = timer_delays_changed or changed;
changed, cached_config.performance.timer_delays.update_players_delay = imgui.drag_float(
language.current_language.customization_menu.update_players_delay,
cached_config.performance.timer_delays.update_players_delay, 0.001, 0.001, screen.width, "%.3f");
config_changed = config_changed or changed;
timer_delays_changed = timer_delays_changed or changed;
changed, cached_config.performance.timer_delays.update_myself_position_delay = imgui.drag_float(
language.current_language.customization_menu.update_myself_position_delay,
cached_config.performance.timer_delays.update_myself_position_delay, 0.001, 0.001, screen.width, "%.3f");
config_changed = config_changed or changed;
timer_delays_changed = timer_delays_changed or changed;
changed, cached_config.performance.timer_delays.update_player_info_delay = imgui.drag_float(
language.current_language.customization_menu.update_player_info_delay,
cached_config.performance.timer_delays.update_player_info_delay, 0.001, 0.001, screen.width, "%.3f");
config_changed = config_changed or changed;
timer_delays_changed = timer_delays_changed or changed;
changed, cached_config.performance.timer_delays.update_buffs_delay = imgui.drag_float(
language.current_language.customization_menu.update_buffs_delay,
cached_config.performance.timer_delays.update_buffs_delay, 0.001, 0.001, screen.width, "%.3f");
config_changed = config_changed or changed;
timer_delays_changed = timer_delays_changed or changed;
imgui.tree_pop();
end
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -1146,7 +1296,7 @@ function this.draw_global_settings(apply_font_requested, language_changed)
imgui.tree_pop(); imgui.tree_pop();
end end
return config_changed, modifiers_changed, apply_font_requested, language_changed; return config_changed, modifiers_changed, timer_delays_changed, apply_font_requested, language_changed;
end end
function this.draw_small_monster_UI() function this.draw_small_monster_UI()
@@ -1188,6 +1338,11 @@ function this.draw_small_monster_UI()
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, cached_config.dynamic_positioning.head_tracking = imgui.checkbox(
language.current_language.customization_menu.head_tracking, cached_config.dynamic_positioning.head_tracking);
config_changed = config_changed or changed;
changed, cached_config.dynamic_positioning.opacity_falloff = changed, cached_config.dynamic_positioning.opacity_falloff =
imgui.checkbox(language.current_language.customization_menu.opacity_falloff, imgui.checkbox(language.current_language.customization_menu.opacity_falloff,
cached_config.dynamic_positioning.opacity_falloff); cached_config.dynamic_positioning.opacity_falloff);
@@ -1297,9 +1452,7 @@ function this.draw_small_monster_UI()
imgui.tree_pop(); imgui.tree_pop();
end end
changed = label_customization.draw(language.current_language.customization_menu.monster_name_label, changed = label_customization.draw(language.current_language.customization_menu.monster_name_label, cached_config.monster_name_label);
cached_config.monster_name_label);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed = health_customization.draw(cached_config.health); changed = health_customization.draw(cached_config.health);
@@ -1326,12 +1479,16 @@ function this.draw_large_monster_dynamic_UI()
if imgui.tree_node(language.current_language.customization_menu.dynamically_positioned) then if imgui.tree_node(language.current_language.customization_menu.dynamically_positioned) then
local cached_config = config.current_config.large_monster_UI.dynamic; local cached_config = config.current_config.large_monster_UI.dynamic;
changed, cached_config.enabled = imgui.checkbox( changed, cached_config.enabled = imgui.checkbox(language.current_language.customization_menu.enabled, cached_config.enabled);
language.current_language.customization_menu.enabled, cached_config.enabled);
config_changed = config_changed or changed; config_changed = config_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.settings) then if imgui.tree_node(language.current_language.customization_menu.settings) then
changed, cached_config.settings.head_tracking = imgui.checkbox(
language.current_language.customization_menu.head_tracking, cached_config.settings.head_tracking);
config_changed = config_changed or changed;
changed, cached_config.settings.hide_dead_or_captured = imgui.checkbox( changed, cached_config.settings.hide_dead_or_captured = imgui.checkbox(
language.current_language.customization_menu.hide_dead_or_captured, cached_config.settings.hide_dead_or_captured); language.current_language.customization_menu.hide_dead_or_captured, cached_config.settings.hide_dead_or_captured);
@@ -2153,6 +2310,11 @@ function this.draw_endemic_life_UI()
config_changed = config_changed or changed; config_changed = config_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.settings) then if imgui.tree_node(language.current_language.customization_menu.settings) then
changed, cached_config.settings.head_tracking = imgui.checkbox(
language.current_language.customization_menu.head_tracking, cached_config.settings.head_tracking);
config_changed = config_changed or changed;
changed, cached_config.settings.hide_inactive_creatures = imgui.checkbox( changed, cached_config.settings.hide_inactive_creatures = imgui.checkbox(
language.current_language.customization_menu.hide_inactive_creatures, cached_config.settings.hide_inactive_creatures); language.current_language.customization_menu.hide_inactive_creatures, cached_config.settings.hide_inactive_creatures);
@@ -2250,6 +2412,17 @@ function this.draw_buff_UI()
cached_config.settings.orientation = this.orientation_types[index]; cached_config.settings.orientation = this.orientation_types[index];
end end
changed, index = imgui.combo(
language.current_language.customization_menu.infinite_buffs_location,
utils.table.find_index(this.buff_UI_infinite_buffs_location_types, cached_config.settings.infinite_buffs_location),
this.displayed_buff_UI_infinite_buffs_location_types);
config_changed = config_changed or changed;
if changed then
cached_config.settings.infinite_buffs_location = this.buff_UI_infinite_buffs_location_types[index];
end
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -2313,10 +2486,6 @@ function this.draw_buff_UI()
end end
if imgui.tree_node(language.current_language.customization_menu.filter) then if imgui.tree_node(language.current_language.customization_menu.filter) then
-- weapon_skills = "Weapon Skills",
-- otomo_moves = "Buddy Moves",
-- misc_buffs = "Misc Buffs",
if imgui.tree_node(language.current_language.customization_menu.abnormal_statuses) then if imgui.tree_node(language.current_language.customization_menu.abnormal_statuses) then
@@ -2332,10 +2501,10 @@ function this.draw_buff_UI()
if imgui.tree_node(language.current_language.customization_menu.item_buffs) then if imgui.tree_node(language.current_language.customization_menu.item_buffs) then
for _, key in ipairs(item_buffs.keys) do local cached_language = language.current_language.item_buffs;
changed, cached_config.filter.item_buffs[key] = imgui.checkbox(
item_buffs.get_item_buff_name(key), cached_config.filter.item_buffs[key]);
for _, key in ipairs(item_buffs.keys) do
changed, cached_config.filter.item_buffs[key] = imgui.checkbox(cached_language[key], cached_config.filter.item_buffs[key]);
config_changed = config_changed or changed; config_changed = config_changed or changed;
end end
@@ -2343,11 +2512,11 @@ function this.draw_buff_UI()
end end
if imgui.tree_node(language.current_language.customization_menu.endemic_life_buffs) then if imgui.tree_node(language.current_language.customization_menu.endemic_life_buffs) then
for _, key in ipairs(endemic_life_buffs.keys) do local cached_language = language.current_language.endemic_life;
changed, cached_config.filter.endemic_life_buffs[key] = imgui.checkbox(
endemic_life_buffs.get_endemic_life_name(key), cached_config.filter.endemic_life_buffs[key]);
for _, key in ipairs(endemic_life_buffs.keys) do
changed, cached_config.filter.endemic_life_buffs[key] = imgui.checkbox(cached_language[key], cached_config.filter.endemic_life_buffs[key]);
config_changed = config_changed or changed; config_changed = config_changed or changed;
end end
@@ -2356,14 +2525,15 @@ function this.draw_buff_UI()
if imgui.tree_node(language.current_language.customization_menu.melody_effects) then if imgui.tree_node(language.current_language.customization_menu.melody_effects) then
local cached_language = language.current_language.melody_effects;
for lua_index, key in ipairs(melody_effects.keys) do for lua_index, key in ipairs(melody_effects.keys) do
-- Health Recovery (S), Health Recovery (L), Health Recovery (S) + (Antidote), Sonic Wave
if (lua_index >= 16 and lua_index <= 18) or lua_index == 24 then if (lua_index >= 16 and lua_index <= 18) or lua_index == 24 then
goto continue; goto continue;
end end
changed, cached_config.filter.melody_effects[key] = imgui.checkbox( changed, cached_config.filter.melody_effects[key] = imgui.checkbox(cached_language[key], cached_config.filter.melody_effects[key]);
melody_effects.get_melody_effect_name(lua_index - 1), cached_config.filter.melody_effects[key]);
config_changed = config_changed or changed; config_changed = config_changed or changed;
::continue:: ::continue::
@@ -2374,10 +2544,10 @@ function this.draw_buff_UI()
if imgui.tree_node(language.current_language.customization_menu.dango_skills) then if imgui.tree_node(language.current_language.customization_menu.dango_skills) then
for _, key in ipairs(dango_skills.keys) do local cached_language = language.current_language.dango_skills;
changed, cached_config.filter.dango_skills[key] = imgui.checkbox(
dango_skills.get_dango_skill_name(key), cached_config.filter.dango_skills[key]);
for _, key in ipairs(dango_skills.keys) do
changed, cached_config.filter.dango_skills[key] = imgui.checkbox(cached_language[key], cached_config.filter.dango_skills[key]);
config_changed = config_changed or changed; config_changed = config_changed or changed;
end end
@@ -2386,9 +2556,10 @@ function this.draw_buff_UI()
if imgui.tree_node(language.current_language.customization_menu.rampage_skills) then if imgui.tree_node(language.current_language.customization_menu.rampage_skills) then
local cached_language = language.current_language.rampage_skills;
for _, key in ipairs(rampage_skills.keys) do for _, key in ipairs(rampage_skills.keys) do
changed, cached_config.filter.rampage_skills[key] = imgui.checkbox( changed, cached_config.filter.rampage_skills[key] = imgui.checkbox(cached_language[key], cached_config.filter.rampage_skills[key]);
rampage_skills.get_rampage_skill_name(key), cached_config.filter.rampage_skills[key]);
config_changed = config_changed or changed; config_changed = config_changed or changed;
end end
@@ -2398,10 +2569,10 @@ function this.draw_buff_UI()
if imgui.tree_node(language.current_language.customization_menu.skills) then if imgui.tree_node(language.current_language.customization_menu.skills) then
for _, key in ipairs(skills.keys) do local cached_language = language.current_language.skills;
changed, cached_config.filter.skills[key] = imgui.checkbox(
skills.get_skill_name(key), cached_config.filter.skills[key]);
for _, key in ipairs(skills.keys) do
changed, cached_config.filter.skills[key] = imgui.checkbox(cached_language[key], cached_config.filter.skills[key]);
config_changed = config_changed or changed; config_changed = config_changed or changed;
end end
@@ -2411,17 +2582,17 @@ function this.draw_buff_UI()
if imgui.tree_node(language.current_language.customization_menu.weapon_skills) then if imgui.tree_node(language.current_language.customization_menu.weapon_skills) then
for _, weapon in ipairs(weapon_skills.keys) do for _, weapon in ipairs(weapon_skills.keys) do
if imgui.tree_node(language.current_language.weapons[weapon.key]) then if imgui.tree_node(language.current_language.weapons[weapon.key]) then
local cached_weapon_filter = cached_config.filter.weapon_skills[weapon.key]; local cached_weapon_filter = cached_config.filter.weapon_skills[weapon.key];
local cached_language = language.current_language.weapon_skills[weapon.key];
for _, key in ipairs(weapon.skill_keys) do for _, key in ipairs(weapon.skill_keys) do
local name = weapon_skills.get_weapon_skill_name(key); local name = cached_language[key];
if key == "spirit_gauge_autofill" then if key == "spirit_gauge_autofill" then
local soaring_kick_name = weapon_skills.get_weapon_skill_name("soaring_kick"); local soaring_kick_name = tostring(cached_language.soaring_kick);
local iai_slash_name = weapon_skills.get_weapon_skill_name("iai_slash"); local iai_slash_name = tostring(cached_language.iai_slash);
name = string.format("%s (%s, %s)", name, soaring_kick_name, iai_slash_name); name = string.format("%s (%s, %s)", name, soaring_kick_name, iai_slash_name);
end end
@@ -2440,10 +2611,10 @@ function this.draw_buff_UI()
if imgui.tree_node(language.current_language.customization_menu.otomo_moves) then if imgui.tree_node(language.current_language.customization_menu.otomo_moves) then
for _, key in ipairs(otomo_moves.keys) do local cached_language = language.current_language.otomo_moves;
changed, cached_config.filter.otomo_moves[key] = imgui.checkbox(
otomo_moves.get_otomo_move_name(key), cached_config.filter.otomo_moves[key]);
for _, key in ipairs(otomo_moves.keys) do
changed, cached_config.filter.otomo_moves[key] = imgui.checkbox(cached_language[key], cached_config.filter.otomo_moves[key]);
config_changed = config_changed or changed; config_changed = config_changed or changed;
end end
@@ -2452,39 +2623,40 @@ function this.draw_buff_UI()
if imgui.tree_node(language.current_language.customization_menu.misc_buffs) then if imgui.tree_node(language.current_language.customization_menu.misc_buffs) then
local cached_language = language.current_language.misc_buffs;
for _, key in ipairs(misc_buffs.keys) do for _, key in ipairs(misc_buffs.keys) do
local name = misc_buffs.get_misc_buff_name(key); local name = cached_language[key];
if key == "attack_up" then if key == "attack_up" then
local might_seed_name = item_buffs.get_item_buff_name("might_seed"); local might_seed_name = tostring(language.current_language.item_buffs.might_seed);
local dango_bulker_name = dango_skills.get_dango_skill_name("dango_bulker"); local dango_bulker_name = tostring(language.current_language.dango_skills.dango_bulker);
local chameleos_soul_name = rampage_skills.get_rampage_skill_name("chameleos_soul"); local chameleos_soul_name = tostring(language.current_language.rampage_skills.chameleos_soul);
name = string.format("%s (%s, %s, %s)", name, might_seed_name, dango_bulker_name, chameleos_soul_name); name = string.format("%s (%s, %s, %s)", name, might_seed_name, dango_bulker_name, chameleos_soul_name);
elseif key == "defense_up" then elseif key == "defense_up" then
local adamant_seed_name = item_buffs.get_item_buff_name("adamant_seed"); local adamant_seed_name = tostring(language.current_language.item_buffs.adamant_seed);
local chameleos_soul_name = rampage_skills.get_rampage_skill_name("chameleos_soul"); local chameleos_soul_name = tostring(language.current_language.rampage_skills.chameleos_soul);
name = string.format("%s (%s, %s)", name, adamant_seed_name, chameleos_soul_name); name = string.format("%s (%s, %s)", name, adamant_seed_name, chameleos_soul_name);
elseif key == "stamina_use_down" then elseif key == "stamina_use_down" then
local dash_juice_name = item_buffs.get_item_buff_name("dash_juice"); local dash_juice_name = tostring(language.current_language.item_buffs.dash_juice);
local peepersects_name = endemic_life_buffs.get_endemic_life_name("peepersects"); local peepersects_name = tostring(language.current_language.endemic_life.peepersects);
local chameleos_soul_name = rampage_skills.get_rampage_skill_name("chameleos_soul"); local chameleos_soul_name = tostring(language.current_language.rampage_skills.chameleos_soul);
name = string.format("%s (%s, %s, %s)", name, dash_juice_name, peepersects_name, chameleos_soul_name); name = string.format("%s (%s, %s, %s)", name, dash_juice_name, peepersects_name, chameleos_soul_name);
elseif key == "natural_healing_up" then elseif key == "natural_healing_up" then
local immunizer_name = item_buffs.get_item_buff_name("immunizer"); local immunizer_name = tostring(language.current_language.item_buffs.immunizer);
local vase_of_vitality_name = otomo_moves.get_otomo_move_name("vase_of_vitality"); local vase_of_vitality_name = tostring(language.current_language.otomo_moves.vase_of_vitality);
name = string.format("%s (%s, %s)", name, immunizer_name, vase_of_vitality_name); name = string.format("%s (%s, %s)", name, immunizer_name, vase_of_vitality_name);
end end
changed, cached_config.filter.misc_buffs[key] = imgui.checkbox( changed, cached_config.filter.misc_buffs[key] = imgui.checkbox(name, cached_config.filter.misc_buffs[key]);
name, cached_config.filter.misc_buffs[key]);
config_changed = config_changed or changed; config_changed = config_changed or changed;
end end
@@ -2492,18 +2664,148 @@ function this.draw_buff_UI()
imgui.tree_pop(); imgui.tree_pop();
end end
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.abnormal_statuses) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.abnormal_statuses.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.abnormal_statuses.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.abnormal_statuses.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.item_buffs) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.item_buffs.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.item_buffs.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.item_buffs.bar);
config_changed = config_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.name_label); if imgui.tree_node(language.current_language.customization_menu.endemic_life_buffs) then
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.endemic_life_buffs.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.timer_label); changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.endemic_life_buffs.timer_label);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.bar); changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.endemic_life_buffs.bar);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.melody_effects) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.melody_effects.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.melody_effects.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.melody_effects.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.dango_skills) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.dango_skills.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.dango_skills.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.dango_skills.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.rampage_skills) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.rampage_skills.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.rampage_skills.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.rampage_skills.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.skills) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.skills.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.skills.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.skills.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.weapon_skills) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.weapon_skills.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.weapon_skills.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.weapon_skills.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.otomo_moves) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.otomo_moves.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.otomo_moves.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.otomo_moves.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.misc_buffs) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.misc_buffs.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.misc_buffs.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.misc_buffs.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
imgui.tree_pop(); imgui.tree_pop();
end end

View File

@@ -141,6 +141,7 @@
"duration": "Duration", "duration": "Duration",
"dynamic_positioning": "Dynamic Positioning", "dynamic_positioning": "Dynamic Positioning",
"dynamically_positioned": "Dynamically Positioned", "dynamically_positioned": "Dynamically Positioned",
"effect_level": "Effect Level",
"element_2_label": "Element 2 Label", "element_2_label": "Element 2 Label",
"element_label": "Element Label", "element_label": "Element Label",
"enable_for": "Enable for", "enable_for": "Enable for",
@@ -164,6 +165,7 @@
"global_position_modifier": "Global Position Modifier", "global_position_modifier": "Global Position Modifier",
"global_scale_modifier": "Global Scale Modifier", "global_scale_modifier": "Global Scale Modifier",
"global_settings": "Global Settings", "global_settings": "Global Settings",
"head_tracking": "Head Tracking",
"health": "Health", "health": "Health",
"health_anomaly_filter": "Health + Anomaly Core", "health_anomaly_filter": "Health + Anomaly Core",
"health_break_anomaly_filter": "Health + Break + Anomaly Core", "health_break_anomaly_filter": "Health + Break + Anomaly Core",
@@ -211,6 +213,7 @@
"in_lobby": "In Lobby", "in_lobby": "In Lobby",
"in_training_area": "In Training Area", "in_training_area": "In Training Area",
"include": "Include", "include": "Include",
"infinite_buffs_location": "Infinite Buffs Location",
"inside": "Inside", "inside": "Inside",
"installations": "Installations", "installations": "Installations",
"italic": "Italic", "italic": "Italic",
@@ -337,6 +340,7 @@
"time_label": "Time Label", "time_label": "Time Label",
"time_limit": "Time Limit (seconds)", "time_limit": "Time Limit (seconds)",
"timer": "Timer", "timer": "Timer",
"timer_delays": "Timer Delays",
"timer_label": "Timer Label", "timer_label": "Timer Label",
"top_buildup": "Top Buildup", "top_buildup": "Top Buildup",
"top_damage": "Top Damage", "top_damage": "Top Damage",
@@ -359,6 +363,14 @@
"tracked_damage_types": "Tracked Damage Types", "tracked_damage_types": "Tracked Damage Types",
"tracked_monster_types": "Tracked Monster Types", "tracked_monster_types": "Tracked Monster Types",
"type": "Type", "type": "Type",
"update_buffs_delay": "Update Buffs (seconds)",
"update_is_online_delay": "Update Is Online (seconds)",
"update_myself_position_delay": "Update Myself Position (seconds)",
"update_player_info_delay": "Update Player Info (seconds)",
"update_players_delay": "Update Players (seconds)",
"update_quest_time_delay": "Update Quest Time (seconds)",
"update_singletons_delay": "Update Singletons (seconds)",
"update_window_size_delay": "Update Window Size (seconds)",
"use_d2d_if_available": "Use Direct2D if available", "use_d2d_if_available": "Use Direct2D if available",
"value": "Value", "value": "Value",
"value_label": "Value Label", "value_label": "Value Label",
@@ -375,9 +387,75 @@
"z": "Z" "z": "Z"
}, },
"dango_skills": { "dango_skills": {
"dango_insurance_defense_up": "Dango Insurance Defense Up" "dango_adrenaline": "Dango Adrenaline",
"dango_booster": "Dango Booster",
"dango_bulker": "Dango Bulker",
"dango_connector": "Dango Connector",
"dango_defender": "Dango Defender",
"dango_flyer": "Dango Flyer",
"dango_glutton": "Dango Glutton",
"dango_hunter": "Dango Hunter",
"dango_insurance": "Dango Insurance",
"dango_insurance_defense_up": "Dango Insurance Defense Up",
"super_recovery_dango": "Super Recovery Dango"
},
"endemic_life": {
"butterflame": "Butterflame",
"clothfly": "Clothfly",
"cutterfly": "Cutterfly",
"gold_wirebug": "Gold Wirebug",
"peepersects": "Peepersects",
"red_lampsquid": "Red Lampsquid",
"ruby_wirebug": "Ruby Wirebug",
"stinkmink": "Stinkmink",
"yellow_lampsquid": "Yellow Lampsquid"
},
"font_name": "NotoSans-Bold.otf",
"item_buffs": {
"adamant_seed": "Adamant Seed",
"armor_ammo": "Armor Ammo",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_ammo": "Demon Ammo",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
},
"melody_effects": {
"affinity_up": "Affinity Up",
"attack_and_affinity_up": "Attack and Affinity Up",
"attack_and_defense_up": "Attack and Defense Up",
"attack_up": "Attack Up",
"blight_negated": "Blight Negated",
"defense_up": "Defense Up",
"divine_protection": "Divine Protection",
"earplugs_l": "Earplugs (L)",
"earplugs_s": "Earplugs (S)",
"elemental_attack_boost": "Elemental Attack Boost",
"environment_damage_negated": "Environment Damage Negated",
"health_recovery_l": "Health Recovery (L)",
"health_recovery_s": "Health Recovery (S)",
"health_recovery_s_antidote": "Health Recovery (S) + Antidote",
"health_regeneration": "Health Regeneration",
"infernal_melody": "Infernal Melody",
"knockbacks_negated": "Knockbacks Negated",
"self_improvement": "Self-Improvement",
"sharpness_extension": "Sharpness Extension",
"sharpness_loss_reduced": "Sharpness Loss Reduced",
"sharpness_regeneration": "Sharpness Regeneration",
"sonic_barrier": "Sonic Barrier",
"sonic_wave": "Sonic Wave",
"stamina_recovery_up": "Stamina Recovery Up",
"stamina_use_reduced": "Stamina Use Reduced",
"stun_negated": "Stun Negated",
"tremors_negated": "Tremors Negated",
"wind_pressure_negated": "Wind Pressure Negated"
}, },
"font_name": "NotoSansCJKsc-VF",
"misc_buffs": { "misc_buffs": {
"attack_up": "Attack Up", "attack_up": "Attack Up",
"defense_up": "Defense Up", "defense_up": "Defense Up",
@@ -385,6 +463,12 @@
"natural_healing_up": "Natural Healing Up", "natural_healing_up": "Natural Healing Up",
"stamina_use_down": "Stamina Use Down" "stamina_use_down": "Stamina Use Down"
}, },
"otomo_moves": {
"go_fight_win": "Go, Fight, Win",
"power_drum": "Power Drum",
"rousing_roar": "Rousing Roar",
"vase_of_vitality": "Vase of Vitality"
},
"parts": { "parts": {
"abdomen": "Abdomen", "abdomen": "Abdomen",
"amatsu_unknown": "?", "amatsu_unknown": "?",
@@ -454,11 +538,49 @@
"wingclaws": "Wingclaws", "wingclaws": "Wingclaws",
"wings": "Wings" "wings": "Wings"
}, },
"rampage_skills": {
"chameleos_soul": "Chameleos Soul",
"kushala_daora_soul": "Kushala Daora Soul"
},
"skills": { "skills": {
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Atk Up", "adrenaline_rush": "Adrenaline Rush",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res Up", "affinity_sliding": "Affinity Sliding",
"agitator": "Agitator",
"berserk": "Berserk",
"bladescale_hone": "Bladescale Hone",
"blood_awakening": "Blood Awakening",
"bloodlust": "Bloodlust",
"burst": "Burst",
"coalescence": "Coalescence",
"counterstrike": "Counterstrike",
"dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion: Elem. Atk Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion: Elem. Res Up",
"dragonheart": "Dragonheart",
"embolden": "Embolden",
"frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious",
"grinder_s": "Grinder (S)",
"heaven_sent": "Heaven-Sent",
"hellfire_cloak": "Hellfire Cloak",
"heroics": "Heroics",
"inspiration": "Inspiration",
"intrepid_heart": "Intrepid Heart",
"latent_power": "Latent Power",
"maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard",
"partbreaker": "Partbreaker",
"peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)", "powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)" "powder_mantle_red": "Powder Mantle (Red)",
"protective_polish": "Protective Polish",
"resentment": "Resentment",
"resuscitate": "Resuscitate",
"spiribirds_call": "Spiribird's Call",
"status_trigger": "Status Trigger",
"strife": "Strife",
"wall_runner": "Wall Runner",
"wind_mantle": "Wind Mantle"
}, },
"stats": { "stats": {
"affinity": "Affinity", "affinity": "Affinity",
@@ -480,50 +602,84 @@
32, 32,
255, 255,
256, 256,
383, 591,
1024, 1024,
1327, 1327,
4352, 7680,
4607, 7935,
8192, 8192,
8303, 8303,
12288,
12543,
12592,
12687,
12784,
12799,
19968,
40879,
44032,
55215,
65280, 65280,
65519, 65519,
0 0
], ],
"weapon_skills": { "weapon_skills": {
"all_extracts_mix": "All Extracts Mix", "bow": {
"amped_state": "Amped State", "arc_shot_affinity": "Arc Shot: Affinity",
"arc_shot_affinity": "Arc Shot: Affinity", "arc_shot_brace": "Arc Shot: Brace",
"arc_shot_brace": "Arc Shot: Brace", "bolt_boost": "Bolt Boost",
"archdemon_mode": "Archdemon Mode", "herculean_draw": "Herculean Draw"
"axe_heavy_slam": "Axe: Heavy Slam", },
"element_boost": "Element Boost", "charge_blade": {
"herculean_draw": "Herculean Draw", "element_boost": "Element Boost",
"iai_slash": "Iai Slash", "sword_boost_mode": "Sword Boost Mode"
"ironshine_silk": "Ironshine Silk", },
"orange_extract": "Orange Extract", "dual_blades": {
"overheat": "Overheat", "archdemon_mode": "Archdemon Mode",
"power_sheathe": "Power Sheathe", "ironshine_silk": "Ironshine Silk"
"red_extract": "Red Extract", },
"spirit_gauge": "Spirit Gauge", "great_sword": {
"spirit_gauge_autofill": "Spirit Gauge Autofill", "power_sheathe": "Power Sheathe"
"switch_charger": "Switch Charger", },
"sword_boost_mode": "Sword Boost Mode", "gunlance": {
"twin_wine": "Twin Wine", "erupting_cannon": "Erupting Cannon",
"white_extract": "White Extract", "ground_splitter": "Ground Splitter"
"wyvernblast_reload": "Wyvernblast Reload", },
"wyvernsnipe_reload": "Wyvernsnipe Reload" "hammer": {
"impact_burst": "Impact Burst"
},
"heavy_bowgun": {
"counter_charger": "Counter Charger",
"overheat": "Overheat",
"rising_moon": "Rising Moon",
"setting_sun": "Setting Sun",
"wyvernsnipe_reload": "Wyvernsnipe Reload"
},
"hunting_horn": {
"bead_of_resonance": "Bead of Resonance",
"silkbind_shockwave": "Silkbind Shockwave",
"sonic_bloom": "Sonic Bloom"
},
"insect_glaive": {
"all_extracts_mix": "All Extracts Mix",
"orange_extract": "Orange Extract",
"red_extract": "Red Extract",
"white_extract": "White Extract"
},
"lance": {
"anchor_rage": "Anchor Rage",
"spiral_thrust": "Spiral Thrust",
"twin_wine": "Twin Wine"
},
"light_bowgun": {
"fanning_maneuver": "Fanning Maneuver",
"wyvernblast_reload": "Wyvernblast Reload"
},
"long_sword": {
"harvest_moon": "Harvest Moon",
"iai_slash": "Iai Slash",
"soaring_kick": "Soaring Kick",
"spirit_gauge": "Spirit Gauge",
"spirit_gauge_autofill": "Spirit Gauge Autofill"
},
"switch_axe": {
"amped_state": "Amped State",
"axe_heavy_slam": "Axe: Heavy Slam",
"switch_charger": "Switch Charger"
},
"sword_and_shield": {
"destroyer_oil": "Destroyer Oil"
}
}, },
"weapons": { "weapons": {
"bow": "Bow", "bow": "Bow",

View File

@@ -3,7 +3,7 @@
"HP": "HP:", "HP": "HP:",
"buildup": "蓄積値:", "buildup": "蓄積値:",
"gold": "金冠", "gold": "金冠",
"lv": "Lv.", "lv": "",
"mini": "小型", "mini": "小型",
"otomo": "Buddy", "otomo": "Buddy",
"part_anomaly_core": "Anomaly Core", "part_anomaly_core": "Anomaly Core",
@@ -22,7 +22,6 @@
"blastblight": "Blastblight", "blastblight": "Blastblight",
"bleeding": "Bleeding", "bleeding": "Bleeding",
"bloodblight": "Bloodblight", "bloodblight": "Bloodblight",
"bubbleblight": "Bubbleblight",
"deadly_poison": "Deadly Poison", "deadly_poison": "Deadly Poison",
"defense_down": "Defense Down", "defense_down": "Defense Down",
"dragonblight": "Dragonblight", "dragonblight": "Dragonblight",
@@ -62,19 +61,6 @@
"waterblight": "水属性やられ", "waterblight": "水属性やられ",
"webbed": "Webbed" "webbed": "Webbed"
}, },
"consumables": {
"adamant_seed": "Adamant Seed",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
},
"customization_menu": { "customization_menu": {
"UI_font": "UI フォント", "UI_font": "UI フォント",
"UI_font_notice": "フォントの変更後はスクリプトリセットを行ってください。", "UI_font_notice": "フォントの変更後はスクリプトリセットを行ってください。",
@@ -155,6 +141,7 @@
"duration": "Duration", "duration": "Duration",
"dynamic_positioning": "動的な場所", "dynamic_positioning": "動的な場所",
"dynamically_positioned": "モンスターに追随して表示", "dynamically_positioned": "モンスターに追随して表示",
"effect_level": "Effect Level",
"element_2_label": "Element 2 Label", "element_2_label": "Element 2 Label",
"element_label": "Element Label", "element_label": "Element Label",
"enable_for": "有効にする", "enable_for": "有効にする",
@@ -178,6 +165,7 @@
"global_position_modifier": "全体的な位置の調整", "global_position_modifier": "全体的な位置の調整",
"global_scale_modifier": "全体的なスケールの調整", "global_scale_modifier": "全体的なスケールの調整",
"global_settings": "全体設定", "global_settings": "全体設定",
"head_tracking": "Head Tracking",
"health": "体力", "health": "体力",
"health_anomaly_filter": "Health + Anomaly Core", "health_anomaly_filter": "Health + Anomaly Core",
"health_break_anomaly_filter": "Health + Break + Anomaly Core", "health_break_anomaly_filter": "Health + Break + Anomaly Core",
@@ -225,6 +213,7 @@
"in_lobby": "In Lobby", "in_lobby": "In Lobby",
"in_training_area": "In Training Area", "in_training_area": "In Training Area",
"include": "含める情報", "include": "含める情報",
"infinite_buffs_location": "Infinite Buffs Location",
"inside": "Inside", "inside": "Inside",
"installations": "Installations", "installations": "Installations",
"italic": "イタリック", "italic": "イタリック",
@@ -351,6 +340,7 @@
"time_label": "タイムラベル", "time_label": "タイムラベル",
"time_limit": "タイムリミット(s.)", "time_limit": "タイムリミット(s.)",
"timer": "Timer", "timer": "Timer",
"timer_delays": "Timer Delays",
"timer_label": "タイマーラベル", "timer_label": "タイマーラベル",
"top_buildup": "最高蓄積値", "top_buildup": "最高蓄積値",
"top_damage": "最高ダメージ", "top_damage": "最高ダメージ",
@@ -373,6 +363,14 @@
"tracked_damage_types": "ダメージタイプでの追跡", "tracked_damage_types": "ダメージタイプでの追跡",
"tracked_monster_types": "モンスタータイプでの追跡", "tracked_monster_types": "モンスタータイプでの追跡",
"type": "タイプ", "type": "タイプ",
"update_buffs_delay": "Update Buffs (seconds)",
"update_is_online_delay": "Update Is Online (seconds)",
"update_myself_position_delay": "Update Myself Position (seconds)",
"update_player_info_delay": "Update Player Info (seconds)",
"update_players_delay": "Update Players (seconds)",
"update_quest_time_delay": "Update Quest Time (seconds)",
"update_singletons_delay": "Update Singletons (seconds)",
"update_window_size_delay": "Update Window Size (seconds)",
"use_d2d_if_available": "Use Direct2D if available", "use_d2d_if_available": "Use Direct2D if available",
"value": "Value", "value": "Value",
"value_label": "バリューラベル", "value_label": "バリューラベル",
@@ -389,55 +387,45 @@
"z": "Z" "z": "Z"
}, },
"dango_skills": { "dango_skills": {
"dango_insurance_defense_up": "Dango Insurance Defense Up"
},
"dangos": {
"dango_adrenaline": "Dango Adrenaline", "dango_adrenaline": "Dango Adrenaline",
"dango_bombardier": "Dango Bombardier",
"dango_booster": "Dango Booster", "dango_booster": "Dango Booster",
"dango_bulker": "Dango Bulker", "dango_bulker": "Dango Bulker",
"dango_connector": "Dango Connector", "dango_connector": "Dango Connector",
"dango_defender": "Dango Defender", "dango_defender": "Dango Defender",
"dango_defender_hi": "Dango Defender (Hi)",
"dango_deflector": "Dango Deflector",
"dango_dragon_res": "Dango Dragon Res",
"dango_dragon_res_hi": "Dango Dragon Res (Hi)",
"dango_driver": "Dango Driver",
"dango_feet": "Dango Feet",
"dango_fighter": "Dango Fighter",
"dango_fire_res": "Dango Fire Res",
"dango_fire_res_hi": "Dango Fire Res (Hi)",
"dango_flyer": "Dango Flyer", "dango_flyer": "Dango Flyer",
"dango_glutton": "Dango Glutton", "dango_glutton": "Dango Glutton",
"dango_guard": "Dango Guard",
"dango_hunter": "Dango Hunter", "dango_hunter": "Dango Hunter",
"dango_hurler": "Dango Hurler",
"dango_ice_res": "Dango Ice Res",
"dango_ice_res_hi": "Dango Ice Res (Hi)",
"dango_immunizer": "Dango Immunizer",
"dango_insurance": "Dango Insurance", "dango_insurance": "Dango Insurance",
"dango_insurance_defense_up": "Dango Insurance Defense Up", "dango_insurance_defense_up": "Dango Insurance Defense Up",
"dango_marksman": "Dango Marksman",
"dango_medic": "Dango Medic",
"dango_medic_hi": "Dango Medic (Hi)",
"dango_moxie": "Dango Moxie",
"dango_polisher": "Dango Polisher",
"dango_pyro": "Dango Pyro",
"dango_reviver": "Dango Reviver",
"dango_rider": "Dango Rider",
"dango_shifter": "Dango Shifter",
"dango_slugger": "Dango Slugger",
"dango_specialist": "Dango Specialist",
"dango_temper": "Dango Temper",
"dango_thunder_res": "Dango Thunder Res ",
"dango_thunder_res_hi": "Dango Thunder Res (Hi)",
"dango_wall_runner": "Dango Wall Runner",
"dango_water_res": "Dango Water Res",
"dango_water_res_hi": "Dango Water Res (Hi)",
"dango_weakener": "Dango Weakener",
"super_recovery_dango": "Super Recovery Dango" "super_recovery_dango": "Super Recovery Dango"
}, },
"endemic_life": {
"butterflame": "Butterflame",
"clothfly": "Clothfly",
"cutterfly": "Cutterfly",
"gold_wirebug": "Gold Wirebug",
"peepersects": "Peepersects",
"red_lampsquid": "Red Lampsquid",
"ruby_wirebug": "Ruby Wirebug",
"stinkmink": "Stinkmink",
"yellow_lampsquid": "Yellow Lampsquid"
},
"font_name": "NotoSansJP-Bold.otf", "font_name": "NotoSansJP-Bold.otf",
"item_buffs": {
"adamant_seed": "Adamant Seed",
"armor_ammo": "Armor Ammo",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_ammo": "Demon Ammo",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
},
"melody_effects": { "melody_effects": {
"affinity_up": "Affinity Up", "affinity_up": "Affinity Up",
"attack_and_affinity_up": "Attack and Affinity Up", "attack_and_affinity_up": "Attack and Affinity Up",
@@ -470,7 +458,6 @@
}, },
"misc_buffs": { "misc_buffs": {
"attack_up": "Attack Up", "attack_up": "Attack Up",
"defense_down": "Defense Down",
"defense_up": "Defense Up", "defense_up": "Defense Up",
"immunity": "Immunity", "immunity": "Immunity",
"natural_healing_up": "Natural Healing Up", "natural_healing_up": "Natural Healing Up",
@@ -479,7 +466,8 @@
"otomo_moves": { "otomo_moves": {
"go_fight_win": "Go, Fight, Win", "go_fight_win": "Go, Fight, Win",
"power_drum": "Power Drum", "power_drum": "Power Drum",
"rousing_roar": "Rousing Roar" "rousing_roar": "Rousing Roar",
"vase_of_vitality": "Vase of Vitality"
}, },
"parts": { "parts": {
"abdomen": "腹部", "abdomen": "腹部",
@@ -550,30 +538,38 @@
"wingclaws": "Wingclaws", "wingclaws": "Wingclaws",
"wings": "翼" "wings": "翼"
}, },
"rampage_skills": {
"chameleos_soul": "Chameleos Soul",
"kushala_daora_soul": "Kushala Daora Soul"
},
"skills": { "skills": {
"adrenaline_rush": "Adrenaline Rush", "adrenaline_rush": "Adrenaline Rush",
"affinity_sliding": "Affinity Sliding", "affinity_sliding": "Affinity Sliding",
"agitator": "Agitator", "agitator": "Agitator",
"berserk": "Berserk",
"bladescale_hone": "Bladescale Hone", "bladescale_hone": "Bladescale Hone",
"blood_awakening": "Blood Awakening",
"bloodlust": "Bloodlust", "bloodlust": "Bloodlust",
"burst": "Burst", "burst": "Burst",
"coalescence": "Coalescence", "coalescence": "Coalescence",
"counterstrike": "Counterstrike", "counterstrike": "Counterstrike",
"dereliction": "Dereliction", "dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up", "dragon_conversion_elemental_attack_up": "Dragon Conversion: Elem. Atk Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up", "dragon_conversion_elemental_res_up": "Dragon Conversion: Elem. Res Up",
"dragonheart": "Dragonheart", "dragonheart": "Dragonheart",
"embolden": "Embolden",
"frenzied_bloodlust": "Frenzied Bloodlust", "frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious", "furious": "Furious",
"grinder_s": "Grinder (S)", "grinder_s": "Grinder (S)",
"heaven_sent": "Heaven-Sent", "heaven_sent": "Heaven-Sent",
"hellfire_cloak": "Hellfire Cloak", "hellfire_cloak": "Hellfire Cloak",
"heroics": "Heroics", "heroics": "Heroics",
"inspiration": "Inspiration",
"intrepid_heart": "Intrepid Heart", "intrepid_heart": "Intrepid Heart",
"kushala_daora_soul": "Kushala Daora Soul",
"latent_power": "Latent Power", "latent_power": "Latent Power",
"maximum_might": "Maximum Might", "maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard", "offensive_guard": "Offensive Guard",
"partbreaker": "Partbreaker",
"peak_performance": "Peak Performance", "peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)", "powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)", "powder_mantle_red": "Powder Mantle (Red)",
@@ -582,6 +578,7 @@
"resuscitate": "Resuscitate", "resuscitate": "Resuscitate",
"spiribirds_call": "Spiribird's Call", "spiribirds_call": "Spiribird's Call",
"status_trigger": "Status Trigger", "status_trigger": "Status Trigger",
"strife": "Strife",
"wall_runner": "Wall Runner", "wall_runner": "Wall Runner",
"wind_mantle": "Wind Mantle" "wind_mantle": "Wind Mantle"
}, },
@@ -606,67 +603,89 @@
255, 255,
8192, 8192,
8303, 8303,
11904,
12031,
12288, 12288,
12543, 12543,
12784, 12784,
12799, 19903,
19968, 19968,
40879, 40959,
63744,
64255,
65072,
65103,
65280, 65280,
65519, 65519,
0,
12799,
19968,
40879,
44032,
55215,
65280,
65519,
0,
65519,
0 0
], ],
"weapon_skills": { "weapon_skills": {
"all_extracts_mix": "All Extracts Mix", "bow": {
"amped_state": "Amped State", "arc_shot_affinity": "Arc Shot: Affinity",
"anchor_rage": "Anchor Rage", "arc_shot_brace": "Arc Shot: Brace",
"arc_shot_affinity": "Arc Shot: Affinity", "bolt_boost": "Bolt Boost",
"arc_shot_brace": "Arc Shot: Brace", "herculean_draw": "Herculean Draw"
"archdemon_mode": "Archdemon Mode", },
"axe_heavy_slam": "Axe: Heavy Slam", "charge_blade": {
"bead_of_resonance": "Bead of Resonance", "element_boost": "Element Boost",
"bolt_boost": "Bolt Boost", "sword_boost_mode": "Sword Boost Mode"
"counter_charger": "Counter Charger", },
"destroyer_oil": "Destroyer Oil", "dual_blades": {
"element_boost": "Element Boost", "archdemon_mode": "Archdemon Mode",
"erupting_cannon": "Erupting Cannon", "ironshine_silk": "Ironshine Silk"
"fanning_maneuver": "Fannin Maneuver", },
"ground_splitter": "Ground Splitter", "great_sword": {
"harvest_moon": "Harvest Moon", "power_sheathe": "Power Sheathe"
"herculean_draw": "Herculean Draw", },
"iai_slash": "Iai Slash", "gunlance": {
"impact_burst": "Impact Burst", "erupting_cannon": "Erupting Cannon",
"ironshine_silk": "Ironshine Silk", "ground_splitter": "Ground Splitter"
"orange_extract": "O Extract", },
"overheat": "Overheat", "hammer": {
"power_sheathe": "Power Sheathe", "impact_burst": "Impact Burst"
"red_extract": "Red Extract", },
"rising_moon": "Rising Moon", "heavy_bowgun": {
"setting_sun": "Setting Sun", "counter_charger": "Counter Charger",
"shield_charge": "Shield Charge", "overheat": "Overheat",
"silkbind_shockwave": "Silkbind Shockwave", "rising_moon": "Rising Moon",
"soaring_kick": "Soaring Kick", "setting_sun": "Setting Sun",
"sonic_bloom": "Sonic Bloom", "wyvernsnipe_reload": "Wyvernsnipe Reload"
"spiral_thrust": "Spiral Thrust", },
"spirit_gauge": "Spirit Gauge", "hunting_horn": {
"spirit_gauge_autofill": "Spirit Gauge Autofill", "bead_of_resonance": "Bead of Resonance",
"switch_charger": "Switch Charger", "silkbind_shockwave": "Silkbind Shockwave",
"sword_boost_mode": "Sword Boost Mode", "sonic_bloom": "Sonic Bloom"
"sword_charge": "Sword Charge", },
"twin_wine": "Twin Wine", "insect_glaive": {
"white_extract": "White Extract", "all_extracts_mix": "All Extracts Mix",
"wyvernblast_reload": "Wyvernblast Reload", "orange_extract": "Orange Extract",
"wyvernsnipe_reload": "Wyvernsnipe Reload" "red_extract": "Red Extract",
"white_extract": "White Extract"
},
"lance": {
"anchor_rage": "Anchor Rage",
"spiral_thrust": "Spiral Thrust",
"twin_wine": "Twin Wine"
},
"light_bowgun": {
"fanning_maneuver": "Fanning Maneuver",
"wyvernblast_reload": "Wyvernblast Reload"
},
"long_sword": {
"harvest_moon": "Harvest Moon",
"iai_slash": "Iai Slash",
"soaring_kick": "Soaring Kick",
"spirit_gauge": "Spirit Gauge",
"spirit_gauge_autofill": "Spirit Gauge Autofill"
},
"switch_axe": {
"amped_state": "Amped State",
"axe_heavy_slam": "Axe: Heavy Slam",
"switch_charger": "Switch Charger"
},
"sword_and_shield": {
"destroyer_oil": "Destroyer Oil"
}
}, },
"weapons": { "weapons": {
"bow": "Bow", "bow": "Bow",

View File

@@ -3,7 +3,7 @@
"HP": "체력:", "HP": "체력:",
"buildup": "누적치:", "buildup": "누적치:",
"gold": "금관", "gold": "금관",
"lv": "Lv.", "lv": "",
"mini": "최소", "mini": "최소",
"otomo": "동반자", "otomo": "동반자",
"part_anomaly_core": "괴이핵", "part_anomaly_core": "괴이핵",
@@ -22,7 +22,6 @@
"blastblight": "Blastblight", "blastblight": "Blastblight",
"bleeding": "Bleeding", "bleeding": "Bleeding",
"bloodblight": "Bloodblight", "bloodblight": "Bloodblight",
"bubbleblight": "Bubbleblight",
"deadly_poison": "Deadly Poison", "deadly_poison": "Deadly Poison",
"defense_down": "Defense Down", "defense_down": "Defense Down",
"dragonblight": "Dragonblight", "dragonblight": "Dragonblight",
@@ -62,19 +61,6 @@
"waterblight": "진흙구리", "waterblight": "진흙구리",
"webbed": "Webbed" "webbed": "Webbed"
}, },
"consumables": {
"adamant_seed": "Adamant Seed",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
},
"customization_menu": { "customization_menu": {
"UI_font": "UI 글꼴", "UI_font": "UI 글꼴",
"UI_font_notice": "글꼴 변경시 스크립트를 리로드 해야합니다!", "UI_font_notice": "글꼴 변경시 스크립트를 리로드 해야합니다!",
@@ -143,7 +129,6 @@
"damage_value_label": "대미지 값 정보", "damage_value_label": "대미지 값 정보",
"dango_skills": "Dango Skills", "dango_skills": "Dango Skills",
"debug": "Debug", "debug": "Debug",
"debug_errors": "Debug Errors",
"default_state": "기본 상태", "default_state": "기본 상태",
"defense_label": "Defense Label", "defense_label": "Defense Label",
"delete": "삭제하기", "delete": "삭제하기",
@@ -156,6 +141,7 @@
"duration": "지속시간", "duration": "지속시간",
"dynamic_positioning": "유동 위치", "dynamic_positioning": "유동 위치",
"dynamically_positioned": "유동 위치 UI", "dynamically_positioned": "유동 위치 UI",
"effect_level": "Effect Level",
"element_2_label": "Element 2 Label", "element_2_label": "Element 2 Label",
"element_label": "Element Label", "element_label": "Element Label",
"enable_for": "표시 대상", "enable_for": "표시 대상",
@@ -179,6 +165,7 @@
"global_position_modifier": "전역 위치 배율", "global_position_modifier": "전역 위치 배율",
"global_scale_modifier": "전역 크기 배율", "global_scale_modifier": "전역 크기 배율",
"global_settings": "전역 설정", "global_settings": "전역 설정",
"head_tracking": "Head Tracking",
"health": "체력", "health": "체력",
"health_anomaly_filter": "체력 + 괴이핵", "health_anomaly_filter": "체력 + 괴이핵",
"health_break_anomaly_filter": "체력 + 파괴 + 괴이핵", "health_break_anomaly_filter": "체력 + 파괴 + 괴이핵",
@@ -226,6 +213,7 @@
"in_lobby": "로비 내", "in_lobby": "로비 내",
"in_training_area": "훈련구역 내", "in_training_area": "훈련구역 내",
"include": "포함", "include": "포함",
"infinite_buffs_location": "Infinite Buffs Location",
"inside": "내부", "inside": "내부",
"installations": "설치", "installations": "설치",
"italic": "기울임", "italic": "기울임",
@@ -352,6 +340,7 @@
"time_label": "시간 정보", "time_label": "시간 정보",
"time_limit": "시간 제한 (단위: 초)", "time_limit": "시간 제한 (단위: 초)",
"timer": "타이머", "timer": "타이머",
"timer_delays": "Timer Delays",
"timer_label": "타이머 정보", "timer_label": "타이머 정보",
"top_buildup": "총 누적치", "top_buildup": "총 누적치",
"top_damage": "최고 대미지", "top_damage": "최고 대미지",
@@ -374,6 +363,14 @@
"tracked_damage_types": "추적할 대미지 종류", "tracked_damage_types": "추적할 대미지 종류",
"tracked_monster_types": "추적할 몬스터 타입", "tracked_monster_types": "추적할 몬스터 타입",
"type": "종류", "type": "종류",
"update_buffs_delay": "Update Buffs (seconds)",
"update_is_online_delay": "Update Is Online (seconds)",
"update_myself_position_delay": "Update Myself Position (seconds)",
"update_player_info_delay": "Update Player Info (seconds)",
"update_players_delay": "Update Players (seconds)",
"update_quest_time_delay": "Update Quest Time (seconds)",
"update_singletons_delay": "Update Singletons (seconds)",
"update_window_size_delay": "Update Window Size (seconds)",
"use_d2d_if_available": "가능한 Direct2D를 사용함", "use_d2d_if_available": "가능한 Direct2D를 사용함",
"value": "Value", "value": "Value",
"value_label": "값 정보", "value_label": "값 정보",
@@ -390,55 +387,45 @@
"z": "Z" "z": "Z"
}, },
"dango_skills": { "dango_skills": {
"dango_insurance_defense_up": "Dango Insurance Defense Up"
},
"dangos": {
"dango_adrenaline": "Dango Adrenaline", "dango_adrenaline": "Dango Adrenaline",
"dango_bombardier": "Dango Bombardier",
"dango_booster": "Dango Booster", "dango_booster": "Dango Booster",
"dango_bulker": "Dango Bulker", "dango_bulker": "Dango Bulker",
"dango_connector": "Dango Connector", "dango_connector": "Dango Connector",
"dango_defender": "Dango Defender", "dango_defender": "Dango Defender",
"dango_defender_hi": "Dango Defender (Hi)",
"dango_deflector": "Dango Deflector",
"dango_dragon_res": "Dango Dragon Res",
"dango_dragon_res_hi": "Dango Dragon Res (Hi)",
"dango_driver": "Dango Driver",
"dango_feet": "Dango Feet",
"dango_fighter": "Dango Fighter",
"dango_fire_res": "Dango Fire Res",
"dango_fire_res_hi": "Dango Fire Res (Hi)",
"dango_flyer": "Dango Flyer", "dango_flyer": "Dango Flyer",
"dango_glutton": "Dango Glutton", "dango_glutton": "Dango Glutton",
"dango_guard": "Dango Guard",
"dango_hunter": "Dango Hunter", "dango_hunter": "Dango Hunter",
"dango_hurler": "Dango Hurler",
"dango_ice_res": "Dango Ice Res",
"dango_ice_res_hi": "Dango Ice Res (Hi)",
"dango_immunizer": "Dango Immunizer",
"dango_insurance": "Dango Insurance", "dango_insurance": "Dango Insurance",
"dango_insurance_defense_up": "Dango Insurance Defense Up", "dango_insurance_defense_up": "Dango Insurance Defense Up",
"dango_marksman": "Dango Marksman",
"dango_medic": "Dango Medic",
"dango_medic_hi": "Dango Medic (Hi)",
"dango_moxie": "Dango Moxie",
"dango_polisher": "Dango Polisher",
"dango_pyro": "Dango Pyro",
"dango_reviver": "Dango Reviver",
"dango_rider": "Dango Rider",
"dango_shifter": "Dango Shifter",
"dango_slugger": "Dango Slugger",
"dango_specialist": "Dango Specialist",
"dango_temper": "Dango Temper",
"dango_thunder_res": "Dango Thunder Res ",
"dango_thunder_res_hi": "Dango Thunder Res (Hi)",
"dango_wall_runner": "Dango Wall Runner",
"dango_water_res": "Dango Water Res",
"dango_water_res_hi": "Dango Water Res (Hi)",
"dango_weakener": "Dango Weakener",
"super_recovery_dango": "Super Recovery Dango" "super_recovery_dango": "Super Recovery Dango"
}, },
"endemic_life": {
"butterflame": "Butterflame",
"clothfly": "Clothfly",
"cutterfly": "Cutterfly",
"gold_wirebug": "Gold Wirebug",
"peepersects": "Peepersects",
"red_lampsquid": "Red Lampsquid",
"ruby_wirebug": "Ruby Wirebug",
"stinkmink": "Stinkmink",
"yellow_lampsquid": "Yellow Lampsquid"
},
"font_name": "NotoSansKR-Bold.otf", "font_name": "NotoSansKR-Bold.otf",
"item_buffs": {
"adamant_seed": "Adamant Seed",
"armor_ammo": "Armor Ammo",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_ammo": "Demon Ammo",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
},
"melody_effects": { "melody_effects": {
"affinity_up": "Affinity Up", "affinity_up": "Affinity Up",
"attack_and_affinity_up": "Attack and Affinity Up", "attack_and_affinity_up": "Attack and Affinity Up",
@@ -471,7 +458,6 @@
}, },
"misc_buffs": { "misc_buffs": {
"attack_up": "Attack Up", "attack_up": "Attack Up",
"defense_down": "Defense Down",
"defense_up": "Defense Up", "defense_up": "Defense Up",
"immunity": "Immunity", "immunity": "Immunity",
"natural_healing_up": "Natural Healing Up", "natural_healing_up": "Natural Healing Up",
@@ -480,7 +466,8 @@
"otomo_moves": { "otomo_moves": {
"go_fight_win": "Go, Fight, Win", "go_fight_win": "Go, Fight, Win",
"power_drum": "Power Drum", "power_drum": "Power Drum",
"rousing_roar": "Rousing Roar" "rousing_roar": "Rousing Roar",
"vase_of_vitality": "Vase of Vitality"
}, },
"parts": { "parts": {
"abdomen": "배", "abdomen": "배",
@@ -551,30 +538,38 @@
"wingclaws": "날개발톱", "wingclaws": "날개발톱",
"wings": "날개" "wings": "날개"
}, },
"rampage_skills": {
"chameleos_soul": "Chameleos Soul",
"kushala_daora_soul": "Kushala Daora Soul"
},
"skills": { "skills": {
"adrenaline_rush": "Adrenaline Rush", "adrenaline_rush": "Adrenaline Rush",
"affinity_sliding": "Affinity Sliding", "affinity_sliding": "Affinity Sliding",
"agitator": "Agitator", "agitator": "Agitator",
"berserk": "Berserk",
"bladescale_hone": "Bladescale Hone", "bladescale_hone": "Bladescale Hone",
"blood_awakening": "Blood Awakening",
"bloodlust": "Bloodlust", "bloodlust": "Bloodlust",
"burst": "Burst", "burst": "Burst",
"coalescence": "Coalescence", "coalescence": "Coalescence",
"counterstrike": "Counterstrike", "counterstrike": "Counterstrike",
"dereliction": "Dereliction", "dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up", "dragon_conversion_elemental_attack_up": "Dragon Conversion: Elem. Atk Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up", "dragon_conversion_elemental_res_up": "Dragon Conversion: Elem. Res Up",
"dragonheart": "Dragonheart", "dragonheart": "Dragonheart",
"embolden": "Embolden",
"frenzied_bloodlust": "Frenzied Bloodlust", "frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious", "furious": "Furious",
"grinder_s": "Grinder (S)", "grinder_s": "Grinder (S)",
"heaven_sent": "Heaven-Sent", "heaven_sent": "Heaven-Sent",
"hellfire_cloak": "Hellfire Cloak", "hellfire_cloak": "Hellfire Cloak",
"heroics": "Heroics", "heroics": "Heroics",
"inspiration": "Inspiration",
"intrepid_heart": "Intrepid Heart", "intrepid_heart": "Intrepid Heart",
"kushala_daora_soul": "Kushala Daora Soul",
"latent_power": "Latent Power", "latent_power": "Latent Power",
"maximum_might": "Maximum Might", "maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard", "offensive_guard": "Offensive Guard",
"partbreaker": "Partbreaker",
"peak_performance": "Peak Performance", "peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)", "powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)", "powder_mantle_red": "Powder Mantle (Red)",
@@ -583,6 +578,7 @@
"resuscitate": "Resuscitate", "resuscitate": "Resuscitate",
"spiribirds_call": "Spiribird's Call", "spiribirds_call": "Spiribird's Call",
"status_trigger": "Status Trigger", "status_trigger": "Status Trigger",
"strife": "Strife",
"wall_runner": "Wall Runner", "wall_runner": "Wall Runner",
"wind_mantle": "Wind Mantle" "wind_mantle": "Wind Mantle"
}, },
@@ -609,65 +605,93 @@
4607, 4607,
8192, 8192,
8303, 8303,
11904,
12031,
12288,
12351,
12592, 12592,
12687, 12687,
44032, 12800,
55215, 19903,
65280,
65519,
0,
12799,
19968, 19968,
40879, 40959,
44032, 44032,
55215, 55215,
63744,
64255,
65072,
65103,
65280, 65280,
65519, 65519,
0,
65519,
0 0
], ],
"weapon_skills": { "weapon_skills": {
"all_extracts_mix": "All Extracts Mix", "bow": {
"amped_state": "Amped State", "arc_shot_affinity": "Arc Shot: Affinity",
"anchor_rage": "Anchor Rage", "arc_shot_brace": "Arc Shot: Brace",
"arc_shot_affinity": "Arc Shot: Affinity", "bolt_boost": "Bolt Boost",
"arc_shot_brace": "Arc Shot: Brace", "herculean_draw": "Herculean Draw"
"archdemon_mode": "Archdemon Mode", },
"axe_heavy_slam": "Axe: Heavy Slam", "charge_blade": {
"bead_of_resonance": "Bead of Resonance", "element_boost": "Element Boost",
"bolt_boost": "Bolt Boost", "sword_boost_mode": "Sword Boost Mode"
"counter_charger": "Counter Charger", },
"destroyer_oil": "Destroyer Oil", "dual_blades": {
"element_boost": "Element Boost", "archdemon_mode": "Archdemon Mode",
"erupting_cannon": "Erupting Cannon", "ironshine_silk": "Ironshine Silk"
"fanning_maneuver": "Fannin Maneuver", },
"ground_splitter": "Ground Splitter", "great_sword": {
"harvest_moon": "Harvest Moon", "power_sheathe": "Power Sheathe"
"herculean_draw": "Herculean Draw", },
"iai_slash": "Iai Slash", "gunlance": {
"impact_burst": "Impact Burst", "erupting_cannon": "Erupting Cannon",
"ironshine_silk": "Ironshine Silk", "ground_splitter": "Ground Splitter"
"orange_extract": "O Extract", },
"overheat": "Overheat", "hammer": {
"power_sheathe": "Power Sheathe", "impact_burst": "Impact Burst"
"red_extract": "Red Extract", },
"rising_moon": "Rising Moon", "heavy_bowgun": {
"setting_sun": "Setting Sun", "counter_charger": "Counter Charger",
"shield_charge": "Shield Charge", "overheat": "Overheat",
"silkbind_shockwave": "Silkbind Shockwave", "rising_moon": "Rising Moon",
"soaring_kick": "Soaring Kick", "setting_sun": "Setting Sun",
"sonic_bloom": "Sonic Bloom", "wyvernsnipe_reload": "Wyvernsnipe Reload"
"spiral_thrust": "Spiral Thrust", },
"spirit_gauge": "Spirit Gauge", "hunting_horn": {
"spirit_gauge_autofill": "Spirit Gauge Autofill", "bead_of_resonance": "Bead of Resonance",
"switch_charger": "Switch Charger", "silkbind_shockwave": "Silkbind Shockwave",
"sword_boost_mode": "Sword Boost Mode", "sonic_bloom": "Sonic Bloom"
"sword_charge": "Sword Charge", },
"twin_wine": "Twin Wine", "insect_glaive": {
"white_extract": "White Extract", "all_extracts_mix": "All Extracts Mix",
"wyvernblast_reload": "Wyvernblast Reload", "orange_extract": "Orange Extract",
"wyvernsnipe_reload": "Wyvernsnipe Reload" "red_extract": "Red Extract",
"white_extract": "White Extract"
},
"lance": {
"anchor_rage": "Anchor Rage",
"spiral_thrust": "Spiral Thrust",
"twin_wine": "Twin Wine"
},
"light_bowgun": {
"fanning_maneuver": "Fanning Maneuver",
"wyvernblast_reload": "Wyvernblast Reload"
},
"long_sword": {
"harvest_moon": "Harvest Moon",
"iai_slash": "Iai Slash",
"soaring_kick": "Soaring Kick",
"spirit_gauge": "Spirit Gauge",
"spirit_gauge_autofill": "Spirit Gauge Autofill"
},
"switch_axe": {
"amped_state": "Amped State",
"axe_heavy_slam": "Axe: Heavy Slam",
"switch_charger": "Switch Charger"
},
"sword_and_shield": {
"destroyer_oil": "Destroyer Oil"
}
}, },
"weapons": { "weapons": {
"bow": "Bow", "bow": "Bow",

View File

@@ -3,7 +3,7 @@
"HP": "ОЗ:", "HP": "ОЗ:",
"buildup": "Накопление", "buildup": "Накопление",
"gold": "Золото", "gold": "Золото",
"lv": "Lv.", "lv": "",
"mini": "Мини", "mini": "Мини",
"otomo": "Cпутник", "otomo": "Cпутник",
"part_anomaly_core": "Ядро аномалии", "part_anomaly_core": "Ядро аномалии",
@@ -19,68 +19,54 @@
}, },
"ailments": { "ailments": {
"blast": "Взрыв", "blast": "Взрыв",
"blastblight": "Blastblight", "blastblight": "Взрывная порча",
"bleeding": "Bleeding", "bleeding": "Кровотечение",
"bloodblight": "Bloodblight", "bloodblight": "Кровавая порча",
"bubbleblight": "Bubbleblight", "deadly_poison": "Смертельный яд",
"deadly_poison": "Deadly Poison", "defense_down": "Защита снижена",
"defense_down": "Defense Down", "dragonblight": "Драконья Порча",
"dragonblight": "Dragonblight",
"dung_bomb": "Навозная бомба", "dung_bomb": "Навозная бомба",
"engulfed": "Engulfed", "engulfed": "Окутывание",
"exhaust": "Усталость", "exhaust": "Усталость",
"fall_otomo_trap": "Волчья яма спутника", "fall_otomo_trap": "Волчья яма спутника",
"fall_trap": "Волчья яма", "fall_trap": "Волчья яма",
"falling_asleep": "Falling Asleep", "falling_asleep": "Засыпание",
"fireblight": "Огненная порча", "fireblight": "Огненная порча",
"flash": "Оглушение", "flash": "Оглушение",
"frenzy": "Frenzy", "frenzy": "Бешенство",
"frenzy_infection": "Frenzy Infection", "frenzy_infection": "Инфекция бешенства",
"frenzy_overcome": "Frenzy Overcome", "frenzy_overcome": "Преодоление бешенства",
"frostblight": "Frostblight", "frostblight": "Ледяная (морозная) порча",
"hellfireblight": "Hellfireblight", "hellfireblight": "Порча адского пламени",
"iceblight": "Ледяная порча", "iceblight": "Ледяная порча",
"leeched": "Leeched", "leeched": "Истощение",
"major_bubbleblight": "Major Bubbleblight", "major_bubbleblight": "Великая пузырьковая порча",
"minor_bubbleblight": "Minor Bubbleblight", "minor_bubbleblight": "Малая пузырьковая порча",
"muck": "Muck", "muck": "Грязь",
"paralysis": "Паралич", "paralysis": "Паралич",
"poison": "Отравление", "poison": "Отравление",
"quick_sand": "Зыбучий песок", "quick_sand": "Зыбучий песок",
"resistance_down": "Resistance Down", "resistance_down": "Сопротивление снижено",
"ride": "Езда на виверне", "ride": "Езда на виверне",
"roar": "Roar", "roar": "Рык",
"shock_otomo_trap": "Шоковая ловушка спутника", "shock_otomo_trap": "Шоковая ловушка спутника",
"shock_trap": "Шоковая ловушка", "shock_trap": "Шоковая ловушка",
"sleep": "Сон", "sleep": "Сон",
"steel_fang": "Стальной клык", "steel_fang": "Стальной клык",
"stench": "Stench", "stench": "Зловоние",
"stun": "Оглушение", "stun": "Оглушение",
"thunderblight": "Грозовая порча", "thunderblight": "Грозовая порча",
"tranq_bomb": "Снотворная порча", "tranq_bomb": "Снотворная порча",
"tremor": "Tremor", "tremor": "Тряска",
"waterblight": "Водяная порча", "waterblight": "Водяная порча",
"webbed": "Webbed" "webbed": "В паутине"
},
"consumables": {
"adamant_seed": "Adamant Seed",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
}, },
"customization_menu": { "customization_menu": {
"UI_font": "Шрифт интерфейса", "UI_font": "Шрифт интерфейса",
"UI_font_notice": "Любые изменения шрифта требуют перезагрузку скрипта!", "UI_font_notice": "Любые изменения шрифта требуют перезагрузку скрипта!",
"abnormal_statuses": "Abnormal Statuses", "abnormal_statuses": "Аномальные статусы",
"activation_count": "Кол-во активаций", "activation_count": "Кол-во активаций",
"affinity_label": "Affinity Label", "affinity_label": "Метка мастерства",
"ailment_buildups": "Накопление аномального статуса", "ailment_buildups": "Накопление аномального статуса",
"ailment_name": "Название аномального статуса", "ailment_name": "Название аномального статуса",
"ailment_name_label": "Метка названия аномального статуса", "ailment_name_label": "Метка названия аномального статуса",
@@ -94,7 +80,7 @@
"anomaly_health_percentage": "Здоровье ядра аномалии в процентах", "anomaly_health_percentage": "Здоровье ядра аномалии в процентах",
"apply": "Применить", "apply": "Применить",
"assign_new_key": "Привязать клавишу", "assign_new_key": "Привязать клавишу",
"attack_label": "Attack Label", "attack_label": "Метка Атаки",
"auto_highlight": "Автофокус", "auto_highlight": "Автофокус",
"background": "Фон", "background": "Фон",
"bar": "Шкала", "bar": "Шкала",
@@ -113,7 +99,7 @@
"break_max_count": "Максимальное кол-во повреждений", "break_max_count": "Максимальное кол-во повреждений",
"break_sever_anomaly_filter": "Повреждение + Отсечение + Ядро аномалии", "break_sever_anomaly_filter": "Повреждение + Отсечение + Ядро аномалии",
"break_sever_filter": "Повреждение + Отсечение", "break_sever_filter": "Повреждение + Отсечение",
"buff_UI": "Интерфейс баффов", "buff_UI": "Интерфейс эффектов",
"buildup": "Накопление", "buildup": "Накопление",
"buildup_bar": "Шкала накопления", "buildup_bar": "Шкала накопления",
"buildup_bars_are_relative_to": "Шкалы накопления расположены относительно к", "buildup_bars_are_relative_to": "Шкалы накопления расположены относительно к",
@@ -132,7 +118,7 @@
"crown": "Корона", "crown": "Корона",
"crown_thresholds": "Лимиты корон", "crown_thresholds": "Лимиты корон",
"current_state": "Текущее состояние", "current_state": "Текущее состояние",
"current_time": "Current Time", "current_time": "Текущее время",
"current_value": "Текущее значение", "current_value": "Текущее значение",
"cutscene": "Катсцена", "cutscene": "Катсцена",
"damage": "Урон", "damage": "Урон",
@@ -141,36 +127,36 @@
"damage_meter_UI": "Интерфейс модуля урона", "damage_meter_UI": "Интерфейс модуля урона",
"damage_percentage_label": "Метка урона в процентах", "damage_percentage_label": "Метка урона в процентах",
"damage_value_label": "Метка значений урона", "damage_value_label": "Метка значений урона",
"dango_skills": "Dango Skills", "dango_skills": "Навыки данго",
"debug": "Debug", "debug": "Отладка",
"debug_errors": "Debug Errors",
"default_state": "Состояние по умолчанию", "default_state": "Состояние по умолчанию",
"defense_label": "Defense Label", "defense_label": "Метка защиты",
"delete": "Удалить", "delete": "Удалить",
"distance": "Расстояние", "distance": "Расстояние",
"dps": "Урон в секунду", "dps": "Урон в секунду",
"dps_label": "Метка урона в секунду", "dps_label": "Метка урона в секунду",
"dps_mode": "Режим урона в секунду", "dps_mode": "Режим урона в секунду",
"dragon_resistance_label": "Dragon Resistance Label", "dragon_resistance_label": "Метка сопротивления дракону",
"duplicate": "Дублировать", "duplicate": "Дублировать",
"duration": "Продолжительность", "duration": "Продолжительность",
"dynamic_positioning": "Динамическое позиционирование", "dynamic_positioning": "Динамическое позиционирование",
"dynamically_positioned": "Рассположенный динамично", "dynamically_positioned": "Рассположенный динамично",
"element_2_label": "Element 2 Label", "effect_level": "Уровень эффекта",
"element_label": "Element Label", "element_2_label": "Метка элемента 2",
"element_label": "Метка элемента",
"enable_for": "Показывать для", "enable_for": "Показывать для",
"enabled": "Включить", "enabled": "Включить",
"endemic_life": "Местная живность", "endemic_life": "Местная живность",
"endemic_life_UI": "Интерфейс местной живности", "endemic_life_UI": "Интерфейс местной живности",
"endemic_life_buffs": "Endemic Life Buffs", "endemic_life_buffs": "Эффекты местной живности",
"everything_seems_to_be_ok": "Everything seems to be OK!", "everything_seems_to_be_ok": "Кажется, всё в порядке!",
"family": "Семейство", "family": "Семейство",
"farthest": "Самый дальний", "farthest": "Самый дальний",
"fight_time": "Время в бою", "fight_time": "Время в бою",
"fill_direction": "Направление заполнения", "fill_direction": "Направление заполнения",
"filter": "Фильтр", "filter": "Фильтр",
"filter_mode": "Режим Фильтра", "filter_mode": "Режим Фильтра",
"fire_resistance_label": "Fire Resistance Label", "fire_resistance_label": "Метка сопротивления огню",
"first": "Первый", "first": "Первый",
"first_hit": "Первый удар", "first_hit": "Первый удар",
"flinch_count": "Кол-во вздрагиваний", "flinch_count": "Кол-во вздрагиваний",
@@ -179,6 +165,7 @@
"global_position_modifier": "Глобальный модификатор расположения", "global_position_modifier": "Глобальный модификатор расположения",
"global_scale_modifier": "Глобальный модификатор размера", "global_scale_modifier": "Глобальный модификатор размера",
"global_settings": "Общие настройки", "global_settings": "Общие настройки",
"head_tracking": "Отслеживание головы",
"health": "Здоровье", "health": "Здоровье",
"health_anomaly_filter": "Здоровье + Ядро аномалии", "health_anomaly_filter": "Здоровье + Ядро аномалии",
"health_break_anomaly_filter": "Здоровье + Повреждение + Ядро аномалии", "health_break_anomaly_filter": "Здоровье + Повреждение + Ядро аномалии",
@@ -186,7 +173,7 @@
"health_break_sever_anomaly_filter": "Здоровье + Повреждение + Отсечение + Ядро аномалии", "health_break_sever_anomaly_filter": "Здоровье + Повреждение + Отсечение + Ядро аномалии",
"health_break_sever_filter": "Здоровье + Повреждение + Отсечение", "health_break_sever_filter": "Здоровье + Повреждение + Отсечение",
"health_filter": "Здоровье", "health_filter": "Здоровье",
"health_label": "Health Label", "health_label": "Метка здоровья",
"health_percentage": "Здоровье в процентах", "health_percentage": "Здоровье в процентах",
"health_sever_anomaly_filter": "Здоровье + Отсечение + Ядро аномалии", "health_sever_anomaly_filter": "Здоровье + Отсечение + Ядро аномалии",
"health_sever_filter": "Здоровье + Отсечение", "health_sever_filter": "Здоровье + Отсечение",
@@ -194,7 +181,7 @@
"hide_ailments_with_zero_buildup": "Скрыть аномальный статус, если накопление равно 0", "hide_ailments_with_zero_buildup": "Скрыть аномальный статус, если накопление равно 0",
"hide_all_active_ailments": "Скрыть все активные аномальные статусы", "hide_all_active_ailments": "Скрыть все активные аномальные статусы",
"hide_all_inactive_ailments": "Скрыть все неактивные аномальные статусы", "hide_all_inactive_ailments": "Скрыть все неактивные аномальные статусы",
"hide_bar_for_infinite_buffs": "Скрыть шкалу у бесконечных баффов", "hide_bar_for_infinite_buffs": "Скрыть шкалу у бесконечных эффектов",
"hide_dead_or_captured": "Скрыть мёртвых и захваченных монстров", "hide_dead_or_captured": "Скрыть мёртвых и захваченных монстров",
"hide_disabled_ailments": "Скрыть отключенные аномальные статусы", "hide_disabled_ailments": "Скрыть отключенные аномальные статусы",
"hide_inactive_ailments_with_no_buildup_support": "Скрыть неактивные аномальные статусы без поддержки накопления", "hide_inactive_ailments_with_no_buildup_support": "Скрыть неактивные аномальные статусы без поддержки накопления",
@@ -204,7 +191,7 @@
"hide_other_players": "Скрыть остальных игроков", "hide_other_players": "Скрыть остальных игроков",
"hide_player_if_player_damage_is_zero": "Скрыть игрока, если его урон равен 0", "hide_player_if_player_damage_is_zero": "Скрыть игрока, если его урон равен 0",
"hide_servants": "Скрыть последователей", "hide_servants": "Скрыть последователей",
"hide_timer_for_infinite_buffs": "Скрыть таймер у бесконечных баффов", "hide_timer_for_infinite_buffs": "Скрыть таймер у бесконечных эффектов",
"hide_total_damage": "Скрыть общий урон", "hide_total_damage": "Скрыть общий урон",
"hide_total_if_total_damage_is_zero": "Скрыть общий урон, если он равен 0", "hide_total_if_total_damage_is_zero": "Скрыть общий урон, если он равен 0",
"hide_undamaged_parts": "Скрыть неповреждённые части тела", "hide_undamaged_parts": "Скрыть неповреждённые части тела",
@@ -215,21 +202,22 @@
"highlighted_buildup_bar": "Помеченная шкала накопления", "highlighted_buildup_bar": "Помеченная шкала накопления",
"highlighted_damage_bar": "Помеченная шкала урона", "highlighted_damage_bar": "Помеченная шкала урона",
"highlighted_targeted": "Помеченный", "highlighted_targeted": "Помеченный",
"history": "History", "history": "История",
"history_size": "History Size", "history_size": "Размер истории",
"horizontal": "Горизонтально", "horizontal": "Горизонтально",
"hotkeys": "Горячие клавиши", "hotkeys": "Горячие клавиши",
"hunter_rank": "Ранг охотника", "hunter_rank": "Ранг охотника",
"hunter_rank_label": "Метка ранга охотника", "hunter_rank_label": "Метка ранга охотника",
"ice_resistance_label": "Ice Resistance Label", "ice_resistance_label": "Метка сопротивления льду",
"id": "ID", "id": "ID",
"in_lobby": "В лобби", "in_lobby": "В лобби",
"in_training_area": "В тренировочной зоне", "in_training_area": "В тренировочной зоне",
"include": "Элементы", "include": "Элементы",
"infinite_buffs_location": "Позиция бесконечных эффектов",
"inside": "Внутри", "inside": "Внутри",
"installations": "Установки", "installations": "Установки",
"italic": "Курсив", "italic": "Курсив",
"item_buffs": "Item Buffs", "item_buffs": "Эффекты предметов",
"join_time": "Время присоединения", "join_time": "Время присоединения",
"killcam": "Камера смерти", "killcam": "Камера смерти",
"kunai": "Кунаи", "kunai": "Кунаи",
@@ -253,10 +241,10 @@
"max_monster_updates_per_tick": "Макс. кол-во обновлений за тик", "max_monster_updates_per_tick": "Макс. кол-во обновлений за тик",
"max_value": "Максимальное значение", "max_value": "Максимальное значение",
"me": "Я", "me": "Я",
"melody_effects": "Melody Effects", "melody_effects": "Эффекты мелодии",
"menu_font": "Шрифт меню", "menu_font": "Шрифт меню",
"menu_font_change_disclaimer": "Изменение языка и размера шрифта меню несколько раз приведёт к вылету!", "menu_font_change_disclaimer": "Изменение языка и размера шрифта меню несколько раз приведёт к вылету!",
"misc_buffs": "Misc Buffs", "misc_buffs": "Разные эффекты",
"mod_name": "MHR Overlay", "mod_name": "MHR Overlay",
"mode": "Режим", "mode": "Режим",
"modifiers": "Модификаторы", "modifiers": "Модификаторы",
@@ -282,7 +270,7 @@
"other": "Другое", "other": "Другое",
"other_player_otomos": "Спутники других игроков", "other_player_otomos": "Спутники других игроков",
"other_players": "Другие игроки", "other_players": "Другие игроки",
"otomo_moves": "Buddy Moves", "otomo_moves": "Навыки спутника",
"otomos": "Спутники", "otomos": "Спутники",
"outline": "Обводка", "outline": "Обводка",
"outside": "Снаружи", "outside": "Снаружи",
@@ -306,7 +294,7 @@
"quest_start_animation": "Анимация начала квеста", "quest_start_animation": "Анимация начала квеста",
"quest_time": "Время квеста", "quest_time": "Время квеста",
"rage": "Ярость", "rage": "Ярость",
"rampage_skills": "Rampage Skills", "rampage_skills": "Навыки буйства",
"reframework_outdated": "Установленная версия REFramework устарела. Пожалуйста, обновитесь, иначе MHR Overlay будет работать некорректно.", "reframework_outdated": "Установленная версия REFramework устарела. Пожалуйста, обновитесь, иначе MHR Overlay будет работать некорректно.",
"relative_offset": "Относительный сдвиг", "relative_offset": "Относительный сдвиг",
"rename": "Переименовать", "rename": "Переименовать",
@@ -329,29 +317,30 @@
"show_other_player_otomos_separately": "Показывать спутников других игроков отдельно", "show_other_player_otomos_separately": "Показывать спутников других игроков отдельно",
"show_servant_otomos_separately": "Показывать спутников последователей отдельно", "show_servant_otomos_separately": "Показывать спутников последователей отдельно",
"size": "Размер", "size": "Размер",
"skills": "Skills", "skills": "Навыки",
"small_monster_UI": "Интерфейс малых монстров", "small_monster_UI": "Интерфейс малых монстров",
"small_monsters": "Малые монстры", "small_monsters": "Малые монстры",
"sorting": "Сортировка", "sorting": "Сортировка",
"spacing": "Расстояние между элементами", "spacing": "Расстояние между элементами",
"stamina": "Выносливость", "stamina": "Выносливость",
"stamina_label": "Stamina Label", "stamina_label": "Метка выносливости",
"static_orientation": "Статичная ориентация", "static_orientation": "Статичная ориентация",
"static_position": "Статичное расположение", "static_position": "Статичное расположение",
"static_sorting": "Статичная сортировка", "static_sorting": "Статичная сортировка",
"static_spacing": "Статичное расстояние между элементами", "static_spacing": "Статичное расстояние между элементами",
"statically_positioned": "Рассположенный статично", "statically_positioned": "Рассположенный статично",
"stats_UI": "Stats UI", "stats_UI": "Интерфейс статуса",
"status": "Статус", "status": "Статус",
"style": "Стиль", "style": "Стиль",
"summary_screen": "Экран Результатов", "summary_screen": "Экран результатов",
"text_label": "Текстовая метка", "text_label": "Текстовая метка",
"thickness": "Толщина", "thickness": "Толщина",
"thunder_resistance_label": "Thunder Resistance Label", "thunder_resistance_label": "Метка сопротивления грозе",
"time_UI": "Интерфейс времени", "time_UI": "Интерфейс времени",
"time_label": "Метка времени", "time_label": "Метка времени",
"time_limit": "Ограничение по времени (cек.)", "time_limit": "Ограничение по времени (cек.)",
"timer": "Таймер", "timer": "Таймер",
"timer_delays": "Задержка таймеров",
"timer_label": "Метка таймера", "timer_label": "Метка таймера",
"top_buildup": "Наибольшее накопление", "top_buildup": "Наибольшее накопление",
"top_damage": "Наибольший урон", "top_damage": "Наибольший урон",
@@ -374,14 +363,22 @@
"tracked_damage_types": "Отслеживаемые типы урона", "tracked_damage_types": "Отслеживаемые типы урона",
"tracked_monster_types": "Отслеживаемые типы монстров", "tracked_monster_types": "Отслеживаемые типы монстров",
"type": "Тип", "type": "Тип",
"update_buffs_delay": "Обновление эффектов (cек.)",
"update_is_online_delay": "Обновление онлайн статуса (cек.)",
"update_myself_position_delay": "Обновление собственных координат (cек.)",
"update_player_info_delay": "Обновление информации об игроке (cек.)",
"update_players_delay": "Обновление списка игроков (cек.)",
"update_quest_time_delay": "Обновление продолжительности задания (cек.)",
"update_singletons_delay": "Обновление синглтонов (cек.)",
"update_window_size_delay": "Обновление размеров окна (cек.)",
"use_d2d_if_available": "Использовать Direct2D, если доступен", "use_d2d_if_available": "Использовать Direct2D, если доступен",
"value": "Value", "value": "Значение",
"value_label": "Метка значений", "value_label": "Метка значений",
"vertical": "Вертикально", "vertical": "Вертикально",
"viewport_offset": "Сдвиг в экранном пространстве", "viewport_offset": "Сдвиг в экранном пространстве",
"visible": "Включить", "visible": "Включить",
"water_resistance_label": "Water Resistance Label", "water_resistance_label": "Метка сопротивления воде",
"weapon_skills": "Weapon Skills", "weapon_skills": "Навыки оружия",
"width": "Ширина", "width": "Ширина",
"world_offset": "Сдвиг в игровом пространстве", "world_offset": "Сдвиг в игровом пространстве",
"wyvern_riding": "Езда на виверне", "wyvern_riding": "Езда на виверне",
@@ -390,97 +387,87 @@
"z": "Z" "z": "Z"
}, },
"dango_skills": { "dango_skills": {
"dango_insurance_defense_up": "Dango Insurance Defense Up" "dango_adrenaline": "Данго-адреналин",
"dango_booster": "Данго-усилитель",
"dango_bulker": "Данго-пижон",
"dango_connector": "Данго-сцепщик",
"dango_defender": "Данго-защитник",
"dango_flyer": "Данго-пилот",
"dango_glutton": "Данго-обжора",
"dango_hunter": "Данго-охотник",
"dango_insurance": "Данго-страховщик",
"dango_insurance_defense_up": "Данго-страховщик: усил. защиты",
"super_recovery_dango": "Супервосстан. данго"
}, },
"dangos": { "endemic_life": {
"dango_adrenaline": "Dango Adrenaline", "butterflame": "Огнебабочка",
"dango_bombardier": "Dango Bombardier", "clothfly": "Тканебабочка",
"dango_booster": "Dango Booster", "cutterfly": "Стрекоза-нож",
"dango_bulker": "Dango Bulker", "gold_wirebug": "Золотой Протожук",
"dango_connector": "Dango Connector", "peepersects": "Глазобабочки",
"dango_defender": "Dango Defender", "red_lampsquid": "Крс. Лампокальм.",
"dango_defender_hi": "Dango Defender (Hi)", "ruby_wirebug": "Рубиновый Протожук",
"dango_deflector": "Dango Deflector", "stinkmink": "Пахучка",
"dango_dragon_res": "Dango Dragon Res", "yellow_lampsquid": "Жлт. Лампокальм."
"dango_dragon_res_hi": "Dango Dragon Res (Hi)", },
"dango_driver": "Dango Driver", "font_name": "NotoSans-Bold.otf",
"dango_feet": "Dango Feet", "item_buffs": {
"dango_fighter": "Dango Fighter", "adamant_seed": "Адамант. зерно",
"dango_fire_res": "Dango Fire Res", "armor_ammo": "Защитные снаряды",
"dango_fire_res_hi": "Dango Fire Res (Hi)", "armorskin": "Бронир. кожа",
"dango_flyer": "Dango Flyer", "dash_juice": "Сок бодрости",
"dango_glutton": "Dango Glutton", "demon_ammo": "Демон. снаряды",
"dango_guard": "Dango Guard", "demon_powder": "Демон. порошок",
"dango_hunter": "Dango Hunter", "demondrug": "Демон. снадобье",
"dango_hurler": "Dango Hurler", "gourmet_fish": "Вкусная рыба",
"dango_ice_res": "Dango Ice Res", "hardshell_powder": "Пор. из скорлупы",
"dango_ice_res_hi": "Dango Ice Res (Hi)", "immunizer": "Иммунатор",
"dango_immunizer": "Dango Immunizer", "mega_armorskin": "Мегабронир. кожа",
"dango_insurance": "Dango Insurance", "mega_demondrug": "Мегадемон. снад.",
"dango_insurance_defense_up": "Dango Insurance Defense Up", "might_seed": "Зер. могущества"
"dango_marksman": "Dango Marksman",
"dango_medic": "Dango Medic",
"dango_medic_hi": "Dango Medic (Hi)",
"dango_moxie": "Dango Moxie",
"dango_polisher": "Dango Polisher",
"dango_pyro": "Dango Pyro",
"dango_reviver": "Dango Reviver",
"dango_rider": "Dango Rider",
"dango_shifter": "Dango Shifter",
"dango_slugger": "Dango Slugger",
"dango_specialist": "Dango Specialist",
"dango_temper": "Dango Temper",
"dango_thunder_res": "Dango Thunder Res ",
"dango_thunder_res_hi": "Dango Thunder Res (Hi)",
"dango_wall_runner": "Dango Wall Runner",
"dango_water_res": "Dango Water Res",
"dango_water_res_hi": "Dango Water Res (Hi)",
"dango_weakener": "Dango Weakener",
"super_recovery_dango": "Super Recovery Dango"
}, },
"font_name": "NotoSansKR-Bold.otf",
"melody_effects": { "melody_effects": {
"affinity_up": "Affinity Up", "affinity_up": "Усиление мастерства",
"attack_and_affinity_up": "Attack and Affinity Up", "attack_and_affinity_up": "Усиление атаки и мастерства",
"attack_and_defense_up": "Attack and Defense Up", "attack_and_defense_up": "Усиление атаки и защиты",
"attack_up": "Attack Up", "attack_up": "Усиление атаки",
"blight_negated": "Blight Negated", "blight_negated": "Снятие порчи",
"defense_up": "Defense Up", "defense_up": "Усиление защиты",
"divine_protection": "Divine Protection", "divine_protection": "Божественная защита",
"earplugs_l": "Earplugs (L)", "earplugs_l": "Наушники (L)",
"earplugs_s": "Earplugs (S)", "earplugs_s": "Наушники (S)",
"elemental_attack_boost": "Elemental Attack Boost", "elemental_attack_boost": "Усиление атаки стихией",
"environment_damage_negated": "Environment Damage Negated", "environment_damage_negated": "Отмена урона окружением",
"health_recovery_l": "Health Recovery (L)", "health_recovery_l": "Восст. здоровья (L)",
"health_recovery_s": "Health Recovery (S)", "health_recovery_s": "Восст. здоровья (S)",
"health_recovery_s_antidote": "Health Recovery (S) + Antidote", "health_recovery_s_antidote": "Восст. здоровья (S) + по-ядие",
"health_regeneration": "Health Regeneration", "health_regeneration": "Регенерация ",
"infernal_melody": "Infernal Melody", "infernal_melody": "Песня яростного пламени",
"knockbacks_negated": "Knockbacks Negated", "knockbacks_negated": "Нейтрализация сбив. с ног",
"self_improvement": "Self-Improvement", "self_improvement": "Самосовершенствование",
"sharpness_extension": "Sharpness Extension", "sharpness_extension": "Увеличение остроты",
"sharpness_loss_reduced": "Sharpness Loss Reduced", "sharpness_loss_reduced": "Замедление затупления",
"sharpness_regeneration": "Sharpness Regeneration", "sharpness_regeneration": "Регенерация остроты",
"sonic_barrier": "Sonic Barrier", "sonic_barrier": "Звуковой барьер",
"sonic_wave": "Sonic Wave", "sonic_wave": "Звуковая волна",
"stamina_recovery_up": "Stamina Recovery Up", "stamina_recovery_up": "Улучш. восст. выносливости",
"stamina_use_reduced": "Stamina Use Reduced", "stamina_use_reduced": "Усиление выносливости",
"stun_negated": "Stun Negated", "stun_negated": "Нейтрализация оглушения",
"tremors_negated": "Tremors Negated", "tremors_negated": "Нейтрализация тряски",
"wind_pressure_negated": "Wind Pressure Negated" "wind_pressure_negated": "Отмена давления ветра"
}, },
"misc_buffs": { "misc_buffs": {
"attack_up": "Attack Up", "attack_up": "Усиление атаки",
"defense_down": "Defense Down", "defense_up": "Усиление защиты",
"defense_up": "Defense Up", "immunity": "Устойчивость",
"immunity": "Immunity", "natural_healing_up": "Естественное лечение",
"natural_healing_up": "Natural Healing Up", "stamina_use_down": "Уменьшение расхода выносливости"
"stamina_use_down": "Stamina Use Down"
}, },
"otomo_moves": { "otomo_moves": {
"go_fight_win": "Go, Fight, Win", "go_fight_win": "Сражайся, побеждай",
"power_drum": "Power Drum", "power_drum": "Барабан силы",
"rousing_roar": "Rousing Roar" "rousing_roar": "Воодушевляющий рев",
"vase_of_vitality": "Ваза живучести"
}, },
"parts": { "parts": {
"abdomen": "Брюхо", "abdomen": "Брюхо",
@@ -551,138 +538,169 @@
"wingclaws": "Крыло-коготь", "wingclaws": "Крыло-коготь",
"wings": "Крылья" "wings": "Крылья"
}, },
"rampage_skills": {
"chameleos_soul": "Душа Хамелеоса",
"kushala_daora_soul": "Душа Кушалы Даоры"
},
"skills": { "skills": {
"adrenaline_rush": "Adrenaline Rush", "adrenaline_rush": "Прилив адреналина",
"affinity_sliding": "Affinity Sliding", "affinity_sliding": "Мастерский подкат",
"agitator": "Agitator", "agitator": "Подстрекатель",
"bladescale_hone": "Bladescale Hone", "berserk": "Безумец",
"bloodlust": "Bloodlust", "bladescale_hone": "Острая чешуя",
"burst": "Burst", "blood_awakening": "Пробуждение крови",
"coalescence": "Coalescence", "bloodlust": "Кровожадность",
"counterstrike": "Counterstrike", "burst": "Выброс",
"dereliction": "Dereliction", "coalescence": "Сращивание",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up", "counterstrike": "Контрудар",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up", "dereliction": "Упущение",
"dragonheart": "Dragonheart", "dragon_conversion_elemental_attack_up": "Преобраз-е дракона: усил. эл. атаки",
"frenzied_bloodlust": "Frenzied Bloodlust", "dragon_conversion_elemental_res_up": "Преобраз-е дракона: усил. сопротивл.",
"furious": "Furious", "dragonheart": "Драконье сердце",
"grinder_s": "Grinder (S)", "embolden": "Воодушевление",
"heaven_sent": "Heaven-Sent", "frenzied_bloodlust": "Буйная кровожадность",
"hellfire_cloak": "Hellfire Cloak", "furious": "Гнев",
"heroics": "Heroics", "grinder_s": "Дробилка (S)",
"intrepid_heart": "Intrepid Heart", "heaven_sent": "Божий посланник",
"kushala_daora_soul": "Kushala Daora Soul", "hellfire_cloak": "Завеса ад. пламени",
"latent_power": "Latent Power", "heroics": "Героизм",
"maximum_might": "Maximum Might", "inspiration": "Вдохновение",
"offensive_guard": "Offensive Guard", "intrepid_heart": "бесстрашное сердце",
"peak_performance": "Peak Performance", "latent_power": "Скрытая энергия",
"powder_mantle_blue": "Powder Mantle (Blue)", "maximum_might": "Макс. могущество",
"powder_mantle_red": "Powder Mantle (Red)", "offensive_guard": "Агрессивная защита",
"protective_polish": "Protective Polish", "partbreaker": "Рассекатель",
"resentment": "Resentment", "peak_performance": "На высоте",
"resuscitate": "Resuscitate", "powder_mantle_blue": "Порошковый покров (синий)",
"spiribirds_call": "Spiribird's Call", "powder_mantle_red": "Порошковый покров (красный)",
"status_trigger": "Status Trigger", "protective_polish": "Защитная полировка",
"wall_runner": "Wall Runner", "resentment": "Презрение",
"wind_mantle": "Wind Mantle" "resuscitate": "Оживление",
"spiribirds_call": "Зов Духоптицы",
"status_trigger": "Смена статуса",
"strife": "Борьба",
"wall_runner": "Бегун по стенам",
"wind_mantle": "Мантия ветра"
}, },
"stats": { "stats": {
"affinity": "Affinity", "affinity": "Мастерство",
"attack": "Attack", "attack": "Атака",
"defense": "Defense", "defense": "Защита",
"dragon": "Dragon", "dragon": "Дракон",
"dragon_resistance": "Dragon Res", "dragon_resistance": "Сопрот. дракону",
"fire": "Fire", "fire": "Огонь",
"fire_resistance": "Fire Res", "fire_resistance": "Сопрот. огню",
"ice": "Ice", "ice": "Лед",
"ice_resistance": "Ice Res", "ice_resistance": "Сопрот. льду",
"stamina": "Stamina", "stamina": "Выносливость",
"thunder": "Thunder", "thunder": "Гроза",
"thunder_resistance": "Thunder Res", "thunder_resistance": "Сопрот. грозе",
"water": "Water", "water": "Вода",
"water_resistance": "Water Res" "water_resistance": "Сопрот. воде"
}, },
"unicode_glyph_ranges": [ "unicode_glyph_ranges": [
32, 32,
255, 255,
256,
383,
1024, 1024,
1241, 1327,
7680,
7935,
8192, 8192,
8303, 8303,
65280, 65280,
65519, 65519,
0, 0,
12543, 64255,
12592, 65072,
12687, 65103,
12784,
12799,
19968,
40879,
44032,
55215,
65280, 65280,
65519, 65519,
0,
65519,
0 0
], ],
"weapon_skills": { "weapon_skills": {
"all_extracts_mix": "All Extracts Mix", "bow": {
"amped_state": "Amped State", "arc_shot_affinity": "Выстрел дугой: мастерство",
"anchor_rage": "Anchor Rage", "arc_shot_brace": "Выстрел дугой: сгруппир.",
"arc_shot_affinity": "Arc Shot: Affinity", "bolt_boost": "Усиление снарядов",
"arc_shot_brace": "Arc Shot: Brace", "herculean_draw": "Натяжение Геркулеса"
"archdemon_mode": "Archdemon Mode", },
"axe_heavy_slam": "Axe: Heavy Slam", "charge_blade": {
"bead_of_resonance": "Bead of Resonance", "element_boost": "Усиление стихии",
"bolt_boost": "Bolt Boost", "sword_boost_mode": "Режим усиления меча"
"counter_charger": "Counter Charger", },
"destroyer_oil": "Destroyer Oil", "dual_blades": {
"element_boost": "Element Boost", "archdemon_mode": "Режим архидемона",
"erupting_cannon": "Erupting Cannon", "ironshine_silk": "Блестящий шелк"
"fanning_maneuver": "Fannin Maneuver", },
"ground_splitter": "Ground Splitter", "great_sword": {
"harvest_moon": "Harvest Moon", "power_sheathe": "Мощное убирание оружия"
"herculean_draw": "Herculean Draw", },
"iai_slash": "Iai Slash", "gunlance": {
"impact_burst": "Impact Burst", "erupting_cannon": "Вулканическая пушка",
"ironshine_silk": "Ironshine Silk", "ground_splitter": "Раскол земли"
"orange_extract": "O Extract", },
"overheat": "Overheat", "hammer": {
"power_sheathe": "Power Sheathe", "impact_burst": "Взрыв от удара"
"red_extract": "Red Extract", },
"rising_moon": "Rising Moon", "heavy_bowgun": {
"setting_sun": "Setting Sun", "counter_charger": "Заряженная контратака",
"shield_charge": "Shield Charge", "overheat": "Перегрев",
"silkbind_shockwave": "Silkbind Shockwave", "rising_moon": "Восходящая луна",
"soaring_kick": "Soaring Kick", "setting_sun": "Заходящее солнце",
"sonic_bloom": "Sonic Bloom", "wyvernsnipe_reload": "Перезарядка меткости виверны"
"spiral_thrust": "Spiral Thrust", },
"spirit_gauge": "Spirit Gauge", "hunting_horn": {
"spirit_gauge_autofill": "Spirit Gauge Autofill", "bead_of_resonance": "Бусина резонанса",
"switch_charger": "Switch Charger", "silkbind_shockwave": "Волна паутины",
"sword_boost_mode": "Sword Boost Mode", "sonic_bloom": "Звуковой цветов"
"sword_charge": "Sword Charge", },
"twin_wine": "Twin Wine", "insect_glaive": {
"white_extract": "White Extract", "all_extracts_mix": "Смесь всех экстрактов",
"wyvernblast_reload": "Wyvernblast Reload", "orange_extract": "Оранжевый экстракт",
"wyvernsnipe_reload": "Wyvernsnipe Reload" "red_extract": "Красный экстракт",
"white_extract": "Белый экстракт"
},
"lance": {
"anchor_rage": "Опорный гнев",
"spiral_thrust": "Спиральный выпад",
"twin_wine": "Побеги-близнецы"
},
"light_bowgun": {
"fanning_maneuver": "Веерный маневр",
"wyvernblast_reload": "Перезарядка взрыва виверны"
},
"long_sword": {
"harvest_moon": "Луна урожая",
"iai_slash": "Удар на выхвате",
"soaring_kick": "Парящий удар ногой",
"spirit_gauge": "Шкала духа",
"spirit_gauge_autofill": "Самозаполнение шкалы духа"
},
"switch_axe": {
"amped_state": "Усил. состояние",
"axe_heavy_slam": "Топор: Неистовый удар",
"switch_charger": "Выкидной заряд"
},
"sword_and_shield": {
"destroyer_oil": "Масло уничтожения"
}
}, },
"weapons": { "weapons": {
"bow": "Bow", "bow": "Лук",
"charge_blade": "Charge Blade", "charge_blade": "Силовой клинок",
"dual_blades": "Dual Blades", "dual_blades": "Два клинка",
"great_sword": "Great Sword", "great_sword": "Двуручный меч",
"gunlance": "Gunlance", "gunlance": "Копьепушка",
"hammer": "Hammer", "hammer": "Молот",
"heavy_bowgun": "Heavy Bowgun", "heavy_bowgun": "Тяжелое лукорудие",
"hunting_horn": "Hunting Horn", "hunting_horn": "Охотничий рог",
"insect_glaive": "Insect Glaive", "insect_glaive": "Глефа насекомых",
"lance": "Lance", "lance": "Копье",
"light_bowgun": "Light Bowgun", "light_bowgun": "Легкое лукорудие",
"long_sword": "Long Sword", "long_sword": "Бастард",
"switch_axe": "Switch Axe", "switch_axe": "Выкидной топор",
"sword_and_shield": "Sword & Shield" "sword_and_shield": "Меч и щит"
} }
} }

View File

@@ -3,10 +3,10 @@
"HP": "生命:", "HP": "生命:",
"buildup": "积累值:", "buildup": "积累值:",
"gold": "金冠", "gold": "金冠",
"lv": "Lv.", "lv": "",
"mini": "小型", "mini": "小型",
"otomo": "随从", "otomo": "随从",
"part_anomaly_core": "怪异核", "part_anomaly_core": "Anomaly Core",
"part_break": "部位破坏", "part_break": "部位破坏",
"part_sever": "部位切断", "part_sever": "部位切断",
"player": "玩家", "player": "玩家",
@@ -22,7 +22,6 @@
"blastblight": "Blastblight", "blastblight": "Blastblight",
"bleeding": "Bleeding", "bleeding": "Bleeding",
"bloodblight": "Bloodblight", "bloodblight": "Bloodblight",
"bubbleblight": "Bubbleblight",
"deadly_poison": "Deadly Poison", "deadly_poison": "Deadly Poison",
"defense_down": "Defense Down", "defense_down": "Defense Down",
"dragonblight": "Dragonblight", "dragonblight": "Dragonblight",
@@ -62,19 +61,6 @@
"waterblight": "水异常状态", "waterblight": "水异常状态",
"webbed": "Webbed" "webbed": "Webbed"
}, },
"consumables": {
"adamant_seed": "Adamant Seed",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
},
"customization_menu": { "customization_menu": {
"UI_font": "UI字体", "UI_font": "UI字体",
"UI_font_notice": "当更改字体时,请重新加载脚本!", "UI_font_notice": "当更改字体时,请重新加载脚本!",
@@ -88,10 +74,10 @@
"ailments": "状态异常", "ailments": "状态异常",
"all_UI": "所有UI", "all_UI": "所有UI",
"anchor": "锚点", "anchor": "锚点",
"anomaly_cores": "怪异核", "anomaly_cores": "Anomaly Cores",
"anomaly_filter": "怪异核", "anomaly_filter": "Anomaly Core",
"anomaly_health": "怪异核破坏值", "anomaly_health": "Anomaly Core Health",
"anomaly_health_percentage": "怪异核破坏百分比", "anomaly_health_percentage": "Anomaly Core Health Percentage",
"apply": "应用", "apply": "应用",
"assign_new_key": "指定新按键", "assign_new_key": "指定新按键",
"attack_label": "Attack Label", "attack_label": "Attack Label",
@@ -101,17 +87,17 @@
"blast": "爆破", "blast": "爆破",
"body_parts": "身体部位", "body_parts": "身体部位",
"bold": "粗体", "bold": "粗体",
"bombs": "爆桶", "bombs": "Bombs",
"bottom_left": "左下", "bottom_left": "左下",
"bottom_right": "右下", "bottom_right": "右下",
"bottom_to_top": "从下到上", "bottom_to_top": "Bottom to Top",
"break_anomaly_filter": "破坏+怪异核", "break_anomaly_filter": "Break + Anomaly Core",
"break_count": "破坏次数", "break_count": "破坏次数",
"break_filter": "破坏", "break_filter": "破坏",
"break_health": "破坏值", "break_health": "破坏值",
"break_health_percentage": "破坏值百分比", "break_health_percentage": "破坏值百分比",
"break_max_count": "最大破坏次数", "break_max_count": "最大破坏次数",
"break_sever_anomaly_filter": "破坏+切断+怪异核", "break_sever_anomaly_filter": "Break + Sever + Anomaly Core",
"break_sever_filter": "破坏+切断", "break_sever_filter": "破坏+切断",
"buff_UI": "Buff UI", "buff_UI": "Buff UI",
"buildup": "积累值", "buildup": "积累值",
@@ -143,7 +129,6 @@
"damage_value_label": "伤害量标签", "damage_value_label": "伤害量标签",
"dango_skills": "Dango Skills", "dango_skills": "Dango Skills",
"debug": "Debug", "debug": "Debug",
"debug_errors": "Debug Errors",
"default_state": "默认阶段", "default_state": "默认阶段",
"defense_label": "Defense Label", "defense_label": "Defense Label",
"delete": "删除", "delete": "删除",
@@ -156,18 +141,19 @@
"duration": "持续时间", "duration": "持续时间",
"dynamic_positioning": "动态位置", "dynamic_positioning": "动态位置",
"dynamically_positioned": "动态位置", "dynamically_positioned": "动态位置",
"effect_level": "Effect Level",
"element_2_label": "Element 2 Label", "element_2_label": "Element 2 Label",
"element_label": "Element Label", "element_label": "Element Label",
"enable_for": "开启", "enable_for": "开启",
"enabled": "开启", "enabled": "开启",
"endemic_life": "环境生物", "endemic_life": "Endemic Life",
"endemic_life_UI": "环境生物UI", "endemic_life_UI": "环境生物UI",
"endemic_life_buffs": "Endemic Life Buffs", "endemic_life_buffs": "Endemic Life Buffs",
"everything_seems_to_be_ok": "Everything seems to be OK!", "everything_seems_to_be_ok": "Everything seems to be OK!",
"family": "字体", "family": "字体",
"farthest": "最远", "farthest": "最远",
"fight_time": "战斗时间", "fight_time": "战斗时间",
"fill_direction": "填充方向", "fill_direction": "Fill Direction",
"filter": "筛选器", "filter": "筛选器",
"filter_mode": "筛选方式", "filter_mode": "筛选方式",
"fire_resistance_label": "Fire Resistance Label", "fire_resistance_label": "Fire Resistance Label",
@@ -179,16 +165,17 @@
"global_position_modifier": "全局位置更改", "global_position_modifier": "全局位置更改",
"global_scale_modifier": "全局比例更改", "global_scale_modifier": "全局比例更改",
"global_settings": "全局设定", "global_settings": "全局设定",
"head_tracking": "Head Tracking",
"health": "生命", "health": "生命",
"health_anomaly_filter": "生命+怪异核", "health_anomaly_filter": "Health + Anomaly Core",
"health_break_anomaly_filter": "生命+破坏+怪异核", "health_break_anomaly_filter": "Health + Break + Anomaly Core",
"health_break_filter": "生命+破坏", "health_break_filter": "生命+破坏",
"health_break_sever_anomaly_filter": "生命+破坏+切断+怪异核", "health_break_sever_anomaly_filter": "Health + Break + Sever + Anomaly Core",
"health_break_sever_filter": "生命+破坏+切断", "health_break_sever_filter": "生命+破坏+切断",
"health_filter": "生命", "health_filter": "生命",
"health_label": "Health Label", "health_label": "Health Label",
"health_percentage": "生命百分比", "health_percentage": "生命百分比",
"health_sever_anomaly_filter": "生命+切断+怪异核", "health_sever_anomaly_filter": "Health + Sever + Anomaly Core",
"health_sever_filter": "生命+切断", "health_sever_filter": "生命+切断",
"height": "高度", "height": "高度",
"hide_ailments_with_zero_buildup": "当积累值为0时隐藏该状态异常", "hide_ailments_with_zero_buildup": "当积累值为0时隐藏该状态异常",
@@ -226,13 +213,14 @@
"in_lobby": "在大厅", "in_lobby": "在大厅",
"in_training_area": "在修炼场", "in_training_area": "在修炼场",
"include": "包含", "include": "包含",
"infinite_buffs_location": "Infinite Buffs Location",
"inside": "里面", "inside": "里面",
"installations": "狩猎设备", "installations": "Installations",
"italic": "斜体", "italic": "斜体",
"item_buffs": "Item Buffs", "item_buffs": "Item Buffs",
"join_time": "加入时间", "join_time": "加入时间",
"killcam": "击杀镜头", "killcam": "击杀镜头",
"kunai": "苦无", "kunai": "Kunai",
"language": "语言", "language": "语言",
"large_monster_UI": "大型怪物UI", "large_monster_UI": "大型怪物UI",
"large_monster_dynamic_UI": "大型怪物浮动UI", "large_monster_dynamic_UI": "大型怪物浮动UI",
@@ -240,7 +228,7 @@
"large_monster_static_UI": "大型怪物固定UI", "large_monster_static_UI": "大型怪物固定UI",
"large_monsters": "大型怪物群", "large_monsters": "大型怪物群",
"last": "最后", "last": "最后",
"left_to_right": "从左到右", "left_to_right": "Left to Right",
"level": "等级", "level": "等级",
"level_label": "等级标签", "level_label": "等级标签",
"loading_quest": "任务加载中", "loading_quest": "任务加载中",
@@ -266,7 +254,7 @@
"monster_id": "怪物ID", "monster_id": "怪物ID",
"monster_name": "怪物名", "monster_name": "怪物名",
"monster_name_label": "怪物名标签", "monster_name_label": "怪物名标签",
"monsters": "怪物", "monsters": "Monsters",
"my_damage_bar_location": "我的伤害条位置", "my_damage_bar_location": "我的伤害条位置",
"my_otomos": "我的随从", "my_otomos": "我的随从",
"myself": "我自己", "myself": "我自己",
@@ -279,11 +267,11 @@
"offset_is_relative_to_parts": "根据部位偏移", "offset_is_relative_to_parts": "根据部位偏移",
"opacity_falloff": "透明度增加", "opacity_falloff": "透明度增加",
"orientation": "方向", "orientation": "方向",
"other": "其它", "other": "Other",
"other_player_otomos": "其他玩家的随从", "other_player_otomos": "其他玩家的随从",
"other_players": "其他玩家", "other_players": "其他玩家",
"otomo_moves": "Buddy Moves", "otomo_moves": "Buddy Moves",
"otomos": "随从", "otomos": "Buddies",
"outline": "轮廓", "outline": "轮廓",
"outside": "外面", "outside": "外面",
"part_health": "部位生命值", "part_health": "部位生命值",
@@ -294,7 +282,7 @@
"player_name_label": "玩家名标签", "player_name_label": "玩家名标签",
"player_name_size_limit": "玩家名长度限制", "player_name_size_limit": "玩家名长度限制",
"player_spacing": "玩家间距", "player_spacing": "玩家间距",
"players": "玩家", "players": "Players",
"playing_quest": "操作界面/正常游玩时", "playing_quest": "操作界面/正常游玩时",
"poison": "中毒", "poison": "中毒",
"position": "位置", "position": "位置",
@@ -311,18 +299,18 @@
"relative_offset": "相对偏移", "relative_offset": "相对偏移",
"rename": "重命名", "rename": "重命名",
"render_highlighted_monster": "渲染高亮怪物", "render_highlighted_monster": "渲染高亮怪物",
"render_inactive_anomaly_cores": "渲染不活跃的怪异核", "render_inactive_anomaly_cores": "Render Inactive Anomaly Cores",
"render_not_highlighted_monsters": "渲染非高亮怪物", "render_not_highlighted_monsters": "渲染非高亮怪物",
"renderer": "渲染器", "renderer": "渲染器",
"reset": "重置", "reset": "重置",
"reversed_order": "逆向排序", "reversed_order": "逆向排序",
"reward_screen": "奖励界面", "reward_screen": "奖励界面",
"right_alignment_shift": "右对齐偏移距离", "right_alignment_shift": "Right Alignment Shift",
"right_to_left": "从右到左", "right_to_left": "Right to Left",
"servant_otomos": "盟友随从", "servant_otomos": "盟友随从",
"servants": "盟友", "servants": "盟友",
"settings": "设定", "settings": "设定",
"sever_anomaly_filter": "切断+怪异核", "sever_anomaly_filter": "Sever + Anomaly Core",
"sever_filter": "切断", "sever_filter": "切断",
"shadow": "阴影", "shadow": "阴影",
"show_my_otomos_separately": "分开显示我的随从", "show_my_otomos_separately": "分开显示我的随从",
@@ -352,13 +340,14 @@
"time_label": "时间标签", "time_label": "时间标签",
"time_limit": "时间限制(秒)", "time_limit": "时间限制(秒)",
"timer": "计时器", "timer": "计时器",
"timer_delays": "Timer Delays",
"timer_label": "计时器标签", "timer_label": "计时器标签",
"top_buildup": "最高积累值", "top_buildup": "最高积累值",
"top_damage": "最高伤害", "top_damage": "Top Damage",
"top_dps": "最高DPS", "top_dps": "最高DPS",
"top_left": "左上", "top_left": "左上",
"top_right": "右上", "top_right": "右上",
"top_to_bottom": "从上到下", "top_to_bottom": "Top to Bottom",
"total": "总计", "total": "总计",
"total_buildup": "总积累值", "total_buildup": "总积累值",
"total_buildup_label": "总积累值标签", "total_buildup_label": "总积累值标签",
@@ -374,6 +363,14 @@
"tracked_damage_types": "跟踪的伤害类型", "tracked_damage_types": "跟踪的伤害类型",
"tracked_monster_types": "跟踪的怪物类型", "tracked_monster_types": "跟踪的怪物类型",
"type": "类型", "type": "类型",
"update_buffs_delay": "Update Buffs (seconds)",
"update_is_online_delay": "Update Is Online (seconds)",
"update_myself_position_delay": "Update Myself Position (seconds)",
"update_player_info_delay": "Update Player Info (seconds)",
"update_players_delay": "Update Players (seconds)",
"update_quest_time_delay": "Update Quest Time (seconds)",
"update_singletons_delay": "Update Singletons (seconds)",
"update_window_size_delay": "Update Window Size (seconds)",
"use_d2d_if_available": "可用时使用Direct2D", "use_d2d_if_available": "可用时使用Direct2D",
"value": "Value", "value": "Value",
"value_label": "数字", "value_label": "数字",
@@ -384,61 +381,51 @@
"weapon_skills": "Weapon Skills", "weapon_skills": "Weapon Skills",
"width": "宽度", "width": "宽度",
"world_offset": "整体偏移", "world_offset": "整体偏移",
"wyvern_riding": "御龙", "wyvern_riding": "Wyvern Riding",
"x": "X轴", "x": "X轴",
"y": "Y轴", "y": "Y轴",
"z": "Z轴" "z": "Z轴"
}, },
"dango_skills": { "dango_skills": {
"dango_insurance_defense_up": "Dango Insurance Defense Up"
},
"dangos": {
"dango_adrenaline": "Dango Adrenaline", "dango_adrenaline": "Dango Adrenaline",
"dango_bombardier": "Dango Bombardier",
"dango_booster": "Dango Booster", "dango_booster": "Dango Booster",
"dango_bulker": "Dango Bulker", "dango_bulker": "Dango Bulker",
"dango_connector": "Dango Connector", "dango_connector": "Dango Connector",
"dango_defender": "Dango Defender", "dango_defender": "Dango Defender",
"dango_defender_hi": "Dango Defender (Hi)",
"dango_deflector": "Dango Deflector",
"dango_dragon_res": "Dango Dragon Res",
"dango_dragon_res_hi": "Dango Dragon Res (Hi)",
"dango_driver": "Dango Driver",
"dango_feet": "Dango Feet",
"dango_fighter": "Dango Fighter",
"dango_fire_res": "Dango Fire Res",
"dango_fire_res_hi": "Dango Fire Res (Hi)",
"dango_flyer": "Dango Flyer", "dango_flyer": "Dango Flyer",
"dango_glutton": "Dango Glutton", "dango_glutton": "Dango Glutton",
"dango_guard": "Dango Guard",
"dango_hunter": "Dango Hunter", "dango_hunter": "Dango Hunter",
"dango_hurler": "Dango Hurler",
"dango_ice_res": "Dango Ice Res",
"dango_ice_res_hi": "Dango Ice Res (Hi)",
"dango_immunizer": "Dango Immunizer",
"dango_insurance": "Dango Insurance", "dango_insurance": "Dango Insurance",
"dango_insurance_defense_up": "Dango Insurance Defense Up", "dango_insurance_defense_up": "Dango Insurance Defense Up",
"dango_marksman": "Dango Marksman",
"dango_medic": "Dango Medic",
"dango_medic_hi": "Dango Medic (Hi)",
"dango_moxie": "Dango Moxie",
"dango_polisher": "Dango Polisher",
"dango_pyro": "Dango Pyro",
"dango_reviver": "Dango Reviver",
"dango_rider": "Dango Rider",
"dango_shifter": "Dango Shifter",
"dango_slugger": "Dango Slugger",
"dango_specialist": "Dango Specialist",
"dango_temper": "Dango Temper",
"dango_thunder_res": "Dango Thunder Res ",
"dango_thunder_res_hi": "Dango Thunder Res (Hi)",
"dango_wall_runner": "Dango Wall Runner",
"dango_water_res": "Dango Water Res",
"dango_water_res_hi": "Dango Water Res (Hi)",
"dango_weakener": "Dango Weakener",
"super_recovery_dango": "Super Recovery Dango" "super_recovery_dango": "Super Recovery Dango"
}, },
"endemic_life": {
"butterflame": "Butterflame",
"clothfly": "Clothfly",
"cutterfly": "Cutterfly",
"gold_wirebug": "Gold Wirebug",
"peepersects": "Peepersects",
"red_lampsquid": "Red Lampsquid",
"ruby_wirebug": "Ruby Wirebug",
"stinkmink": "Stinkmink",
"yellow_lampsquid": "Yellow Lampsquid"
},
"font_name": "NotoSansSC-Bold.otf", "font_name": "NotoSansSC-Bold.otf",
"item_buffs": {
"adamant_seed": "Adamant Seed",
"armor_ammo": "Armor Ammo",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_ammo": "Demon Ammo",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
},
"melody_effects": { "melody_effects": {
"affinity_up": "Affinity Up", "affinity_up": "Affinity Up",
"attack_and_affinity_up": "Attack and Affinity Up", "attack_and_affinity_up": "Attack and Affinity Up",
@@ -471,7 +458,6 @@
}, },
"misc_buffs": { "misc_buffs": {
"attack_up": "Attack Up", "attack_up": "Attack Up",
"defense_down": "Defense Down",
"defense_up": "Defense Up", "defense_up": "Defense Up",
"immunity": "Immunity", "immunity": "Immunity",
"natural_healing_up": "Natural Healing Up", "natural_healing_up": "Natural Healing Up",
@@ -480,7 +466,8 @@
"otomo_moves": { "otomo_moves": {
"go_fight_win": "Go, Fight, Win", "go_fight_win": "Go, Fight, Win",
"power_drum": "Power Drum", "power_drum": "Power Drum",
"rousing_roar": "Rousing Roar" "rousing_roar": "Rousing Roar",
"vase_of_vitality": "Vase of Vitality"
}, },
"parts": { "parts": {
"abdomen": "腹部", "abdomen": "腹部",
@@ -551,30 +538,38 @@
"wingclaws": "翼爪", "wingclaws": "翼爪",
"wings": "翼" "wings": "翼"
}, },
"rampage_skills": {
"chameleos_soul": "Chameleos Soul",
"kushala_daora_soul": "Kushala Daora Soul"
},
"skills": { "skills": {
"adrenaline_rush": "Adrenaline Rush", "adrenaline_rush": "Adrenaline Rush",
"affinity_sliding": "Affinity Sliding", "affinity_sliding": "Affinity Sliding",
"agitator": "Agitator", "agitator": "Agitator",
"berserk": "Berserk",
"bladescale_hone": "Bladescale Hone", "bladescale_hone": "Bladescale Hone",
"blood_awakening": "Blood Awakening",
"bloodlust": "Bloodlust", "bloodlust": "Bloodlust",
"burst": "Burst", "burst": "Burst",
"coalescence": "Coalescence", "coalescence": "Coalescence",
"counterstrike": "Counterstrike", "counterstrike": "Counterstrike",
"dereliction": "Dereliction", "dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up", "dragon_conversion_elemental_attack_up": "Dragon Conversion: Elem. Atk Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up", "dragon_conversion_elemental_res_up": "Dragon Conversion: Elem. Res Up",
"dragonheart": "Dragonheart", "dragonheart": "Dragonheart",
"embolden": "Embolden",
"frenzied_bloodlust": "Frenzied Bloodlust", "frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious", "furious": "Furious",
"grinder_s": "Grinder (S)", "grinder_s": "Grinder (S)",
"heaven_sent": "Heaven-Sent", "heaven_sent": "Heaven-Sent",
"hellfire_cloak": "Hellfire Cloak", "hellfire_cloak": "Hellfire Cloak",
"heroics": "Heroics", "heroics": "Heroics",
"inspiration": "Inspiration",
"intrepid_heart": "Intrepid Heart", "intrepid_heart": "Intrepid Heart",
"kushala_daora_soul": "Kushala Daora Soul",
"latent_power": "Latent Power", "latent_power": "Latent Power",
"maximum_might": "Maximum Might", "maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard", "offensive_guard": "Offensive Guard",
"partbreaker": "Partbreaker",
"peak_performance": "Peak Performance", "peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)", "powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)", "powder_mantle_red": "Powder Mantle (Red)",
@@ -583,6 +578,7 @@
"resuscitate": "Resuscitate", "resuscitate": "Resuscitate",
"spiribirds_call": "Spiribird's Call", "spiribirds_call": "Spiribird's Call",
"status_trigger": "Status Trigger", "status_trigger": "Status Trigger",
"strife": "Strife",
"wall_runner": "Wall Runner", "wall_runner": "Wall Runner",
"wind_mantle": "Wind Mantle" "wind_mantle": "Wind Mantle"
}, },
@@ -607,67 +603,89 @@
255, 255,
8192, 8192,
8303, 8303,
11904,
12031,
12288, 12288,
12543, 12351,
12784, 12800,
12799, 19903,
19968, 19968,
40879, 40959,
63744,
64255,
65072,
65103,
65280, 65280,
65519, 65519,
0,
12799,
19968,
40879,
44032,
55215,
65280,
65519,
0,
65519,
0 0
], ],
"weapon_skills": { "weapon_skills": {
"all_extracts_mix": "All Extracts Mix", "bow": {
"amped_state": "Amped State", "arc_shot_affinity": "Arc Shot: Affinity",
"anchor_rage": "Anchor Rage", "arc_shot_brace": "Arc Shot: Brace",
"arc_shot_affinity": "Arc Shot: Affinity", "bolt_boost": "Bolt Boost",
"arc_shot_brace": "Arc Shot: Brace", "herculean_draw": "Herculean Draw"
"archdemon_mode": "Archdemon Mode", },
"axe_heavy_slam": "Axe: Heavy Slam", "charge_blade": {
"bead_of_resonance": "Bead of Resonance", "element_boost": "Element Boost",
"bolt_boost": "Bolt Boost", "sword_boost_mode": "Sword Boost Mode"
"counter_charger": "Counter Charger", },
"destroyer_oil": "Destroyer Oil", "dual_blades": {
"element_boost": "Element Boost", "archdemon_mode": "Archdemon Mode",
"erupting_cannon": "Erupting Cannon", "ironshine_silk": "Ironshine Silk"
"fanning_maneuver": "Fannin Maneuver", },
"ground_splitter": "Ground Splitter", "great_sword": {
"harvest_moon": "Harvest Moon", "power_sheathe": "Power Sheathe"
"herculean_draw": "Herculean Draw", },
"iai_slash": "Iai Slash", "gunlance": {
"impact_burst": "Impact Burst", "erupting_cannon": "Erupting Cannon",
"ironshine_silk": "Ironshine Silk", "ground_splitter": "Ground Splitter"
"orange_extract": "O Extract", },
"overheat": "Overheat", "hammer": {
"power_sheathe": "Power Sheathe", "impact_burst": "Impact Burst"
"red_extract": "Red Extract", },
"rising_moon": "Rising Moon", "heavy_bowgun": {
"setting_sun": "Setting Sun", "counter_charger": "Counter Charger",
"shield_charge": "Shield Charge", "overheat": "Overheat",
"silkbind_shockwave": "Silkbind Shockwave", "rising_moon": "Rising Moon",
"soaring_kick": "Soaring Kick", "setting_sun": "Setting Sun",
"sonic_bloom": "Sonic Bloom", "wyvernsnipe_reload": "Wyvernsnipe Reload"
"spiral_thrust": "Spiral Thrust", },
"spirit_gauge": "Spirit Gauge", "hunting_horn": {
"spirit_gauge_autofill": "Spirit Gauge Autofill", "bead_of_resonance": "Bead of Resonance",
"switch_charger": "Switch Charger", "silkbind_shockwave": "Silkbind Shockwave",
"sword_boost_mode": "Sword Boost Mode", "sonic_bloom": "Sonic Bloom"
"sword_charge": "Sword Charge", },
"twin_wine": "Twin Wine", "insect_glaive": {
"white_extract": "White Extract", "all_extracts_mix": "All Extracts Mix",
"wyvernblast_reload": "Wyvernblast Reload", "orange_extract": "Orange Extract",
"wyvernsnipe_reload": "Wyvernsnipe Reload" "red_extract": "Red Extract",
"white_extract": "White Extract"
},
"lance": {
"anchor_rage": "Anchor Rage",
"spiral_thrust": "Spiral Thrust",
"twin_wine": "Twin Wine"
},
"light_bowgun": {
"fanning_maneuver": "Fanning Maneuver",
"wyvernblast_reload": "Wyvernblast Reload"
},
"long_sword": {
"harvest_moon": "Harvest Moon",
"iai_slash": "Iai Slash",
"soaring_kick": "Soaring Kick",
"spirit_gauge": "Spirit Gauge",
"spirit_gauge_autofill": "Spirit Gauge Autofill"
},
"switch_axe": {
"amped_state": "Amped State",
"axe_heavy_slam": "Axe: Heavy Slam",
"switch_charger": "Switch Charger"
},
"sword_and_shield": {
"destroyer_oil": "Destroyer Oil"
}
}, },
"weapons": { "weapons": {
"bow": "Bow", "bow": "Bow",

View File

@@ -3,7 +3,7 @@
"HP": "生命:", "HP": "生命:",
"buildup": "累積值:", "buildup": "累積值:",
"gold": "金冠", "gold": "金冠",
"lv": "Lv.", "lv": "",
"mini": "小型", "mini": "小型",
"otomo": "Buddy", "otomo": "Buddy",
"part_anomaly_core": "Anomaly Core", "part_anomaly_core": "Anomaly Core",
@@ -22,7 +22,6 @@
"blastblight": "Blastblight", "blastblight": "Blastblight",
"bleeding": "Bleeding", "bleeding": "Bleeding",
"bloodblight": "Bloodblight", "bloodblight": "Bloodblight",
"bubbleblight": "Bubbleblight",
"deadly_poison": "Deadly Poison", "deadly_poison": "Deadly Poison",
"defense_down": "Defense Down", "defense_down": "Defense Down",
"dragonblight": "Dragonblight", "dragonblight": "Dragonblight",
@@ -62,19 +61,6 @@
"waterblight": "水屬性異常", "waterblight": "水屬性異常",
"webbed": "Webbed" "webbed": "Webbed"
}, },
"consumables": {
"adamant_seed": "Adamant Seed",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
},
"customization_menu": { "customization_menu": {
"UI_font": "UI 字型", "UI_font": "UI 字型",
"UI_font_notice": "當更改文字時,請重新載入", "UI_font_notice": "當更改文字時,請重新載入",
@@ -143,7 +129,6 @@
"damage_value_label": "傷害量", "damage_value_label": "傷害量",
"dango_skills": "Dango Skills", "dango_skills": "Dango Skills",
"debug": "Debug", "debug": "Debug",
"debug_errors": "Debug Errors",
"default_state": "Default State", "default_state": "Default State",
"defense_label": "Defense Label", "defense_label": "Defense Label",
"delete": "Delete", "delete": "Delete",
@@ -156,6 +141,7 @@
"duration": "Duration", "duration": "Duration",
"dynamic_positioning": "浮動的資訊位置", "dynamic_positioning": "浮動的資訊位置",
"dynamically_positioned": "浮動的魔物資訊", "dynamically_positioned": "浮動的魔物資訊",
"effect_level": "Effect Level",
"element_2_label": "Element 2 Label", "element_2_label": "Element 2 Label",
"element_label": "Element Label", "element_label": "Element Label",
"enable_for": "啟用對象", "enable_for": "啟用對象",
@@ -179,6 +165,7 @@
"global_position_modifier": "全域位置更改", "global_position_modifier": "全域位置更改",
"global_scale_modifier": "全域比例更改", "global_scale_modifier": "全域比例更改",
"global_settings": "全域設定", "global_settings": "全域設定",
"head_tracking": "Head Tracking",
"health": "血量", "health": "血量",
"health_anomaly_filter": "Health + Anomaly Core", "health_anomaly_filter": "Health + Anomaly Core",
"health_break_anomaly_filter": "Health + Break + Anomaly Core", "health_break_anomaly_filter": "Health + Break + Anomaly Core",
@@ -226,6 +213,7 @@
"in_lobby": "In Lobby", "in_lobby": "In Lobby",
"in_training_area": "In Training Area", "in_training_area": "In Training Area",
"include": "細部資訊調整", "include": "細部資訊調整",
"infinite_buffs_location": "Infinite Buffs Location",
"inside": "內部", "inside": "內部",
"installations": "Installations", "installations": "Installations",
"italic": "斜體", "italic": "斜體",
@@ -352,6 +340,7 @@
"time_label": "時間", "time_label": "時間",
"time_limit": "時限 (秒)", "time_limit": "時限 (秒)",
"timer": "Timer", "timer": "Timer",
"timer_delays": "Timer Delays",
"timer_label": "計時器", "timer_label": "計時器",
"top_buildup": "最高累積值", "top_buildup": "最高累積值",
"top_damage": "最高傷害", "top_damage": "最高傷害",
@@ -374,6 +363,14 @@
"tracked_damage_types": "追蹤的傷害類型", "tracked_damage_types": "追蹤的傷害類型",
"tracked_monster_types": "追蹤的魔物類型", "tracked_monster_types": "追蹤的魔物類型",
"type": "類型", "type": "類型",
"update_buffs_delay": "Update Buffs (seconds)",
"update_is_online_delay": "Update Is Online (seconds)",
"update_myself_position_delay": "Update Myself Position (seconds)",
"update_player_info_delay": "Update Player Info (seconds)",
"update_players_delay": "Update Players (seconds)",
"update_quest_time_delay": "Update Quest Time (seconds)",
"update_singletons_delay": "Update Singletons (seconds)",
"update_window_size_delay": "Update Window Size (seconds)",
"use_d2d_if_available": "Use Direct2D if available", "use_d2d_if_available": "Use Direct2D if available",
"value": "Value", "value": "Value",
"value_label": "數字", "value_label": "數字",
@@ -390,55 +387,45 @@
"z": "Z軸" "z": "Z軸"
}, },
"dango_skills": { "dango_skills": {
"dango_insurance_defense_up": "Dango Insurance Defense Up"
},
"dangos": {
"dango_adrenaline": "Dango Adrenaline", "dango_adrenaline": "Dango Adrenaline",
"dango_bombardier": "Dango Bombardier",
"dango_booster": "Dango Booster", "dango_booster": "Dango Booster",
"dango_bulker": "Dango Bulker", "dango_bulker": "Dango Bulker",
"dango_connector": "Dango Connector", "dango_connector": "Dango Connector",
"dango_defender": "Dango Defender", "dango_defender": "Dango Defender",
"dango_defender_hi": "Dango Defender (Hi)",
"dango_deflector": "Dango Deflector",
"dango_dragon_res": "Dango Dragon Res",
"dango_dragon_res_hi": "Dango Dragon Res (Hi)",
"dango_driver": "Dango Driver",
"dango_feet": "Dango Feet",
"dango_fighter": "Dango Fighter",
"dango_fire_res": "Dango Fire Res",
"dango_fire_res_hi": "Dango Fire Res (Hi)",
"dango_flyer": "Dango Flyer", "dango_flyer": "Dango Flyer",
"dango_glutton": "Dango Glutton", "dango_glutton": "Dango Glutton",
"dango_guard": "Dango Guard",
"dango_hunter": "Dango Hunter", "dango_hunter": "Dango Hunter",
"dango_hurler": "Dango Hurler",
"dango_ice_res": "Dango Ice Res",
"dango_ice_res_hi": "Dango Ice Res (Hi)",
"dango_immunizer": "Dango Immunizer",
"dango_insurance": "Dango Insurance", "dango_insurance": "Dango Insurance",
"dango_insurance_defense_up": "Dango Insurance Defense Up", "dango_insurance_defense_up": "Dango Insurance Defense Up",
"dango_marksman": "Dango Marksman",
"dango_medic": "Dango Medic",
"dango_medic_hi": "Dango Medic (Hi)",
"dango_moxie": "Dango Moxie",
"dango_polisher": "Dango Polisher",
"dango_pyro": "Dango Pyro",
"dango_reviver": "Dango Reviver",
"dango_rider": "Dango Rider",
"dango_shifter": "Dango Shifter",
"dango_slugger": "Dango Slugger",
"dango_specialist": "Dango Specialist",
"dango_temper": "Dango Temper",
"dango_thunder_res": "Dango Thunder Res ",
"dango_thunder_res_hi": "Dango Thunder Res (Hi)",
"dango_wall_runner": "Dango Wall Runner",
"dango_water_res": "Dango Water Res",
"dango_water_res_hi": "Dango Water Res (Hi)",
"dango_weakener": "Dango Weakener",
"super_recovery_dango": "Super Recovery Dango" "super_recovery_dango": "Super Recovery Dango"
}, },
"endemic_life": {
"butterflame": "Butterflame",
"clothfly": "Clothfly",
"cutterfly": "Cutterfly",
"gold_wirebug": "Gold Wirebug",
"peepersects": "Peepersects",
"red_lampsquid": "Red Lampsquid",
"ruby_wirebug": "Ruby Wirebug",
"stinkmink": "Stinkmink",
"yellow_lampsquid": "Yellow Lampsquid"
},
"font_name": "NotoSansTC-Bold.otf", "font_name": "NotoSansTC-Bold.otf",
"item_buffs": {
"adamant_seed": "Adamant Seed",
"armor_ammo": "Armor Ammo",
"armorskin": "Armorskin",
"dash_juice": "Dash Juice",
"demon_ammo": "Demon Ammo",
"demon_powder": "Demon Powder",
"demondrug": "Demondrug",
"gourmet_fish": "Gourmet Fish",
"hardshell_powder": "Hardshell Powder",
"immunizer": "Immunizer",
"mega_armorskin": "Mega Armorskin",
"mega_demondrug": "Mega Demondrug",
"might_seed": "Might Seed"
},
"melody_effects": { "melody_effects": {
"affinity_up": "Affinity Up", "affinity_up": "Affinity Up",
"attack_and_affinity_up": "Attack and Affinity Up", "attack_and_affinity_up": "Attack and Affinity Up",
@@ -471,7 +458,6 @@
}, },
"misc_buffs": { "misc_buffs": {
"attack_up": "Attack Up", "attack_up": "Attack Up",
"defense_down": "Defense Down",
"defense_up": "Defense Up", "defense_up": "Defense Up",
"immunity": "Immunity", "immunity": "Immunity",
"natural_healing_up": "Natural Healing Up", "natural_healing_up": "Natural Healing Up",
@@ -480,7 +466,8 @@
"otomo_moves": { "otomo_moves": {
"go_fight_win": "Go, Fight, Win", "go_fight_win": "Go, Fight, Win",
"power_drum": "Power Drum", "power_drum": "Power Drum",
"rousing_roar": "Rousing Roar" "rousing_roar": "Rousing Roar",
"vase_of_vitality": "Vase of Vitality"
}, },
"parts": { "parts": {
"abdomen": "腹部", "abdomen": "腹部",
@@ -551,30 +538,38 @@
"wingclaws": "翼爪", "wingclaws": "翼爪",
"wings": "翅膀" "wings": "翅膀"
}, },
"rampage_skills": {
"chameleos_soul": "Chameleos Soul",
"kushala_daora_soul": "Kushala Daora Soul"
},
"skills": { "skills": {
"adrenaline_rush": "Adrenaline Rush", "adrenaline_rush": "Adrenaline Rush",
"affinity_sliding": "Affinity Sliding", "affinity_sliding": "Affinity Sliding",
"agitator": "Agitator", "agitator": "Agitator",
"berserk": "Berserk",
"bladescale_hone": "Bladescale Hone", "bladescale_hone": "Bladescale Hone",
"blood_awakening": "Blood Awakening",
"bloodlust": "Bloodlust", "bloodlust": "Bloodlust",
"burst": "Burst", "burst": "Burst",
"coalescence": "Coalescence", "coalescence": "Coalescence",
"counterstrike": "Counterstrike", "counterstrike": "Counterstrike",
"dereliction": "Dereliction", "dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up", "dragon_conversion_elemental_attack_up": "Dragon Conversion: Elem. Atk Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up", "dragon_conversion_elemental_res_up": "Dragon Conversion: Elem. Res Up",
"dragonheart": "Dragonheart", "dragonheart": "Dragonheart",
"embolden": "Embolden",
"frenzied_bloodlust": "Frenzied Bloodlust", "frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious", "furious": "Furious",
"grinder_s": "Grinder (S)", "grinder_s": "Grinder (S)",
"heaven_sent": "Heaven-Sent", "heaven_sent": "Heaven-Sent",
"hellfire_cloak": "Hellfire Cloak", "hellfire_cloak": "Hellfire Cloak",
"heroics": "Heroics", "heroics": "Heroics",
"inspiration": "Inspiration",
"intrepid_heart": "Intrepid Heart", "intrepid_heart": "Intrepid Heart",
"kushala_daora_soul": "Kushala Daora Soul",
"latent_power": "Latent Power", "latent_power": "Latent Power",
"maximum_might": "Maximum Might", "maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard", "offensive_guard": "Offensive Guard",
"partbreaker": "Partbreaker",
"peak_performance": "Peak Performance", "peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)", "powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)", "powder_mantle_red": "Powder Mantle (Red)",
@@ -583,6 +578,7 @@
"resuscitate": "Resuscitate", "resuscitate": "Resuscitate",
"spiribirds_call": "Spiribird's Call", "spiribirds_call": "Spiribird's Call",
"status_trigger": "Status Trigger", "status_trigger": "Status Trigger",
"strife": "Strife",
"wall_runner": "Wall Runner", "wall_runner": "Wall Runner",
"wind_mantle": "Wind Mantle" "wind_mantle": "Wind Mantle"
}, },
@@ -607,67 +603,89 @@
255, 255,
8192, 8192,
8303, 8303,
11904,
12031,
12288, 12288,
12543, 12351,
12784, 12800,
12799, 19903,
19968, 19968,
40879, 40959,
63744,
64255,
65072,
65103,
65280, 65280,
65519, 65519,
0,
12799,
19968,
40879,
44032,
55215,
65280,
65519,
0,
65519,
0 0
], ],
"weapon_skills": { "weapon_skills": {
"all_extracts_mix": "All Extracts Mix", "bow": {
"amped_state": "Amped State", "arc_shot_affinity": "Arc Shot: Affinity",
"anchor_rage": "Anchor Rage", "arc_shot_brace": "Arc Shot: Brace",
"arc_shot_affinity": "Arc Shot: Affinity", "bolt_boost": "Bolt Boost",
"arc_shot_brace": "Arc Shot: Brace", "herculean_draw": "Herculean Draw"
"archdemon_mode": "Archdemon Mode", },
"axe_heavy_slam": "Axe: Heavy Slam", "charge_blade": {
"bead_of_resonance": "Bead of Resonance", "element_boost": "Element Boost",
"bolt_boost": "Bolt Boost", "sword_boost_mode": "Sword Boost Mode"
"counter_charger": "Counter Charger", },
"destroyer_oil": "Destroyer Oil", "dual_blades": {
"element_boost": "Element Boost", "archdemon_mode": "Archdemon Mode",
"erupting_cannon": "Erupting Cannon", "ironshine_silk": "Ironshine Silk"
"fanning_maneuver": "Fannin Maneuver", },
"ground_splitter": "Ground Splitter", "great_sword": {
"harvest_moon": "Harvest Moon", "power_sheathe": "Power Sheathe"
"herculean_draw": "Herculean Draw", },
"iai_slash": "Iai Slash", "gunlance": {
"impact_burst": "Impact Burst", "erupting_cannon": "Erupting Cannon",
"ironshine_silk": "Ironshine Silk", "ground_splitter": "Ground Splitter"
"orange_extract": "O Extract", },
"overheat": "Overheat", "hammer": {
"power_sheathe": "Power Sheathe", "impact_burst": "Impact Burst"
"red_extract": "Red Extract", },
"rising_moon": "Rising Moon", "heavy_bowgun": {
"setting_sun": "Setting Sun", "counter_charger": "Counter Charger",
"shield_charge": "Shield Charge", "overheat": "Overheat",
"silkbind_shockwave": "Silkbind Shockwave", "rising_moon": "Rising Moon",
"soaring_kick": "Soaring Kick", "setting_sun": "Setting Sun",
"sonic_bloom": "Sonic Bloom", "wyvernsnipe_reload": "Wyvernsnipe Reload"
"spiral_thrust": "Spiral Thrust", },
"spirit_gauge": "Spirit Gauge", "hunting_horn": {
"spirit_gauge_autofill": "Spirit Gauge Autofill", "bead_of_resonance": "Bead of Resonance",
"switch_charger": "Switch Charger", "silkbind_shockwave": "Silkbind Shockwave",
"sword_boost_mode": "Sword Boost Mode", "sonic_bloom": "Sonic Bloom"
"sword_charge": "Sword Charge", },
"twin_wine": "Twin Wine", "insect_glaive": {
"white_extract": "White Extract", "all_extracts_mix": "All Extracts Mix",
"wyvernblast_reload": "Wyvernblast Reload", "orange_extract": "Orange Extract",
"wyvernsnipe_reload": "Wyvernsnipe Reload" "red_extract": "Red Extract",
"white_extract": "White Extract"
},
"lance": {
"anchor_rage": "Anchor Rage",
"spiral_thrust": "Spiral Thrust",
"twin_wine": "Twin Wine"
},
"light_bowgun": {
"fanning_maneuver": "Fanning Maneuver",
"wyvernblast_reload": "Wyvernblast Reload"
},
"long_sword": {
"harvest_moon": "Harvest Moon",
"iai_slash": "Iai Slash",
"soaring_kick": "Soaring Kick",
"spirit_gauge": "Spirit Gauge",
"spirit_gauge_autofill": "Spirit Gauge Autofill"
},
"switch_axe": {
"amped_state": "Amped State",
"axe_heavy_slam": "Axe: Heavy Slam",
"switch_charger": "Switch Charger"
},
"sword_and_shield": {
"destroyer_oil": "Destroyer Oil"
}
}, },
"weapons": { "weapons": {
"bow": "Bow", "bow": "Bow",

Binary file not shown.

Binary file not shown.

Binary file not shown.