feat(webui): edit suit invigorations #2478

Merged
Sainan merged 12 commits from nyaoouo/SpaceNinjaServer:ImplEditSuitInvigorationUpgradeController into main 2025-07-14 20:33:38 -07:00
8 changed files with 209 additions and 29 deletions
Showing only changes of commit ac2a239e53 - Show all commits

View File

@ -483,47 +483,47 @@
<div class="card-body">
Sainan marked this conversation as resolved
Review

All your strings should be added to the translation system. And let's not lowercase a title? 😒

All your strings should be added to the translation system. And let's not lowercase a title? 😒
Review

because i just use my mobile phone to edit it =_=...

because i just use my mobile phone to edit it =_=...
Review

Try coding on a PC. :)

Try coding on a PC. :)
<form onsubmit="submitSuitInvigorationUpgrade(event)">
<div class="mb-3">
Sainan marked this conversation as resolved
Review

There are a few more strings here...

There are a few more strings here...
Review

I don't know the exact translation of the attributes, so I'll just estimate it based on the key.

I don't know the exact translation of the attributes, so I'll just estimate it based on the key.
<label for="invigoration-offensive" class="form-label">Offensive Upgrade</label>
<label for="invigoration-offensive" class="form-label" data-loc="invigorations_offensiveLabel"></label>
<select class="form-select" id="dv-invigoration-offensive">
<option value="">None</option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPowerStrength">Power Strength</option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPowerRange">Power Range</option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPowerDuration">Power Duration</option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationMeleeDamage">Melee Damage</option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPrimaryDamage">Primary Damage</option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationSecondaryDamage">Secondary Damage</option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPrimaryCritChance">Primary Crit Chance</option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationSecondaryCritChance">Secondary Crit Chance</option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationMeleeCritChance">Melee Crit Chance</option>
<option value="" data-loc="invigorations_noneOption"></option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPowerStrength" data-loc="invigorations_offensive_PowerStrength"></option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPowerRange" data-loc="invigorations_offensive_PowerRange"></option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPowerDuration" data-loc="invigorations_offensive_PowerDuration"></option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationMeleeDamage" data-loc="invigorations_offensive_MeleeDamage"></option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPrimaryDamage" data-loc="invigorations_offensive_PrimaryDamage"></option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationSecondaryDamage" data-loc="invigorations_offensive_SecondaryDamage"></option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationPrimaryCritChance" data-loc="invigorations_offensive_PrimaryCritChance"></option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationSecondaryCritChance" data-loc="invigorations_offensive_SecondaryCritChance"></option>
<option value="/Lotus/Upgrades/Invigorations/Offensive/OffensiveInvigorationMeleeCritChance" data-loc="invigorations_offensive_MeleeCritChance"></option>
</select>
</div>
<div class="mb-3">
<label for="invigoration-defensive" class="form-label">Defensive Upgrade</label>
<label for="invigoration-defensive" class="form-label" data-loc="invigorations_defensiveLabel"></label>
<select class="form-select" id="dv-invigoration-defensive">
<option value="">None</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationPowerEfficiency">Power Efficiency</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationMovementSpeed">Movement Speed</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationParkourSpeed">Parkour Speed</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationHealth">Health</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationEnergy">Energy</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationStatusResistance">Status Resistance</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationReloadSpeed">Reload Speed</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationHealthRegen">Health Regen</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationArmor">Armor</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationJumps">Jumps</option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationEnergyRegen">Energy Regen</option>
<option value="" data-loc="invigorations_noneOption"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationPowerEfficiency" data-loc="invigorations_utility_PowerEfficiency"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationMovementSpeed" data-loc="invigorations_utility_MovementSpeed"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationParkourSpeed" data-loc="invigorations_utility_ParkourSpeed"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationHealth" data-loc="invigorations_utility_Health"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationEnergy" data-loc="invigorations_utility_Energy"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationStatusResistance" data-loc="invigorations_utility_StatusResistance"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationReloadSpeed" data-loc="invigorations_utility_ReloadSpeed"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationHealthRegen" data-loc="invigorations_utility_HealthRegen"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationArmor" data-loc="invigorations_utility_Armor"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationJumps" data-loc="invigorations_utility_Jumps"></option>
<option value="/Lotus/Upgrades/Invigorations/Utility/UtilityInvigorationEnergyRegen" data-loc="invigorations_utility_EnergyRegen"></option>
</select>
</div>
<div class="mb-3">
<label for="invigoration-expiry" class="form-label">Upgrades Expiry (optional)</label>
<label for="invigoration-expiry" class="form-label" data-loc="invigorations_expiryLabel"></label>
<input type="datetime-local" class="form-control" id="dv-invigoration-expiry" />
</div>
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary">Apply Upgrades</button>
<button type="button" class="btn btn-danger" onclick="clearSuitInvigorationUpgrades()">Clear Upgrades</button>
<button type="submit" class="btn btn-primary" data-loc="invigorations_applyButton"></button>
<button type="button" class="btn btn-danger" onclick="clearSuitInvigorationUpgrades()" data-loc="invigorations_clearButton"></button>
</div>
</form>
</div>

View File

@ -2906,8 +2906,8 @@ function submitSuitInvigorationUpgrade(event) {
const defensiveUpgrade = document.getElementById("dv-invigoration-defensive").value;
const expiry = document.getElementById("dv-invigoration-expiry").value;
if (!offensiveUpgrade && !defensiveUpgrade) {
alert("Please select at least one upgrade type.");
if (!offensiveUpgrade || !defensiveUpgrade) {
alert(loc("code_requiredInvigorationUpgrade"));
Sainan marked this conversation as resolved Outdated

...and here.

...and here.
return;
}

View File

@ -62,6 +62,7 @@ dict = {
code_mature: `Für den Kampf auswachsen lassen`,
code_unmature: `Genetisches Altern zurücksetzen`,
code_succChange: `[UNTRANSLATED] Successfully changed.`,
code_requiredInvigorationUpgrade: `[UNTRANSLATED] You must select both an offensive and a defensive upgrade.`,
login_description: `Melde dich mit deinem OpenWF-Account an (denselben Angaben wie im Spiel, wenn du dich mit diesem Server verbindest).`,
login_emailLabel: `E-Mail-Adresse`,
login_passwordLabel: `Passwort`,
@ -127,6 +128,35 @@ dict = {
detailedView_modularPartsLabel: `[UNTRANSLATED] Change Modular Parts`,
detailedView_editSuitInvigoration: `[UNTRANSLATED] Edit Suit Invigoration`,
invigorations_offensive_PowerStrength: `[UNTRANSLATED] Power Strength`,
invigorations_offensive_PowerRange: `[UNTRANSLATED] Power Range`,
invigorations_offensive_PowerDuration: `[UNTRANSLATED] Power Duration`,
invigorations_offensive_MeleeDamage: `[UNTRANSLATED] Melee Damage`,
invigorations_offensive_PrimaryDamage: `[UNTRANSLATED] Primary Damage`,
invigorations_offensive_SecondaryDamage: `[UNTRANSLATED] Secondary Damage`,
invigorations_offensive_PrimaryCritChance: `[UNTRANSLATED] Primary Critical Chance`,
invigorations_offensive_SecondaryCritChance: `[UNTRANSLATED] Secondary Critical Chance`,
invigorations_offensive_MeleeCritChance: `[UNTRANSLATED] Melee Critical Chance`,
invigorations_utility_PowerEfficiency: `[UNTRANSLATED] Power Efficiency`,
invigorations_utility_MovementSpeed: `[UNTRANSLATED] Movement Speed`,
invigorations_utility_ParkourSpeed: `[UNTRANSLATED] Parkour Speed`,
invigorations_utility_Health: `[UNTRANSLATED] Health`,
invigorations_utility_Energy: `[UNTRANSLATED] Energy`,
invigorations_utility_StatusResistance: `[UNTRANSLATED] Status Resistance`,
invigorations_utility_ReloadSpeed: `[UNTRANSLATED] Reload Speed`,
invigorations_utility_HealthRegen: `[UNTRANSLATED] Health Regen`,
invigorations_utility_Armor: `[UNTRANSLATED] Armor`,
invigorations_utility_Jumps: `[UNTRANSLATED] Jumps`,
invigorations_utility_EnergyRegen: `[UNTRANSLATED] Energy Regen`,
invigorations_offensiveLabel: `[UNTRANSLATED] Offensive Upgrade`,
invigorations_defensiveLabel: `[UNTRANSLATED] Defensive Upgrade`,
invigorations_expiryLabel: `[UNTRANSLATED] Upgrades Expiry (optional)`,
invigorations_applyButton: `[UNTRANSLATED] Apply Upgrades`,
invigorations_clearButton: `[UNTRANSLATED] Clear Upgrades`,
invigorations_noneOption: `[UNTRANSLATED] None`,
mods_addRiven: `Riven hinzufügen`,
mods_fingerprint: `Fingerabdruck`,
mods_fingerprintHelp: `Benötigst du Hilfe mit dem Fingerabdruck?`,

View File

@ -61,6 +61,7 @@ dict = {
code_mature: `Mature for combat`,
code_unmature: `Regress genetic aging`,
code_succChange: `Successfully changed.`,
code_requiredInvigorationUpgrade: `You must select both an offensive and a defensive upgrade.`,
login_description: `Login using your OpenWF account credentials (same as in-game when connecting to this server).`,
login_emailLabel: `Email address`,
login_passwordLabel: `Password`,
@ -126,6 +127,35 @@ dict = {
detailedView_modularPartsLabel: `Change Modular Parts`,
detailedView_editSuitInvigoration: `Edit Suit Invigoration`,
invigorations_offensive_PowerStrength: `Power Strength`,
invigorations_offensive_PowerRange: `Power Range`,
invigorations_offensive_PowerDuration: `Power Duration`,
invigorations_offensive_MeleeDamage: `Melee Damage`,
invigorations_offensive_PrimaryDamage: `Primary Damage`,
invigorations_offensive_SecondaryDamage: `Secondary Damage`,
invigorations_offensive_PrimaryCritChance: `Primary Critical Chance`,
invigorations_offensive_SecondaryCritChance: `Secondary Critical Chance`,
invigorations_offensive_MeleeCritChance: `Melee Critical Chance`,
invigorations_utility_PowerEfficiency: `Power Efficiency`,
invigorations_utility_MovementSpeed: `Movement Speed`,
invigorations_utility_ParkourSpeed: `Parkour Speed`,
invigorations_utility_Health: `Health`,
invigorations_utility_Energy: `Energy`,
invigorations_utility_StatusResistance: `Status Resistance`,
invigorations_utility_ReloadSpeed: `Reload Speed`,
invigorations_utility_HealthRegen: `Health Regen`,
invigorations_utility_Armor: `Armor`,
invigorations_utility_Jumps: `Jumps`,
invigorations_utility_EnergyRegen: `Energy Regen`,
invigorations_offensiveLabel: `Offensive Upgrade`,
invigorations_defensiveLabel: `Defensive Upgrade`,
invigorations_expiryLabel: `Upgrades Expiry (optional)`,
invigorations_applyButton: `Apply Upgrades`,
invigorations_clearButton: `Clear Upgrades`,
invigorations_noneOption: `None`,
mods_addRiven: `Add Riven`,
mods_fingerprint: `Fingerprint`,
mods_fingerprintHelp: `Need help with the fingerprint?`,

View File

@ -62,6 +62,7 @@ dict = {
code_mature: `Listo para el combate`,
code_unmature: `Regresar el envejecimiento genético`,
code_succChange: `Cambiado correctamente`,
code_requiredInvigorationUpgrade: `[UNTRANSLATED] You must select both an offensive and a defensive upgrade.`,
login_description: `Inicia sesión con las credenciales de tu cuenta OpenWF (las mismas que usas en el juego al conectarte a este servidor).`,
login_emailLabel: `Dirección de correo electrónico`,
login_passwordLabel: `Contraseña`,
@ -127,6 +128,35 @@ dict = {
detailedView_modularPartsLabel: `Cambiar partes modulares`,
detailedView_editSuitInvigoration: `[UNTRANSLATED] Edit Suit Invigoration`,
invigorations_offensive_PowerStrength: `[UNTRANSLATED] Power Strength`,
invigorations_offensive_PowerRange: `[UNTRANSLATED] Power Range`,
invigorations_offensive_PowerDuration: `[UNTRANSLATED] Power Duration`,
invigorations_offensive_MeleeDamage: `[UNTRANSLATED] Melee Damage`,
invigorations_offensive_PrimaryDamage: `[UNTRANSLATED] Primary Damage`,
invigorations_offensive_SecondaryDamage: `[UNTRANSLATED] Secondary Damage`,
invigorations_offensive_PrimaryCritChance: `[UNTRANSLATED] Primary Critical Chance`,
invigorations_offensive_SecondaryCritChance: `[UNTRANSLATED] Secondary Critical Chance`,
invigorations_offensive_MeleeCritChance: `[UNTRANSLATED] Melee Critical Chance`,
invigorations_utility_PowerEfficiency: `[UNTRANSLATED] Power Efficiency`,
invigorations_utility_MovementSpeed: `[UNTRANSLATED] Movement Speed`,
invigorations_utility_ParkourSpeed: `[UNTRANSLATED] Parkour Speed`,
invigorations_utility_Health: `[UNTRANSLATED] Health`,
invigorations_utility_Energy: `[UNTRANSLATED] Energy`,
invigorations_utility_StatusResistance: `[UNTRANSLATED] Status Resistance`,
invigorations_utility_ReloadSpeed: `[UNTRANSLATED] Reload Speed`,
invigorations_utility_HealthRegen: `[UNTRANSLATED] Health Regen`,
invigorations_utility_Armor: `[UNTRANSLATED] Armor`,
invigorations_utility_Jumps: `[UNTRANSLATED] Jumps`,
invigorations_utility_EnergyRegen: `[UNTRANSLATED] Energy Regen`,
invigorations_offensiveLabel: `[UNTRANSLATED] Offensive Upgrade`,
invigorations_defensiveLabel: `[UNTRANSLATED] Defensive Upgrade`,
invigorations_expiryLabel: `[UNTRANSLATED] Upgrades Expiry (optional)`,
invigorations_applyButton: `[UNTRANSLATED] Apply Upgrades`,
invigorations_clearButton: `[UNTRANSLATED] Clear Upgrades`,
invigorations_noneOption: `[UNTRANSLATED] None`,
mods_addRiven: `Agregar Agrietado`,
mods_fingerprint: `Huella digital`,
mods_fingerprintHelp: `¿Necesitas ayuda con la huella digital?`,

View File

@ -62,6 +62,7 @@ dict = {
code_mature: `Maturer pour le combat`,
code_unmature: `Régrésser l'âge génétique`,
code_succChange: `[UNTRANSLATED] Successfully changed.`,
code_requiredInvigorationUpgrade: `[UNTRANSLATED] You must select both an offensive and a defensive upgrade.`,
login_description: `Connexion avec les informations de connexion OpenWF.`,
login_emailLabel: `Email`,
login_passwordLabel: `Mot de passe`,
@ -127,6 +128,35 @@ dict = {
detailedView_modularPartsLabel: `[UNTRANSLATED] Change Modular Parts`,
detailedView_editSuitInvigoration: `[UNTRANSLATED] Edit Suit Invigoration`,
invigorations_offensive_PowerStrength: `[UNTRANSLATED] Power Strength`,
invigorations_offensive_PowerRange: `[UNTRANSLATED] Power Range`,
invigorations_offensive_PowerDuration: `[UNTRANSLATED] Power Duration`,
invigorations_offensive_MeleeDamage: `[UNTRANSLATED] Melee Damage`,
invigorations_offensive_PrimaryDamage: `[UNTRANSLATED] Primary Damage`,
invigorations_offensive_SecondaryDamage: `[UNTRANSLATED] Secondary Damage`,
invigorations_offensive_PrimaryCritChance: `[UNTRANSLATED] Primary Critical Chance`,
invigorations_offensive_SecondaryCritChance: `[UNTRANSLATED] Secondary Critical Chance`,
invigorations_offensive_MeleeCritChance: `[UNTRANSLATED] Melee Critical Chance`,
invigorations_utility_PowerEfficiency: `[UNTRANSLATED] Power Efficiency`,
invigorations_utility_MovementSpeed: `[UNTRANSLATED] Movement Speed`,
invigorations_utility_ParkourSpeed: `[UNTRANSLATED] Parkour Speed`,
invigorations_utility_Health: `[UNTRANSLATED] Health`,
invigorations_utility_Energy: `[UNTRANSLATED] Energy`,
invigorations_utility_StatusResistance: `[UNTRANSLATED] Status Resistance`,
invigorations_utility_ReloadSpeed: `[UNTRANSLATED] Reload Speed`,
invigorations_utility_HealthRegen: `[UNTRANSLATED] Health Regen`,
invigorations_utility_Armor: `[UNTRANSLATED] Armor`,
invigorations_utility_Jumps: `[UNTRANSLATED] Jumps`,
invigorations_utility_EnergyRegen: `[UNTRANSLATED] Energy Regen`,
invigorations_offensiveLabel: `[UNTRANSLATED] Offensive Upgrade`,
invigorations_defensiveLabel: `[UNTRANSLATED] Defensive Upgrade`,
invigorations_expiryLabel: `[UNTRANSLATED] Upgrades Expiry (optional)`,
invigorations_applyButton: `[UNTRANSLATED] Apply Upgrades`,
invigorations_clearButton: `[UNTRANSLATED] Clear Upgrades`,
invigorations_noneOption: `[UNTRANSLATED] None`,
mods_addRiven: `Ajouter un riven`,
mods_fingerprint: `Empreinte`,
mods_fingerprintHelp: `Besoin d'aide pour l'empreinte ?`,

View File

@ -62,6 +62,7 @@ dict = {
code_mature: `Подготовить к сражениям`,
code_unmature: `Регрессия генетического старения`,
code_succChange: `Успешно изменено.`,
code_requiredInvigorationUpgrade: `[UNTRANSLATED] You must select both an offensive and a defensive upgrade.`,
login_description: `Войдите, используя учетные данные OpenWF (те же, что и в игре при подключении к этому серверу).`,
login_emailLabel: `Адрес электронной почты`,
login_passwordLabel: `Пароль`,
@ -127,6 +128,35 @@ dict = {
detailedView_modularPartsLabel: `Изменить Модульные Части`,
detailedView_editSuitInvigoration: `[UNTRANSLATED] Edit Suit Invigoration`,
invigorations_offensive_PowerStrength: `[UNTRANSLATED] Power Strength`,
invigorations_offensive_PowerRange: `[UNTRANSLATED] Power Range`,
invigorations_offensive_PowerDuration: `[UNTRANSLATED] Power Duration`,
invigorations_offensive_MeleeDamage: `[UNTRANSLATED] Melee Damage`,
invigorations_offensive_PrimaryDamage: `[UNTRANSLATED] Primary Damage`,
invigorations_offensive_SecondaryDamage: `[UNTRANSLATED] Secondary Damage`,
invigorations_offensive_PrimaryCritChance: `[UNTRANSLATED] Primary Critical Chance`,
invigorations_offensive_SecondaryCritChance: `[UNTRANSLATED] Secondary Critical Chance`,
invigorations_offensive_MeleeCritChance: `[UNTRANSLATED] Melee Critical Chance`,
invigorations_utility_PowerEfficiency: `[UNTRANSLATED] Power Efficiency`,
invigorations_utility_MovementSpeed: `[UNTRANSLATED] Movement Speed`,
invigorations_utility_ParkourSpeed: `[UNTRANSLATED] Parkour Speed`,
invigorations_utility_Health: `[UNTRANSLATED] Health`,
invigorations_utility_Energy: `[UNTRANSLATED] Energy`,
invigorations_utility_StatusResistance: `[UNTRANSLATED] Status Resistance`,
invigorations_utility_ReloadSpeed: `[UNTRANSLATED] Reload Speed`,
invigorations_utility_HealthRegen: `[UNTRANSLATED] Health Regen`,
invigorations_utility_Armor: `[UNTRANSLATED] Armor`,
invigorations_utility_Jumps: `[UNTRANSLATED] Jumps`,
invigorations_utility_EnergyRegen: `[UNTRANSLATED] Energy Regen`,
invigorations_offensiveLabel: `[UNTRANSLATED] Offensive Upgrade`,
invigorations_defensiveLabel: `[UNTRANSLATED] Defensive Upgrade`,
invigorations_expiryLabel: `[UNTRANSLATED] Upgrades Expiry (optional)`,
invigorations_applyButton: `[UNTRANSLATED] Apply Upgrades`,
invigorations_clearButton: `[UNTRANSLATED] Clear Upgrades`,
invigorations_noneOption: `[UNTRANSLATED] None`,
mods_addRiven: `Добавить Мод Разлома`,
mods_fingerprint: `Отпечаток`,
mods_fingerprintHelp: `Нужна помощь с отпечатком?`,

View File

@ -62,6 +62,7 @@ dict = {
code_mature: `成长并战备`,
code_unmature: `逆转衰老基因`,
code_succChange: `更改成功.`,
code_requiredInvigorationUpgrade: `[UNTRANSLATED] You must select both an offensive and a defensive upgrade.`,
login_description: `使用您的 OpenWF 账户凭证登录(与游戏内连接本服务器时使用的昵称相同).`,
login_emailLabel: `电子邮箱`,
login_passwordLabel: `密码`,
@ -127,6 +128,35 @@ dict = {
detailedView_modularPartsLabel: `更换部件`,
detailedView_editSuitInvigoration: `[UNTRANSLATED] Edit Suit Invigoration`,
invigorations_offensive_PowerStrength: `[UNTRANSLATED] Power Strength`,
invigorations_offensive_PowerRange: `[UNTRANSLATED] Power Range`,
invigorations_offensive_PowerDuration: `[UNTRANSLATED] Power Duration`,
invigorations_offensive_MeleeDamage: `[UNTRANSLATED] Melee Damage`,
invigorations_offensive_PrimaryDamage: `[UNTRANSLATED] Primary Damage`,
invigorations_offensive_SecondaryDamage: `[UNTRANSLATED] Secondary Damage`,
invigorations_offensive_PrimaryCritChance: `[UNTRANSLATED] Primary Critical Chance`,
invigorations_offensive_SecondaryCritChance: `[UNTRANSLATED] Secondary Critical Chance`,
invigorations_offensive_MeleeCritChance: `[UNTRANSLATED] Melee Critical Chance`,
invigorations_utility_PowerEfficiency: `[UNTRANSLATED] Power Efficiency`,
invigorations_utility_MovementSpeed: `[UNTRANSLATED] Movement Speed`,
invigorations_utility_ParkourSpeed: `[UNTRANSLATED] Parkour Speed`,
invigorations_utility_Health: `[UNTRANSLATED] Health`,
invigorations_utility_Energy: `[UNTRANSLATED] Energy`,
invigorations_utility_StatusResistance: `[UNTRANSLATED] Status Resistance`,
invigorations_utility_ReloadSpeed: `[UNTRANSLATED] Reload Speed`,
invigorations_utility_HealthRegen: `[UNTRANSLATED] Health Regen`,
invigorations_utility_Armor: `[UNTRANSLATED] Armor`,
invigorations_utility_Jumps: `[UNTRANSLATED] Jumps`,
invigorations_utility_EnergyRegen: `[UNTRANSLATED] Energy Regen`,
invigorations_offensiveLabel: `[UNTRANSLATED] Offensive Upgrade`,
invigorations_defensiveLabel: `[UNTRANSLATED] Defensive Upgrade`,
invigorations_expiryLabel: `[UNTRANSLATED] Upgrades Expiry (optional)`,
invigorations_applyButton: `[UNTRANSLATED] Apply Upgrades`,
invigorations_clearButton: `[UNTRANSLATED] Clear Upgrades`,
invigorations_noneOption: `[UNTRANSLATED] None`,
mods_addRiven: `添加裂罅MOD`,
mods_fingerprint: `印记`,
mods_fingerprintHelp: `需要印记相关的帮助?`,