feat: WeaponSkins IsNew flag #1347
@ -586,7 +586,8 @@ const spectreLoadoutsSchema = new Schema<ISpectreLoadout>(
 | 
			
		||||
 | 
			
		||||
const weaponSkinsSchema = new Schema<IWeaponSkinDatabase>(
 | 
			
		||||
    {
 | 
			
		||||
        ItemType: String
 | 
			
		||||
        ItemType: String,
 | 
			
		||||
        IsNew: Boolean
 | 
			
		||||
    },
 | 
			
		||||
    { id: false }
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
@ -938,7 +938,7 @@ export const addSkin = (
 | 
			
		||||
    typeName: string,
 | 
			
		||||
    inventoryChanges: IInventoryChanges = {}
 | 
			
		||||
): IInventoryChanges => {
 | 
			
		||||
    const index = inventory.WeaponSkins.push({ ItemType: typeName }) - 1;
 | 
			
		||||
    const index = inventory.WeaponSkins.push({ ItemType: typeName, IsNew: true }) - 1;
 | 
			
		||||
    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
 | 
			
		||||
    inventoryChanges.WeaponSkins ??= [];
 | 
			
		||||
    (inventoryChanges.WeaponSkins as IWeaponSkinClient[]).push(
 | 
			
		||||
 | 
			
		||||
@ -140,6 +140,13 @@ export const handleInventoryItemConfigChange = async (
 | 
			
		||||
                inventory.UseAdultOperatorLoadout = equipment as boolean;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            case "WeaponSkins": {
 | 
			
		||||
                const itemEntries = equipment as IItemEntry;
 | 
			
		||||
                for (const [itemId, itemConfigEntries] of Object.entries(itemEntries)) {
 | 
			
		||||
                    inventory.WeaponSkins.id(itemId)!.IsNew = itemConfigEntries.IsNew;
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            default: {
 | 
			
		||||
                if (equipmentKeys.includes(equipmentName as TEquipmentKey) && equipmentName != "ValidNewLoadoutId") {
 | 
			
		||||
                    logger.debug(`general Item config saved of type ${equipmentName}`, {
 | 
			
		||||
 | 
			
		||||
@ -1017,6 +1017,7 @@ export interface ITaunt {
 | 
			
		||||
 | 
			
		||||
export interface IWeaponSkinDatabase {
 | 
			
		||||
    ItemType: string;
 | 
			
		||||
    IsNew?: boolean;
 | 
			
		||||
    _id: Types.ObjectId;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -36,6 +36,7 @@ export interface ISaveLoadoutRequest {
 | 
			
		||||
    EquippedGear: string[];
 | 
			
		||||
    EquippedEmotes: string[];
 | 
			
		||||
    UseAdultOperatorLoadout: boolean;
 | 
			
		||||
    WeaponSkins: IItemEntry;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ISaveLoadoutRequestNoUpgradeVer extends Omit<ISaveLoadoutRequest, "UpgradeVer"> {}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user