forked from OpenWF/SpaceNinjaServer
feat: night of naberus and qtcc flashsales (#2901)
Reviewed-on: OpenWF/SpaceNinjaServer#2901 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>
This commit is contained in:
parent
4b3e2dfc62
commit
7d3915fe05
@ -35,7 +35,8 @@ import type {
|
|||||||
IVoidTrader,
|
IVoidTrader,
|
||||||
IVoidTraderOffer,
|
IVoidTraderOffer,
|
||||||
IWorldState,
|
IWorldState,
|
||||||
TCircuitGameMode
|
TCircuitGameMode,
|
||||||
|
IFlashSale
|
||||||
} from "../types/worldStateTypes.ts";
|
} from "../types/worldStateTypes.ts";
|
||||||
import { toMongoDate, toOid, version_compare } from "../helpers/inventoryHelpers.ts";
|
import { toMongoDate, toOid, version_compare } from "../helpers/inventoryHelpers.ts";
|
||||||
import { logger } from "../utils/logger.ts";
|
import { logger } from "../utils/logger.ts";
|
||||||
@ -1580,21 +1581,16 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (config.worldState?.qtccAlerts) {
|
if (config.worldState?.qtccAlerts) {
|
||||||
|
const activationTimeStamp = "1759327200000";
|
||||||
|
const expiryTimeStamp = "2000000000000";
|
||||||
|
|
||||||
worldState.Alerts.push(
|
worldState.Alerts.push(
|
||||||
{
|
{
|
||||||
_id: {
|
_id: {
|
||||||
$oid: "68dc23c42e9d3acfa708ff3b"
|
$oid: "68dc23c42e9d3acfa708ff3b"
|
||||||
},
|
},
|
||||||
Activation: {
|
Activation: { $date: { $numberLong: activationTimeStamp } },
|
||||||
$date: {
|
Expiry: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
$numberLong: "1759327200000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Expiry: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: "2000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MissionInfo: {
|
MissionInfo: {
|
||||||
location: "SolNode123",
|
location: "SolNode123",
|
||||||
missionType: "MT_SURVIVAL",
|
missionType: "MT_SURVIVAL",
|
||||||
@ -1618,16 +1614,8 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
_id: {
|
_id: {
|
||||||
$oid: "68dc2466e298b4f04206687a"
|
$oid: "68dc2466e298b4f04206687a"
|
||||||
},
|
},
|
||||||
Activation: {
|
Activation: { $date: { $numberLong: activationTimeStamp } },
|
||||||
$date: {
|
Expiry: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
$numberLong: "1759327200000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Expiry: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: "2000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MissionInfo: {
|
MissionInfo: {
|
||||||
location: "SolNode149",
|
location: "SolNode149",
|
||||||
missionType: "MT_DEFENSE",
|
missionType: "MT_DEFENSE",
|
||||||
@ -1651,16 +1639,8 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
_id: {
|
_id: {
|
||||||
$oid: "68dc26865e7cb56b820b4252"
|
$oid: "68dc26865e7cb56b820b4252"
|
||||||
},
|
},
|
||||||
Activation: {
|
Activation: { $date: { $numberLong: activationTimeStamp } },
|
||||||
$date: {
|
Expiry: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
$numberLong: "1759327200000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Expiry: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: "2000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MissionInfo: {
|
MissionInfo: {
|
||||||
location: "SolNode39",
|
location: "SolNode39",
|
||||||
missionType: "MT_EXCAVATE",
|
missionType: "MT_EXCAVATE",
|
||||||
@ -1681,6 +1661,72 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
ForceUnlock: true
|
ForceUnlock: true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const storeItems: (Partial<IFlashSale> & { TypeName: string })[] = [
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2021D", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Operator/Tattoos/TattooTennoI", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Operator/Tattoos/TattooTennoH", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Clan/QTCC2024EmblemItem", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Conquera2024Display", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageConqueraGlyphVII", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageConqueraGlyphVI", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Interface/Graphics/CustomUI/ConqueraStyle", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Interface/Graphics/CustomUI/Backgrounds/ConqueraBackground", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Conquera2021Deco", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2022A", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2021B", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2021A", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/TnCharityRibbonSyandana", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2021C", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Venus/Conquera2023CommunityDisplay", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageConqueraGlyphUpdated", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Sigils/QTCC2023ConqueraSigil", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Sigils/ConqueraSigil", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Effects/Conquera2022Ephemera", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Effects/ConqueraEphemera", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/TnCharityRibbonArmor/ConqueraArmorL", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/TnCharityRibbonArmor/ConqueraArmorA", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/TnCharityRibbonArmor/ConqueraChestRibbon", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Plushies/PlushyProtectorStalker", PremiumOverride: 35 }
|
||||||
|
];
|
||||||
|
|
||||||
|
worldState.FlashSales.push(
|
||||||
|
...storeItems.map(item => ({
|
||||||
|
...{
|
||||||
|
StartDate: { $date: { $numberLong: activationTimeStamp } },
|
||||||
|
EndDate: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ProductExpiryOverride: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ShowInMarket: item.ShowInMarket ?? true,
|
||||||
|
HideFromMarket: item.HideFromMarket ?? false,
|
||||||
|
SupporterPack: item.SupporterPack ?? false,
|
||||||
|
Discount: item.Discount ?? 0,
|
||||||
|
BogoBuy: item.BogoBuy ?? 0,
|
||||||
|
BogoGet: item.BogoGet ?? 0,
|
||||||
|
RegularOverride: item.RegularOverride ?? 0,
|
||||||
|
PremiumOverride: item.PremiumOverride ?? 0
|
||||||
|
},
|
||||||
|
...item
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
|
||||||
|
const seasonalItems = storeItems.map(item => item.TypeName);
|
||||||
|
|
||||||
|
const seasonalCategory = worldState.InGameMarket.LandingPage.Categories.find(
|
||||||
|
c => c.CategoryName == "COMMUNITY"
|
||||||
|
);
|
||||||
|
if (seasonalCategory) {
|
||||||
|
seasonalCategory.Items ??= [];
|
||||||
|
seasonalCategory.Items.push(...seasonalItems);
|
||||||
|
} else {
|
||||||
|
worldState.InGameMarket.LandingPage.Categories.push({
|
||||||
|
CategoryName: "COMMUNITY",
|
||||||
|
Name: "/Lotus/Language/Store/CommunityCategoryTitle",
|
||||||
|
Icon: "community",
|
||||||
|
AddToMenu: true,
|
||||||
|
Items: seasonalItems
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const isFebruary = date.getUTCMonth() == 1;
|
const isFebruary = date.getUTCMonth() == 1;
|
||||||
@ -2048,82 +2094,39 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
NightLevel: "/Lotus/Levels/GrineerBeach/GrineerBeachEventNight.level"
|
NightLevel: "/Lotus/Levels/GrineerBeach/GrineerBeachEventNight.level"
|
||||||
});
|
});
|
||||||
|
|
||||||
const baseStoreItem = {
|
const storeItems: (Partial<IFlashSale> & { TypeName: string })[] = [
|
||||||
ShowInMarket: true,
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/WaterFightNoggleBundle", PremiumOverride: 240 },
|
||||||
HideFromMarket: false,
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFBeastMasterBobbleHead", PremiumOverride: 35 },
|
||||||
SupporterPack: false,
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFChargerBobbleHead", PremiumOverride: 35 },
|
||||||
Discount: 0,
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFEngineerBobbleHead", PremiumOverride: 35 },
|
||||||
BogoBuy: 0,
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFGruntBobbleHead", PremiumOverride: 35 },
|
||||||
BogoGet: 0,
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImagePopsicleGrineerPurple", RegularOverride: 1 },
|
||||||
StartDate: { $date: { $numberLong: activationTimeStamp } },
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHealerBobbleHead", PremiumOverride: 35 },
|
||||||
EndDate: { $date: { $numberLong: expiryTimeStamp } },
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHeavyBobbleHead", PremiumOverride: 35 },
|
||||||
ProductExpiryOverride: { $date: { $numberLong: expiryTimeStamp } }
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHellionBobbleHead", PremiumOverride: 35 },
|
||||||
};
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFSniperBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFTankBobbleHead", PremiumOverride: 35 },
|
||||||
const storeItems = [
|
{ TypeName: "/Lotus/Types/StoreItems/SuitCustomizations/ColourPickerRollers", PremiumOverride: 75 }
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/StoreItems/Packages/WaterFightNoggleBundle",
|
|
||||||
PremiumOverride: 240,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFBeastMasterBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFChargerBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFEngineerBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFGruntBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImagePopsicleGrineerPurple",
|
|
||||||
PremiumOverride: 0,
|
|
||||||
RegularOverride: 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHealerBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHeavyBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHellionBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFSniperBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFTankBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/StoreItems/SuitCustomizations/ColourPickerRollers",
|
|
||||||
PremiumOverride: 75,
|
|
||||||
RegularOverride: 0
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
worldState.FlashSales.push(...storeItems.map(item => ({ ...baseStoreItem, ...item })));
|
worldState.FlashSales.push(
|
||||||
|
...storeItems.map(item => ({
|
||||||
|
...{
|
||||||
|
StartDate: { $date: { $numberLong: activationTimeStamp } },
|
||||||
|
EndDate: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ProductExpiryOverride: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ShowInMarket: item.ShowInMarket ?? true,
|
||||||
|
HideFromMarket: item.HideFromMarket ?? false,
|
||||||
|
SupporterPack: item.SupporterPack ?? false,
|
||||||
|
Discount: item.Discount ?? 0,
|
||||||
|
BogoBuy: item.BogoBuy ?? 0,
|
||||||
|
BogoGet: item.BogoGet ?? 0,
|
||||||
|
RegularOverride: item.RegularOverride ?? 0,
|
||||||
|
PremiumOverride: item.PremiumOverride ?? 0
|
||||||
|
},
|
||||||
|
...item
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
|
||||||
const seasonalItems = storeItems.map(item => item.TypeName);
|
const seasonalItems = storeItems.map(item => item.TypeName);
|
||||||
|
|
||||||
@ -2762,22 +2765,18 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
|
|
||||||
const isOctober = date.getUTCMonth() == 9; // October = month index 9
|
const isOctober = date.getUTCMonth() == 9; // October = month index 9
|
||||||
if (config.worldState?.naberusNightsOverride ?? isOctober) {
|
if (config.worldState?.naberusNightsOverride ?? isOctober) {
|
||||||
|
const activationTimeStamp = config.worldState?.naberusNightsOverride
|
||||||
|
? "1727881200000"
|
||||||
|
: Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1).toString();
|
||||||
|
|
||||||
|
const expiryTimeStamp = config.worldState?.naberusNightsOverride
|
||||||
|
? "2000000000000"
|
||||||
|
: Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 1).toString();
|
||||||
|
|
||||||
worldState.Goals.push({
|
worldState.Goals.push({
|
||||||
_id: { $oid: "66fd602de1778d583419e8e7" },
|
_id: { $oid: "66fd602de1778d583419e8e7" },
|
||||||
Activation: {
|
Activation: { $date: { $numberLong: activationTimeStamp } },
|
||||||
$date: {
|
Expiry: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
$numberLong: config.worldState?.naberusNightsOverride
|
|
||||||
? "1727881200000"
|
|
||||||
: Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1).toString()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Expiry: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: config.worldState?.naberusNightsOverride
|
|
||||||
? "2000000000000"
|
|
||||||
: Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 1).toString()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Count: 0,
|
Count: 0,
|
||||||
Goal: 0,
|
Goal: 0,
|
||||||
Success: 0,
|
Success: 0,
|
||||||
@ -2788,6 +2787,181 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
Tag: "DeimosHalloween",
|
Tag: "DeimosHalloween",
|
||||||
Node: "DeimosHub"
|
Node: "DeimosHub"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const storeItems: (Partial<IFlashSale> & { TypeName: string })[] = [
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2023GlyphBundleA", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2021GlyphBundle", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2019GlyphBundleA", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2019GlyphBundleB", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenGlyphBundle", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2023ArmorBundle", PremiumOverride: 125 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenCrpCircArmorPack", PremiumOverride: 100 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenScarfBundleB", PremiumOverride: 80 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenSkinPack", PremiumOverride: 175 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenShipSkinBundle", PremiumOverride: 80 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenSkinPackC", PremiumOverride: 175 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenSkinPackII", PremiumOverride: 145 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenScarfBundle", PremiumOverride: 130 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/AcolyteNoggleBundle", PremiumOverride: 160 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteAreaCasterBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteDuellistBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteControlBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteHeavyBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteRogueBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteStrikerBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/SuitCustomizations/ColourPickerHalloweenItemA", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/Halloween2014Wings/Halloween2014ArmArmor", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Festivities/PumpkinHead", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenRegorAxeShield", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019CheshireKavat",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenAkvasto", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenAngstrum", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenBoltor", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019GhostChibiWisp",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenBraton", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageHalloween2016A", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageHalloween2016C", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageHalloween2016B", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenBuzlok", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageHalloween2016D", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019CreepyClem", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDaikyu", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Dethcube",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDragonNikana", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDualZoren", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019FrankenCorpus",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Grineer",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGlaive", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGalatine", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGrakata", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGorgon", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGlaxion", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenTwinGremlins", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGrinlok", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/HalloweenFireFlyScarf", PremiumOverride: 90 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenImperator", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenKronen", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Lotus",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenJatKittag", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/HalloweenKyropteraScarf", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenKunai", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Liset/LisetSkinHalloween", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Liset/LisetInsectSkinHalloween", PremiumOverride: 50 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageChillingGlyphFour",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenMarelok", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenNikana", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenNukor", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Loid",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenOpticor", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenOrthos", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenParis", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageChillingGlyphTwo",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/CrpCircleArmour/HalloweenCrpCircC", PremiumOverride: 45 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/CrpCircleArmour/HalloweenCrpCircA", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/CrpCircleArmour/HalloweenCrpCircL", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenScindo", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019GhoulGrave", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Pumpkin",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSarpa", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageChillingGlyphThree",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSilvaAndAegis", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageChillingGlyphOne",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSoma", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSkana", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019SlimeLoki", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSobek", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSonicor", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSimulor", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenTonkor", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019TrickOrBalas",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSpira", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenStradavar", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenTwinGrakatas", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenArchSword", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenLato", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019Werefested", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/HalloweenErosionCape", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenVasto", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDarkSplitSword", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDarkDagger", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/HalloweenGrnBannerScarf", PremiumOverride: 75 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenAmprex", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenSkinPackD", PremiumOverride: 180 }
|
||||||
|
];
|
||||||
|
|
||||||
|
worldState.FlashSales.push(
|
||||||
|
...storeItems.map(item => ({
|
||||||
|
...{
|
||||||
|
StartDate: { $date: { $numberLong: activationTimeStamp } },
|
||||||
|
EndDate: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ProductExpiryOverride: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ShowInMarket: item.ShowInMarket ?? true,
|
||||||
|
HideFromMarket: item.HideFromMarket ?? false,
|
||||||
|
SupporterPack: item.SupporterPack ?? false,
|
||||||
|
Discount: item.Discount ?? 0,
|
||||||
|
BogoBuy: item.BogoBuy ?? 0,
|
||||||
|
BogoGet: item.BogoGet ?? 0,
|
||||||
|
RegularOverride: item.RegularOverride ?? 0,
|
||||||
|
PremiumOverride: item.PremiumOverride ?? 0
|
||||||
|
},
|
||||||
|
...item
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
|
||||||
|
const seasonalItems = storeItems.map(item => item.TypeName);
|
||||||
|
const seasonalCategory = worldState.InGameMarket.LandingPage.Categories.find(c => c.CategoryName == "SEASONAL");
|
||||||
|
|
||||||
|
if (seasonalCategory) {
|
||||||
|
seasonalCategory.Items ??= [];
|
||||||
|
seasonalCategory.Items.push(...seasonalItems);
|
||||||
|
} else {
|
||||||
|
worldState.InGameMarket.LandingPage.Categories.push({
|
||||||
|
CategoryName: "SEASONAL",
|
||||||
|
Name: "/Lotus/Language/Store/SeasonalCategoryTitle",
|
||||||
|
Icon: "seasonal",
|
||||||
|
AddToMenu: true,
|
||||||
|
Items: seasonalItems
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.worldState?.bellyOfTheBeast) {
|
if (config.worldState?.bellyOfTheBeast) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user