forked from OpenWF/SpaceNinjaServer
fix: don't set IsNew flag for starting gear (#1859)
Reviewed-on: OpenWF/SpaceNinjaServer#1859 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
parent
4d4f885c8e
commit
75c011e3cb
@ -62,14 +62,7 @@ export const crewShipIdentifySalvageController: RequestHandler = async (req, res
|
|||||||
} satisfies IInnateDamageFingerprint)
|
} satisfies IInnateDamageFingerprint)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
addEquipment(
|
addEquipment(inventory, "CrewShipSalvagedWeapons", payload.ItemType, defaultOverwrites, inventoryChanges);
|
||||||
inventory,
|
|
||||||
"CrewShipSalvagedWeapons",
|
|
||||||
payload.ItemType,
|
|
||||||
undefined,
|
|
||||||
inventoryChanges,
|
|
||||||
defaultOverwrites
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inventoryChanges.CrewShipRawSalvage = [
|
inventoryChanges.CrewShipRawSalvage = [
|
||||||
|
@ -104,13 +104,14 @@ export const focusController: RequestHandler = async (req, res) => {
|
|||||||
}
|
}
|
||||||
case FocusOperation.SentTrainingAmplifier: {
|
case FocusOperation.SentTrainingAmplifier: {
|
||||||
const request = JSON.parse(String(req.body)) as ISentTrainingAmplifierRequest;
|
const request = JSON.parse(String(req.body)) as ISentTrainingAmplifierRequest;
|
||||||
const parts: string[] = [
|
|
||||||
"/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/SentAmpTrainingGrip",
|
|
||||||
"/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/SentAmpTrainingChassis",
|
|
||||||
"/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/SentAmpTrainingBarrel"
|
|
||||||
];
|
|
||||||
const inventory = await getInventory(accountId);
|
const inventory = await getInventory(accountId);
|
||||||
const inventoryChanges = addEquipment(inventory, "OperatorAmps", request.StartingWeaponType, parts);
|
const inventoryChanges = addEquipment(inventory, "OperatorAmps", request.StartingWeaponType, {
|
||||||
|
ModularParts: [
|
||||||
|
"/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/SentAmpTrainingGrip",
|
||||||
|
"/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/SentAmpTrainingChassis",
|
||||||
|
"/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/SentAmpTrainingBarrel"
|
||||||
|
]
|
||||||
|
});
|
||||||
occupySlot(inventory, InventorySlot.AMPS, false);
|
occupySlot(inventory, InventorySlot.AMPS, false);
|
||||||
await inventory.save();
|
await inventory.save();
|
||||||
res.json((inventoryChanges.OperatorAmps as IEquipmentClient[])[0]);
|
res.json((inventoryChanges.OperatorAmps as IEquipmentClient[])[0]);
|
||||||
|
@ -441,16 +441,9 @@ const finishComponentRepair = (
|
|||||||
const inventoryChanges = {
|
const inventoryChanges = {
|
||||||
...(category == "CrewShipWeaponSkins"
|
...(category == "CrewShipWeaponSkins"
|
||||||
? addCrewShipWeaponSkin(inventory, salvageItem.ItemType, salvageItem.UpgradeFingerprint)
|
? addCrewShipWeaponSkin(inventory, salvageItem.ItemType, salvageItem.UpgradeFingerprint)
|
||||||
: addEquipment(
|
: addEquipment(inventory, category, salvageItem.ItemType, {
|
||||||
inventory,
|
UpgradeFingerprint: salvageItem.UpgradeFingerprint
|
||||||
category,
|
})),
|
||||||
salvageItem.ItemType,
|
|
||||||
undefined,
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
UpgradeFingerprint: salvageItem.UpgradeFingerprint
|
|
||||||
}
|
|
||||||
)),
|
|
||||||
...occupySlot(inventory, InventorySlot.RJ_COMPONENT_AND_ARMAMENTS, false)
|
...occupySlot(inventory, InventorySlot.RJ_COMPONENT_AND_ARMAMENTS, false)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -36,7 +36,9 @@ export const modularWeaponCraftingController: RequestHandler = async (req, res)
|
|||||||
const inventory = await getInventory(accountId);
|
const inventory = await getInventory(accountId);
|
||||||
|
|
||||||
let defaultUpgrades: IDefaultUpgrade[] | undefined;
|
let defaultUpgrades: IDefaultUpgrade[] | undefined;
|
||||||
const defaultOverwrites: Partial<IEquipmentDatabase> = {};
|
const defaultOverwrites: Partial<IEquipmentDatabase> = {
|
||||||
|
ModularParts: data.Parts
|
||||||
|
};
|
||||||
const inventoryChanges: IInventoryChanges = {};
|
const inventoryChanges: IInventoryChanges = {};
|
||||||
if (category == "KubrowPets") {
|
if (category == "KubrowPets") {
|
||||||
const traits = {
|
const traits = {
|
||||||
@ -151,7 +153,7 @@ export const modularWeaponCraftingController: RequestHandler = async (req, res)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
defaultOverwrites.Configs = applyDefaultUpgrades(inventory, defaultUpgrades);
|
defaultOverwrites.Configs = applyDefaultUpgrades(inventory, defaultUpgrades);
|
||||||
addEquipment(inventory, category, data.WeaponType, data.Parts, inventoryChanges, defaultOverwrites);
|
addEquipment(inventory, category, data.WeaponType, defaultOverwrites, inventoryChanges);
|
||||||
combineInventoryChanges(
|
combineInventoryChanges(
|
||||||
inventoryChanges,
|
inventoryChanges,
|
||||||
occupySlot(inventory, productCategoryToInventoryBin(category)!, !!data.isWebUi)
|
occupySlot(inventory, productCategoryToInventoryBin(category)!, !!data.isWebUi)
|
||||||
|
@ -45,24 +45,18 @@ export const modularWeaponSaleController: RequestHandler = async (req, res) => {
|
|||||||
const defaultUpgrades = getDefaultUpgrades(weaponInfo.ModularParts);
|
const defaultUpgrades = getDefaultUpgrades(weaponInfo.ModularParts);
|
||||||
const configs = applyDefaultUpgrades(inventory, defaultUpgrades);
|
const configs = applyDefaultUpgrades(inventory, defaultUpgrades);
|
||||||
const inventoryChanges: IInventoryChanges = {
|
const inventoryChanges: IInventoryChanges = {
|
||||||
...addEquipment(
|
...addEquipment(inventory, category, weaponInfo.ItemType, {
|
||||||
inventory,
|
Features: EquipmentFeatures.DOUBLE_CAPACITY | EquipmentFeatures.GILDED,
|
||||||
category,
|
ItemName: payload.ItemName,
|
||||||
weaponInfo.ItemType,
|
Configs: configs,
|
||||||
weaponInfo.ModularParts,
|
ModularParts: weaponInfo.ModularParts,
|
||||||
{},
|
Polarity: [
|
||||||
{
|
{
|
||||||
Features: EquipmentFeatures.DOUBLE_CAPACITY | EquipmentFeatures.GILDED,
|
Slot: payload.PolarizeSlot,
|
||||||
ItemName: payload.ItemName,
|
Value: payload.PolarizeValue
|
||||||
Configs: configs,
|
}
|
||||||
Polarity: [
|
]
|
||||||
{
|
}),
|
||||||
Slot: payload.PolarizeSlot,
|
|
||||||
Value: payload.PolarizeValue
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
),
|
|
||||||
...occupySlot(inventory, productCategoryToInventoryBin(category)!, true),
|
...occupySlot(inventory, productCategoryToInventoryBin(category)!, true),
|
||||||
...updateCurrency(inventory, weaponInfo.PremiumPrice, true)
|
...updateCurrency(inventory, weaponInfo.PremiumPrice, true)
|
||||||
};
|
};
|
||||||
|
@ -154,23 +154,22 @@ export const addStartingGear = async (
|
|||||||
|
|
||||||
//TODO: properly merge weapon bin changes it is currently static here
|
//TODO: properly merge weapon bin changes it is currently static here
|
||||||
const inventoryChanges: IInventoryChanges = {};
|
const inventoryChanges: IInventoryChanges = {};
|
||||||
addEquipment(inventory, "LongGuns", LongGuns[0].ItemType, undefined, inventoryChanges);
|
addEquipment(inventory, "LongGuns", LongGuns[0].ItemType, { IsNew: false }, inventoryChanges);
|
||||||
addEquipment(inventory, "Pistols", Pistols[0].ItemType, undefined, inventoryChanges);
|
addEquipment(inventory, "Pistols", Pistols[0].ItemType, { IsNew: false }, inventoryChanges);
|
||||||
addEquipment(inventory, "Melee", Melee[0].ItemType, undefined, inventoryChanges);
|
addEquipment(inventory, "Melee", Melee[0].ItemType, { IsNew: false }, inventoryChanges);
|
||||||
await addPowerSuit(inventory, Suits[0].ItemType, inventoryChanges);
|
await addPowerSuit(inventory, Suits[0].ItemType, { IsNew: false }, inventoryChanges);
|
||||||
addEquipment(
|
addEquipment(
|
||||||
inventory,
|
inventory,
|
||||||
"DataKnives",
|
"DataKnives",
|
||||||
"/Lotus/Weapons/Tenno/HackingDevices/TnHackingDevice/TnHackingDeviceWeapon",
|
"/Lotus/Weapons/Tenno/HackingDevices/TnHackingDevice/TnHackingDeviceWeapon",
|
||||||
undefined,
|
{ XP: 450_000, IsNew: false },
|
||||||
inventoryChanges,
|
inventoryChanges
|
||||||
{ XP: 450_000 }
|
|
||||||
);
|
);
|
||||||
addEquipment(
|
addEquipment(
|
||||||
inventory,
|
inventory,
|
||||||
"Scoops",
|
"Scoops",
|
||||||
"/Lotus/Weapons/Tenno/Speedball/SpeedballWeaponTest",
|
"/Lotus/Weapons/Tenno/Speedball/SpeedballWeaponTest",
|
||||||
undefined,
|
{ IsNew: false },
|
||||||
inventoryChanges
|
inventoryChanges
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -531,14 +530,7 @@ export const addItem = async (
|
|||||||
]
|
]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
const inventoryChanges = addEquipment(
|
const inventoryChanges = addEquipment(inventory, weapon.productCategory, typeName, defaultOverwrites);
|
||||||
inventory,
|
|
||||||
weapon.productCategory,
|
|
||||||
typeName,
|
|
||||||
[],
|
|
||||||
{},
|
|
||||||
defaultOverwrites
|
|
||||||
);
|
|
||||||
if (weapon.additionalItems) {
|
if (weapon.additionalItems) {
|
||||||
for (const item of weapon.additionalItems) {
|
for (const item of weapon.additionalItems) {
|
||||||
combineInventoryChanges(inventoryChanges, await addItem(inventory, item, 1));
|
combineInventoryChanges(inventoryChanges, await addItem(inventory, item, 1));
|
||||||
@ -639,12 +631,9 @@ export const addItem = async (
|
|||||||
switch (typeName.substr(1).split("/")[2]) {
|
switch (typeName.substr(1).split("/")[2]) {
|
||||||
default: {
|
default: {
|
||||||
return {
|
return {
|
||||||
...(await addPowerSuit(
|
...(await addPowerSuit(inventory, typeName, {
|
||||||
inventory,
|
Features: premiumPurchase ? EquipmentFeatures.DOUBLE_CAPACITY : undefined
|
||||||
typeName,
|
})),
|
||||||
{},
|
|
||||||
premiumPurchase ? EquipmentFeatures.DOUBLE_CAPACITY : undefined
|
|
||||||
)),
|
|
||||||
...occupySlot(inventory, InventorySlot.SUITS, premiumPurchase)
|
...occupySlot(inventory, InventorySlot.SUITS, premiumPurchase)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -864,8 +853,8 @@ const addSentinelWeapon = (
|
|||||||
export const addPowerSuit = async (
|
export const addPowerSuit = async (
|
||||||
inventory: TInventoryDatabaseDocument,
|
inventory: TInventoryDatabaseDocument,
|
||||||
powersuitName: string,
|
powersuitName: string,
|
||||||
inventoryChanges: IInventoryChanges = {},
|
defaultOverwrites?: Partial<IEquipmentDatabase>,
|
||||||
features?: number
|
inventoryChanges: IInventoryChanges = {}
|
||||||
): Promise<IInventoryChanges> => {
|
): Promise<IInventoryChanges> => {
|
||||||
const powersuit = ExportWarframes[powersuitName] as IPowersuit | undefined;
|
const powersuit = ExportWarframes[powersuitName] as IPowersuit | undefined;
|
||||||
const exalted = powersuit?.exalted ?? [];
|
const exalted = powersuit?.exalted ?? [];
|
||||||
@ -879,15 +868,20 @@ export const addPowerSuit = async (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const suitIndex =
|
const suit: Omit<IEquipmentDatabase, "_id"> = Object.assign(
|
||||||
inventory.Suits.push({
|
{
|
||||||
ItemType: powersuitName,
|
ItemType: powersuitName,
|
||||||
Configs: [],
|
Configs: [],
|
||||||
UpgradeVer: 101,
|
UpgradeVer: 101,
|
||||||
XP: 0,
|
XP: 0,
|
||||||
Features: features,
|
|
||||||
IsNew: true
|
IsNew: true
|
||||||
}) - 1;
|
},
|
||||||
|
defaultOverwrites
|
||||||
|
);
|
||||||
|
if (!suit.IsNew) {
|
||||||
|
suit.IsNew = undefined;
|
||||||
|
}
|
||||||
|
const suitIndex = inventory.Suits.push(suit) - 1;
|
||||||
inventoryChanges.Suits ??= [];
|
inventoryChanges.Suits ??= [];
|
||||||
inventoryChanges.Suits.push(inventory.Suits[suitIndex].toJSON<IEquipmentClient>());
|
inventoryChanges.Suits.push(inventory.Suits[suitIndex].toJSON<IEquipmentClient>());
|
||||||
return inventoryChanges;
|
return inventoryChanges;
|
||||||
@ -1208,20 +1202,21 @@ export const addEquipment = (
|
|||||||
inventory: TInventoryDatabaseDocument,
|
inventory: TInventoryDatabaseDocument,
|
||||||
category: TEquipmentKey,
|
category: TEquipmentKey,
|
||||||
type: string,
|
type: string,
|
||||||
modularParts?: string[],
|
defaultOverwrites?: Partial<IEquipmentDatabase>,
|
||||||
inventoryChanges: IInventoryChanges = {},
|
inventoryChanges: IInventoryChanges = {}
|
||||||
defaultOverwrites?: Partial<IEquipmentDatabase>
|
|
||||||
): IInventoryChanges => {
|
): IInventoryChanges => {
|
||||||
const equipment = Object.assign(
|
const equipment: Omit<IEquipmentDatabase, "_id"> = Object.assign(
|
||||||
{
|
{
|
||||||
ItemType: type,
|
ItemType: type,
|
||||||
Configs: [],
|
Configs: [],
|
||||||
XP: 0,
|
XP: 0,
|
||||||
ModularParts: modularParts,
|
IsNew: category != "CrewShipWeapons" && category != "CrewShipSalvagedWeapons"
|
||||||
IsNew: category != "CrewShipWeapons" && category != "CrewShipSalvagedWeapons" ? true : undefined
|
|
||||||
},
|
},
|
||||||
defaultOverwrites
|
defaultOverwrites
|
||||||
);
|
);
|
||||||
|
if (!equipment.IsNew) {
|
||||||
|
equipment.IsNew = undefined;
|
||||||
|
}
|
||||||
const index = inventory[category].push(equipment) - 1;
|
const index = inventory[category].push(equipment) - 1;
|
||||||
|
|
||||||
inventoryChanges[category] ??= [];
|
inventoryChanges[category] ??= [];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user