返回提交历史
Modified
src/constants/gameToBuildVersion.ts
+1
-0
Modified
src/controllers/api/artifactTransmutationController.ts
+2
-1
Modified
src/controllers/api/inventoryController.ts
+79
-2
Modified
src/controllers/custom/addMissingMaxRankModsController.ts
+2
-1
Modified
src/controllers/custom/getItemListsController.ts
+2
-1
Modified
src/services/inventoryService.ts
+2
-0
Modified
src/services/itemDataService.ts
+124
-32
Added
static/fixed_responses/supplementalDict/de.json
+12
-0
Added
static/fixed_responses/supplementalDict/en.json
+12
-0
Added
static/fixed_responses/supplementalDict/es.json
+12
-0
Added
static/fixed_responses/supplementalDict/fr.json
+12
-0
Added
static/fixed_responses/supplementalDict/it.json
+12
-0
Added
static/fixed_responses/supplementalDict/ja.json
+12
-0
Added
static/fixed_responses/supplementalDict/ko.json
+12
-0
Added
static/fixed_responses/supplementalDict/pl.json
+12
-0
Added
static/fixed_responses/supplementalDict/pt.json
+12
-0
Added
static/fixed_responses/supplementalDict/ru.json
+12
-0
Added
static/fixed_responses/supplementalDict/tc.json
+12
-0
Added
static/fixed_responses/supplementalDict/th.json
+12
-0
Added
static/fixed_responses/supplementalDict/tr.json
+12
-0
Added
static/fixed_responses/supplementalDict/uk.json
+12
-0
Added
static/fixed_responses/supplementalDict/zh.json
+12
-0
XFEstudio/XFESpaceNinjaServer
feat: legacy artifacts (aura) mods (#4201)
converts aura mods to artifact cards, and add some unreleased onces eg. https://wiki.warframe.com/w/Affinity_Amp Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4201 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
7b4000e2
代码差异
22 个文件
+392
-37
@@ -73,6 +73,7 @@ const gameToBuildVersion = {
73
73
"11.1.3": "2013.11.29.16.33",
74
74
"10.8.0": "2013.11.12.14.03",
75
75
"10.3.3": "2013.10.11.17.01",
76
"9.1.2": "2013.07.15.20.46",
76
77
"9.1.0": "2013.07.13.03.21",
77
78
"8.3.0": "2013.07.04.20.17",
78
79
"8.0.0": "2013.05.23.16.06",
@@ -7,6 +7,7 @@ import {
7
7
getInventory2,
8
8
updateCredits
9
9
} from "../../services/inventoryService.ts";
10
import { getUpgrade } from "../../services/itemDataService.ts";
10
11
import { getAccountForRequest, getBuildLabel } from "../../services/loginService.ts";
11
12
import { getRandomElement, getRandomWeightedRewardUc } from "../../services/rngService.ts";
12
13
import type { IUpgradeFromClient } from "../../types/inventoryTypes/inventoryTypes.ts";
@@ -78,7 +79,7 @@ export const artifactTransmutationController: RequestHandler = async (req, res)
78
79
let forcedPolarity: string | undefined;
79
80
payload.Consumed.forEach(upgrade => {
80
81
upgrade.ItemCount ??= 1;
81
const meta = ExportUpgrades[upgrade.ItemType];
82
const meta = getUpgrade(upgrade.ItemType)!;
82
83
counts[meta.rarity] += upgrade.ItemCount;
83
84
if (fromOid(upgrade.ItemId) != "" && fromOid(upgrade.ItemId) != "000000000000000000000000") {
84
85
inventory.Upgrades.pull({ _id: fromOid(upgrade.ItemId) });
@@ -950,6 +950,54 @@ export const getInventoryResponse = async (
950
950
}
951
951
inventoryResponse.RawUpgrades = [];
952
952
953
// Before U9, these aura mods were artifacts, ~U9.1.2 changed their paths
954
if (
955
version_compare(buildLabel, gameToBuildVersion["5.2.0"]) >= 0 &&
956
version_compare(buildLabel, gameToBuildVersion["9.1.2"]) < 0
957
) {
958
const supportedAuraMods = new Set([
959
"EnemyArmorReductionAuraMod",
960
"EnemyShieldReductionAuraMod",
961
"InfestationSpeedReductionAuraMod",
962
"PlayerElectricityImmunityAuraMod",
963
"PlayerFireImmunityAuraMod",
964
"PlayerFreezeImmunityAuraMod",
965
"PlayerLaserImmunityAuraMod",
966
"PlayerPoisonImmunityAuraMod",
967
"PlayerEnemyRadarAuraMod",
968
"PlayerLootRadarAuraMod",
969
"PlayerEnergyRegenAuraMod",
970
"PlayerHealthAuraMod",
971
"PlayerHealthRegenAuraMod",
972
"PlayerMeleeAuraMod",
973
"PlayerPistolAmmoAuraMod",
974
"PlayerPistolDamageAuraMod",
975
"PlayerRifleAmmoAuraMod",
976
"PlayerRifleDamageAuraMod",
977
"PlayerShellAmmoAuraMod",
978
"PlayerShellDamageAuraMod",
979
"PlayerSniperAmmoAuraMod",
980
"PlayerSniperDamageAuraMod",
981
"PlayerSprintAuraMod",
982
"PlayerXPAuraMod",
983
"RobotPoorAimAuraMod"
984
]);
985
986
for (const x of [...inventoryResponse.Cards, ...inventoryResponse.Upgrades]) {
987
const itemType = x.ItemType;
988
console.log(itemType);
989
if (
990
!itemType.includes("/Lotus/Upgrades/Mods/Aura/") ||
991
!supportedAuraMods.has(itemType.slice(itemType.lastIndexOf("/") + 1))
992
)
993
continue;
994
995
x.ItemType = itemType
996
.replace("/Lotus/Upgrades/Mods/Aura/", "/Lotus/Types/Game/MissionBuffs/")
997
.replace("AuraMod", "Buff");
998
}
999
}
1000
953
1001
for (const category of equipmentKeys) {
954
1002
for (const item of inventoryResponse[category]) {
955
1003
for (const config of item.Configs) {
@@ -1015,12 +1063,41 @@ export const getInventoryResponse = async (
1015
1063
"/Lotus/Upgrades/Modules/OrokinWarframeModule",
1016
1064
"/Lotus/Upgrades/Modules/Crafted/IncendiaryRifleMod"
1017
1065
];
1066
1067
// for some reason they didn't shipped artifacts with U5.1
1018
1068
if (version_compare(buildLabel, gameToBuildVersion["5.2.0"]) >= 0) {
1019
1069
allowedMods.push("/Lotus/Upgrades/Modules/TennoSwordModule");
1070
const oldMissionBuffs = [
1071
"/Lotus/Types/Game/MissionBuffs/EnemyArmorReductionBuff",
1072
"/Lotus/Types/Game/MissionBuffs/EnemyShieldReductionBuff",
1073
"/Lotus/Types/Game/MissionBuffs/InfestationSpeedReductionBuff",
1074
"/Lotus/Types/Game/MissionBuffs/PlayerElectricityImmunityBuff",
1075
"/Lotus/Types/Game/MissionBuffs/PlayerFireImmunityBuff",
1076
"/Lotus/Types/Game/MissionBuffs/PlayerFreezeImmunityBuff",
1077
"/Lotus/Types/Game/MissionBuffs/PlayerLaserImmunityBuff",
1078
"/Lotus/Types/Game/MissionBuffs/PlayerPoisonImmunityBuff",
1079
"/Lotus/Types/Game/MissionBuffs/PlayerEnemyRadarBuff",
1080
"/Lotus/Types/Game/MissionBuffs/PlayerLootRadarBuff",
1081
"/Lotus/Types/Game/MissionBuffs/PlayerEnergyRegenBuff",
1082
"/Lotus/Types/Game/MissionBuffs/PlayerHealthBuff",
1083
"/Lotus/Types/Game/MissionBuffs/PlayerHealthRegenBuff",
1084
"/Lotus/Types/Game/MissionBuffs/PlayerMeleeBuff",
1085
"/Lotus/Types/Game/MissionBuffs/PlayerPistolAmmoBuff",
1086
"/Lotus/Types/Game/MissionBuffs/PlayerPistolDamageBuff",
1087
"/Lotus/Types/Game/MissionBuffs/PlayerRifleAmmoBuff",
1088
"/Lotus/Types/Game/MissionBuffs/PlayerRifleDamageBuff",
1089
"/Lotus/Types/Game/MissionBuffs/PlayerShellAmmoBuff",
1090
"/Lotus/Types/Game/MissionBuffs/PlayerShellDamageBuff",
1091
"/Lotus/Types/Game/MissionBuffs/PlayerSniperAmmoBuff",
1092
"/Lotus/Types/Game/MissionBuffs/PlayerSniperDamageBuff",
1093
"/Lotus/Types/Game/MissionBuffs/PlayerSprintBuff",
1094
"/Lotus/Types/Game/MissionBuffs/PlayerXPBuff",
1095
"/Lotus/Types/Game/MissionBuffs/RobotPoorAimBuff"
1096
];
1097
inventoryResponse.Cards = inventoryResponse.Upgrades.filter(c => oldMissionBuffs.includes(c.ItemType));
1020
1098
}
1021
inventoryResponse.RawUpgrades = inventoryResponse.RawUpgrades.filter(x => allowedMods.includes(x.ItemType));
1099
1022
1100
inventoryResponse.Upgrades = inventoryResponse.Upgrades.filter(x => allowedMods.includes(x.ItemType));
1023
inventoryResponse.Cards = [];
1024
1101
inventoryResponse.Missions = inventoryResponse.Missions.filter(m => {
1025
1102
if (!m.Tag.startsWith("SolNode")) return false;
1026
1103
const n = Number.parseInt(m.Tag.slice(7), 10);
@@ -3,6 +3,7 @@ import { getAccountIdForRequest } from "../../services/loginService.ts";
3
3
import type { RequestHandler } from "express";
4
4
import { ExportArcanes, ExportAvionics, ExportUpgrades } from "warframe-public-export-plus";
5
5
import { broadcastInventoryUpdate } from "../../services/wsService.ts";
6
import { supplementalUpgrades } from "../../services/itemDataService.ts";
6
7
7
8
export const addMissingMaxRankModsController: RequestHandler = async (req, res) => {
8
9
const accountId = await getAccountIdForRequest(req);
@@ -19,7 +20,7 @@ export const addMissingMaxRankModsController: RequestHandler = async (req, res)
19
20
}
20
21
}
21
22
22
for (const [uniqueName, data] of Object.entries(ExportUpgrades)) {
23
for (const [uniqueName, data] of Object.entries({ ...ExportUpgrades, ...supplementalUpgrades })) {
23
24
if (data.fusionLimit != 0 && data.type != "PARAZON" && maxOwnedRanks[uniqueName] != data.fusionLimit) {
24
25
inventory.Upgrades.push({
25
26
ItemType: uniqueName,
@@ -5,6 +5,7 @@ import {
5
5
getNormalizedString,
6
6
getString,
7
7
supplementalRecipes,
8
supplementalUpgrades,
8
9
U5Modules
9
10
} from "../../services/itemDataService.ts";
10
11
import type { IU5FingerprintUpgrade } from "../../services/itemDataService.ts";
@@ -371,7 +372,7 @@ const getItemListsController: RequestHandler = (req, response) => {
371
372
}
372
373
}
373
374
374
for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) {
375
for (const [uniqueName, upgrade] of Object.entries({ ...ExportUpgrades, ...supplementalUpgrades })) {
375
376
const mod: ListedItem = {
376
377
uniqueName,
377
378
name: getString(upgrade.name, lang),
@@ -42,6 +42,7 @@ import {
42
42
getPowerSuit,
43
43
getSyndicate,
44
44
supplementalRecipes,
45
supplementalUpgrades,
45
46
U5ModsWeights,
46
47
U5Modules
47
48
} from "./itemDataService.ts";
@@ -682,6 +683,7 @@ export const addItem = async (
682
683
typeName in ExportUpgrades ||
683
684
typeName in ExportArcanes ||
684
685
typeName in U5Modules ||
686
typeName in supplementalUpgrades ||
685
687
(typeName.startsWith("/Lotus/Upgrades/Mods/") && // Fusion Core, Legendary Core
686
688
!typeName.startsWith("/Lotus/Upgrades/Mods/FusionBundles/")) ||
687
689
typeName.startsWith("/Lotus/Upgrades/CosmeticEnhancers/") || // Traumatic Peculiar
@@ -10,6 +10,7 @@ import type {
10
10
IRecipe,
11
11
IRegion,
12
12
ISyndicate,
13
IUpgrade,
13
14
TMissionDeck,
14
15
TRarity,
15
16
TReward
@@ -48,9 +49,25 @@ import {
48
49
ExportRewards,
49
50
ExportSentinels,
50
51
ExportSyndicates,
52
ExportUpgrades,
51
53
ExportWarframes,
52
54
ExportWeapons
53
55
} from "warframe-public-export-plus";
56
import dict_en_supp from "../../static/fixed_responses/supplementalDict/en.json" with { type: "json" };
57
import dict_de_supp from "../../static/fixed_responses/supplementalDict/de.json" with { type: "json" };
58
import dict_es_supp from "../../static/fixed_responses/supplementalDict/es.json" with { type: "json" };
59
import dict_fr_supp from "../../static/fixed_responses/supplementalDict/fr.json" with { type: "json" };
60
import dict_it_supp from "../../static/fixed_responses/supplementalDict/it.json" with { type: "json" };
61
import dict_ja_supp from "../../static/fixed_responses/supplementalDict/ja.json" with { type: "json" };
62
import dict_ko_supp from "../../static/fixed_responses/supplementalDict/ko.json" with { type: "json" };
63
import dict_pl_supp from "../../static/fixed_responses/supplementalDict/pl.json" with { type: "json" };
64
import dict_pt_supp from "../../static/fixed_responses/supplementalDict/pt.json" with { type: "json" };
65
import dict_ru_supp from "../../static/fixed_responses/supplementalDict/ru.json" with { type: "json" };
66
import dict_tc_supp from "../../static/fixed_responses/supplementalDict/tc.json" with { type: "json" };
67
import dict_th_supp from "../../static/fixed_responses/supplementalDict/th.json" with { type: "json" };
68
import dict_tr_supp from "../../static/fixed_responses/supplementalDict/tr.json" with { type: "json" };
69
import dict_uk_supp from "../../static/fixed_responses/supplementalDict/uk.json" with { type: "json" };
70
import dict_zh_supp from "../../static/fixed_responses/supplementalDict/zh.json" with { type: "json" };
54
71
import type { IMessage } from "../types/inboxTypes.ts";
55
72
import { logger } from "../utils/logger.ts";
56
73
import { version_compare } from "../helpers/inventoryHelpers.ts";
@@ -1153,6 +1170,89 @@ export const supplementalSuits: Record<string, IPowersuit> = {
1153
1170
}
1154
1171
};
1155
1172
1173
export const supplementalUpgrades: Record<string, IUpgrade> = {
1174
// removed in 2017.03.06.29.02.13
1175
"/Lotus/Upgrades/Mods/Aura/PlayerElectricityImmunityAuraMod": {
1176
name: "/Lotus/Language/Items/PlayerElectricityImmunityBuffName",
1177
icon: "/Lotus/Interface/Cards/Images/MissionBuffs/PlayerElectricityImmunityBuff.png",
1178
polarity: "AP_ANY", // it should be none
1179
rarity: "UNCOMMON",
1180
codexSecret: true,
1181
baseDrain: -2,
1182
fusionLimit: 5,
1183
compat: "/Lotus/Types/Game/PowerSuits/PlayerPowerSuit",
1184
compatName: "AURA",
1185
type: "AURA",
1186
description: "/Lotus/Language/Items/PlayerElectricityImmunityBuffDesc",
1187
isFrivolous: true,
1188
tradable: false
1189
},
1190
// removed in 2017.03.06.29.02.13
1191
"/Lotus/Upgrades/Mods/Aura/PlayerFireImmunityAuraMod": {
1192
name: "/Lotus/Language/Items/PlayerFireImmunityBuffName",
1193
icon: "/Lotus/Interface/Cards/Images/MissionBuffs/PlayerFireImmunityBuff.png",
1194
polarity: "AP_ANY", // it should be none
1195
rarity: "UNCOMMON",
1196
codexSecret: true,
1197
baseDrain: -2,
1198
fusionLimit: 5,
1199
compat: "/Lotus/Types/Game/PowerSuits/PlayerPowerSuit",
1200
compatName: "AURA",
1201
type: "AURA",
1202
description: "/Lotus/Language/Items/PlayerFireImmunityBuffDesc",
1203
isFrivolous: true,
1204
tradable: false
1205
},
1206
// removed in 2017.03.06.29.02.13
1207
"/Lotus/Upgrades/Mods/Aura/PlayerFreezeImmunityAuraMod": {
1208
name: "/Lotus/Language/Items/PlayerFreezeImmunityBuffName",
1209
icon: "/Lotus/Interface/Cards/Images/MissionBuffs/PlayerFreezeImmunityBuff.png",
1210
polarity: "AP_ANY", // it should be none
1211
rarity: "UNCOMMON",
1212
codexSecret: true,
1213
baseDrain: -2,
1214
fusionLimit: 5,
1215
compat: "/Lotus/Types/Game/PowerSuits/PlayerPowerSuit",
1216
compatName: "AURA",
1217
type: "AURA",
1218
description: "/Lotus/Language/Items/PlayerFreezeImmunityBuffDesc",
1219
isFrivolous: true,
1220
tradable: false
1221
},
1222
// removed in 2017.03.06.29.02.13
1223
"/Lotus/Upgrades/Mods/Aura/PlayerLaserImmunityAuraMod": {
1224
name: "/Lotus/Language/Items/PlayerLaserImmunityBuffName",
1225
icon: "/Lotus/Interface/Cards/Images/MissionBuffs/PlayerLaserImmunityBuff.png",
1226
polarity: "AP_ANY", // it should be none
1227
rarity: "UNCOMMON",
1228
codexSecret: true,
1229
baseDrain: -2,
1230
fusionLimit: 5,
1231
compat: "/Lotus/Types/Game/PowerSuits/PlayerPowerSuit",
1232
compatName: "AURA",
1233
type: "AURA",
1234
description: "/Lotus/Language/Items/PlayerLaserImmunityBuffDesc",
1235
isFrivolous: true,
1236
tradable: false
1237
},
1238
// removed in 2015.12.05.18.07
1239
"/Lotus/Upgrades/Mods/Aura/PlayerXPAuraMod": {
1240
name: "/Lotus/Language/Items/PlayerXPBuffName",
1241
icon: "/Lotus/Interface/Cards/Images/MissionBuffs/PlayerXPBuff.png",
1242
polarity: "AP_TACTIC",
1243
rarity: "UNCOMMON",
1244
codexSecret: true,
1245
baseDrain: -2,
1246
fusionLimit: 5,
1247
compat: "/Lotus/Types/Game/PowerSuits/PlayerPowerSuit",
1248
compatName: "AURA",
1249
type: "AURA",
1250
description: "/Lotus/Language/Items/PlayerXPBuffDesc",
1251
isFrivolous: true,
1252
tradable: false
1253
}
1254
};
1255
1156
1256
interface IU5FingerprintData {
1157
1257
fits: { type: string; rarity: TRarity; statAtten?: number }[];
1158
1258
upgrades: IU5FingerprintUpgrade[];
@@ -2077,7 +2177,7 @@ export const getRecipe = (uniqueName: string, buildLabel: string): IRecipe | und
2077
2177
}
2078
2178
} else if (uniqueName == "/Lotus/Types/Recipes/Weapons/HuntingBowBlueprint") {
2079
2179
// There was an undocumented change to this recipe's ingredients sometime between 8.3.0 and 9.1.2...
2080
if (version_compare(buildLabel, "2013.07.15.20.46") < 0) {
2180
if (version_compare(buildLabel, gameToBuildVersion["9.1.2"]) < 0) {
2081
2181
data = {
2082
2182
...data,
2083
2183
ingredients: [
@@ -2312,38 +2412,26 @@ export const getItemName = (uniqueName: string): string | undefined => {
2312
2412
return undefined;
2313
2413
};
2314
2414
2415
const dicts: Record<string, Record<string, string>> = {
2416
de: { ...dict_de, ...dict_de_supp },
2417
es: { ...dict_es, ...dict_es_supp },
2418
fr: { ...dict_fr, ...dict_fr_supp },
2419
it: { ...dict_it, ...dict_it_supp },
2420
ja: { ...dict_ja, ...dict_ja_supp },
2421
ko: { ...dict_ko, ...dict_ko_supp },
2422
pl: { ...dict_pl, ...dict_pl_supp },
2423
pt: { ...dict_pt, ...dict_pt_supp },
2424
ru: { ...dict_ru, ...dict_ru_supp },
2425
tc: { ...dict_tc, ...dict_tc_supp },
2426
th: { ...dict_th, ...dict_th_supp },
2427
tr: { ...dict_tr, ...dict_tr_supp },
2428
uk: { ...dict_uk, ...dict_uk_supp },
2429
zh: { ...dict_zh, ...dict_zh_supp },
2430
en: { ...dict_en, ...dict_en_supp }
2431
} as const;
2432
2315
2433
export const getDict = (lang: string): Record<string, string> => {
2316
switch (lang) {
2317
case "de":
2318
return dict_de;
2319
case "es":
2320
return dict_es;
2321
case "fr":
2322
return dict_fr;
2323
case "it":
2324
return dict_it;
2325
case "ja":
2326
return dict_ja;
2327
case "ko":
2328
return dict_ko;
2329
case "pl":
2330
return dict_pl;
2331
case "pt":
2332
return dict_pt;
2333
case "ru":
2334
return dict_ru;
2335
case "tc":
2336
return dict_tc;
2337
case "th":
2338
return dict_th;
2339
case "tr":
2340
return dict_tr;
2341
case "uk":
2342
return dict_uk;
2343
case "zh":
2344
return dict_zh;
2345
}
2346
return dict_en;
2434
return dicts[lang] ?? dicts.en;
2347
2435
};
2348
2436
2349
2437
export const getString = (key: string, dict: Record<string, string>): string => {
@@ -3134,3 +3222,7 @@ export const getShipDecoByNameTag = (name: string): string => {
3134
3222
}
3135
3223
throw new Error(`No ship deco with name tag ${name}`);
3136
3224
};
3225
3226
export const getUpgrade = (uniqueName: string): IUpgrade | undefined => {
3227
return ExportUpgrades[uniqueName] ?? supplementalUpgrades[uniqueName];
3228
};
@@ -0,0 +1,12 @@
1
{
2
"/Lotus/Language/Items/PlayerElectricityImmunityBuffName": "Elektrischer Widerstand",
3
"/Lotus/Language/Items/PlayerElectricityImmunityBuffDesc": "Reduzierter <DT_ELECTRICITY_COLOR>Elektrizitätsschaden.",
4
"/Lotus/Language/Items/PlayerFireImmunityBuffName": "Feuerwiderstand",
5
"/Lotus/Language/Items/PlayerFireImmunityBuffDesc": "Reduzierter <DT_FIRE_COLOR>Hitzeschaden.",
6
"/Lotus/Language/Items/PlayerFreezeImmunityBuffName": "Kälteisolierung",
7
"/Lotus/Language/Items/PlayerFreezeImmunityBuffDesc": "Reduzierter <DT_FREEZE_COLOR>Kälteschaden.",
8
"/Lotus/Language/Items/PlayerLaserImmunityBuffName": "Laser-Immunität",
9
"/Lotus/Language/Items/PlayerLaserImmunityBuffDesc": "Reduzierter <DT_RADIATION_COLOR>Strahlungsschaden.",
10
"/Lotus/Language/Items/PlayerXPBuffName": "Erfahrungssteigerung",
11
"/Lotus/Language/Items/PlayerXPBuffDesc": "Mehr Erfahrung von getöteten Feinden"
12
}
@@ -0,0 +1,12 @@
1
{
2
"/Lotus/Language/Items/PlayerElectricityImmunityBuffName": "Electrical Resistance",
3
"/Lotus/Language/Items/PlayerElectricityImmunityBuffDesc": "Reduced <DT_ELECTRICITY_COLOR>Electricity Damage.",
4
"/Lotus/Language/Items/PlayerFireImmunityBuffName": "Heat Resistance",
5
"/Lotus/Language/Items/PlayerFireImmunityBuffDesc": "Reduced <DT_FIRE_COLOR>Heat Damage.",
6
"/Lotus/Language/Items/PlayerFreezeImmunityBuffName": "Frost Insulation",
7
"/Lotus/Language/Items/PlayerFreezeImmunityBuffDesc": "Reduced <DT_FREEZE_COLOR>Cold Damage.",
8
"/Lotus/Language/Items/PlayerLaserImmunityBuffName": "Laser Deflection",
9
"/Lotus/Language/Items/PlayerLaserImmunityBuffDesc": "Reduced <DT_RADIATION_COLOR>Radiation Damage.",
10
"/Lotus/Language/Items/PlayerXPBuffName": "Affinity Amp",
11
"/Lotus/Language/Items/PlayerXPBuffDesc": "Affinity from kills increased"
12
}
@@ -0,0 +1,12 @@
1
{
2
"/Lotus/Language/Items/PlayerElectricityImmunityBuffName": "Resistencia eléctrica",
3
"/Lotus/Language/Items/PlayerElectricityImmunityBuffDesc": "Daño de <DT_ELECTRICITY_COLOR>electricidad reducido.",
4
"/Lotus/Language/Items/PlayerFireImmunityBuffName": "Resistencia al calor",
5
"/Lotus/Language/Items/PlayerFireImmunityBuffDesc": "Daño de <DT_FIRE_COLOR>calor reducido.",
6
"/Lotus/Language/Items/PlayerFreezeImmunityBuffName": "Aislamiento helado",
7
"/Lotus/Language/Items/PlayerFreezeImmunityBuffDesc": "Daño de <DT_FREEZE_COLOR>frío reducido.",
8
"/Lotus/Language/Items/PlayerLaserImmunityBuffName": "Desviación láser",
9
"/Lotus/Language/Items/PlayerLaserImmunityBuffDesc": "Daño de <DT_RADIATION_COLOR>radiación reducido.",
10
"/Lotus/Language/Items/PlayerXPBuffName": "Amplificador de afinidad",
11
"/Lotus/Language/Items/PlayerXPBuffDesc": "Afinidad por muertes aumentada"
12
}
@@ -0,0 +1,12 @@
1
{
2
"/Lotus/Language/Items/PlayerElectricityImmunityBuffName": "Résistance Électrique",
3
"/Lotus/Language/Items/PlayerElectricityImmunityBuffDesc": "Dégâts <DT_ELECTRICITY_COLOR>Électriques réduits.",
4
"/Lotus/Language/Items/PlayerFireImmunityBuffName": "Résistance au Feu",
5
"/Lotus/Language/Items/PlayerFireImmunityBuffDesc": "Dégâts de <DT_FIRE_COLOR>Feu réduits.",
6
"/Lotus/Language/Items/PlayerFreezeImmunityBuffName": "Isolation au Froid",
7
"/Lotus/Language/Items/PlayerFreezeImmunityBuffDesc": "Dégâts de <DT_FREEZE_COLOR>Glace réduits.",
8
"/Lotus/Language/Items/PlayerLaserImmunityBuffName": "Déviation Laser",
9
"/Lotus/Language/Items/PlayerLaserImmunityBuffDesc": "Dégâts de <DT_RADIATION_COLOR>Radiations réduits.",
10
"/Lotus/Language/Items/PlayerXPBuffName": "Affinité amplifiée",
11
"/Lotus/Language/Items/PlayerXPBuffDesc": "L'Affinité venant des éliminations augmente"
12
}
@@ -0,0 +1,12 @@
1
{
2
"/Lotus/Language/Items/PlayerElectricityImmunityBuffName": "Electrical Resistance",
3
"/Lotus/Language/Items/PlayerElectricityImmunityBuffDesc": "Danno <DT_ELECTRICITY_COLOR>Elettricità ridotto.",
4
"/Lotus/Language/Items/PlayerFireImmunityBuffName": "Fire Resistance",
5
"/Lotus/Language/Items/PlayerFireImmunityBuffDesc": "Danno <DT_FIRE_COLOR>Fuoco ridotto.",
6
"/Lotus/Language/Items/PlayerFreezeImmunityBuffName": "Frost Insulation",
7
"/Lotus/Language/Items/PlayerFreezeImmunityBuffDesc": "Danno <DT_FREEZE_COLOR>Ghiaccio ridotto.",
8
"/Lotus/Language/Items/PlayerLaserImmunityBuffName": "Laser Deflection",
9
"/Lotus/Language/Items/PlayerLaserImmunityBuffDesc": "Danno <DT_RADIATION_COLOR>Radiazione ridotto.",
10
"/Lotus/Language/Items/PlayerXPBuffName": "Affinity Amp",
11
"/Lotus/Language/Items/PlayerXPBuffDesc": "Affinità da uccisione aumentata"
12
}