From 53f19c4da3a1465bdb2f9f19c4e3ffd1f025ea0c Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Thu, 10 Dec 2020 16:53:37 -0600 Subject: [PATCH] feat(event): Winter Wonderland 2021 and Gift-One-Get-One Promotion --- test/api/unit/libs/payments/payments.test.js | 114 ++++++++++++++++-- .../npc/birthday/market_background.png | Bin .../npc/birthday/market_banner_npc.png | Bin .../npc/birthday/quest_shop_background.png | Bin .../static}/npc/birthday/quest_shop_npc.png | Bin .../seasonal_shop_opened_background.png | Bin .../npc/birthday/seasonal_shop_opened_npc.png | Bin .../npc/birthday/tavern_background.png | Bin .../static}/npc/birthday/tavern_npc.png | Bin .../birthday/time_travelers_background.png | Bin .../birthday/time_travelers_open_banner.png | Bin .../static}/npc/fall/market_background.png | Bin .../static}/npc/fall/market_banner_npc.png | Bin .../npc/fall/quest_shop_background.png | Bin .../static}/npc/fall/quest_shop_npc.png | Bin .../fall/seasonal_shop_opened_background.png | Bin .../npc/fall/seasonal_shop_opened_npc.png | Bin .../static}/npc/fall/tavern_background.png | Bin .../static}/npc/fall/tavern_npc.png | Bin .../npc/fall/time_travelers_background.png | Bin .../npc/fall/time_travelers_open_banner.png | Bin .../npc/habitoween/market_background.png | Bin .../npc/habitoween/market_banner_npc.png | Bin .../npc/habitoween/quest_shop_background.png | Bin .../static}/npc/habitoween/quest_shop_npc.png | Bin .../seasonal_shop_opened_background.png | Bin .../habitoween/seasonal_shop_opened_npc.png | Bin .../npc/habitoween/tavern_background.png | Bin .../static}/npc/habitoween/tavern_npc.png | Bin .../habitoween/time_travelers_background.png | Bin 0 -> 21550 bytes .../habitoween/time_travelers_open_banner.png | Bin 0 -> 10026 bytes .../static}/npc/normal/market_background.png | Bin .../static}/npc/normal/market_banner_npc.png | Bin .../public/static/npc/normal/npc_justin.png | Bin 0 -> 18885 bytes .../npc/normal/quest_shop_background.png | Bin .../static}/npc/normal/quest_shop_npc.png | Bin .../seasonal_shop_closed_background.png | Bin .../npc/normal}/seasonal_shop_closed_npc.png | Bin .../static}/npc/normal/tavern_background.png | Bin .../static}/npc/normal/tavern_npc.png | Bin .../npc/normal/time_travelers_background.png | Bin .../normal}/time_travelers_closed_banner.png | Bin .../npc/normal/time_travelers_open_banner.png | Bin .../static}/npc/nye/market_background.png | Bin .../static}/npc/nye/market_banner_npc.png | Bin .../static}/npc/nye/quest_shop_background.png | Bin .../static}/npc/nye/quest_shop_npc.png | Bin .../nye/seasonal_shop_opened_background.png | Bin .../npc/nye/seasonal_shop_opened_npc.png | Bin .../static}/npc/nye/tavern_background.png | Bin .../static}/npc/nye/tavern_npc.png | Bin .../npc/nye}/time_travelers_background.png | Bin .../npc/nye}/time_travelers_open_banner.png | Bin .../static/npc/spring}/market_background.png | Bin .../static}/npc/spring/market_banner_npc.png | Bin .../npc/spring}/quest_shop_background.png | Bin .../static}/npc/spring/quest_shop_npc.png | Bin .../seasonal_shop_opened_background.png | Bin .../npc/spring/seasonal_shop_opened_npc.png | Bin .../static/npc/spring}/tavern_background.png | Bin .../static}/npc/spring/tavern_npc.png | Bin .../npc/spring}/time_travelers_background.png | Bin .../npc/spring/time_travelers_open_banner.png | Bin .../static}/npc/summer/market_background.png | Bin .../static}/npc/summer/market_banner_npc.png | Bin .../npc/summer/quest_shop_background.png | Bin .../static}/npc/summer/quest_shop_npc.png | Bin .../seasonal_shop_opened_background.png | Bin .../npc/summer/seasonal_shop_opened_npc.png | Bin .../static}/npc/summer/tavern_background.png | Bin .../static}/npc/summer/tavern_npc.png | Bin .../npc/summer/time_travelers_background.png | Bin .../npc/summer/time_travelers_open_banner.png | Bin .../npc/thanksgiving/market_background.png | Bin .../npc/thanksgiving/market_banner_npc.png | Bin .../thanksgiving/quest_shop_background.png | Bin .../npc/thanksgiving/quest_shop_npc.png | Bin .../seasonal_shop_closed_background.png | Bin .../thanksgiving/seasonal_shop_closed_npc.png | Bin .../seasonal_shop_opened_background.png | Bin .../thanksgiving/seasonal_shop_opened_npc.png | Bin .../npc/thanksgiving/tavern_background.png | Bin .../static}/npc/thanksgiving/tavern_npc.png | Bin .../npc/valentines/market_background.png | Bin .../npc/valentines/market_banner_npc.png | Bin .../npc/valentines/quest_shop_background.png | Bin 0 -> 13418 bytes .../static/npc/valentines/quest_shop_npc.png | Bin 0 -> 5046 bytes .../npc/valentines/tavern_background.png | Bin .../static}/npc/valentines/tavern_npc.png | Bin .../valentines/time_travelers_background.png} | Bin 3945 -> 6625 bytes .../valentines/time_travelers_open_banner.png | Bin 0 -> 8038 bytes .../static}/npc/winter/market_background.png | Bin .../static}/npc/winter/market_banner_npc.png | Bin .../public/static/npc/winter/npc_justin.png | Bin 0 -> 3368 bytes .../npc/winter/quest_shop_background.png | Bin .../static}/npc/winter/quest_shop_npc.png | Bin .../seasonal_shop_opened_background.png | Bin .../npc/winter/seasonal_shop_opened_npc.png | Bin .../static}/npc/winter/tavern_background.png | Bin .../static}/npc/winter/tavern_npc.png | Bin .../npc/winter/time_travelers_background.png | Bin 0 -> 5867 bytes .../npc/winter/time_travelers_open_banner.png | Bin 0 -> 6543 bytes website/client/src/app.vue | 4 + .../npc/aprilfools/market_banner_npc.png | Bin 13037 -> 0 bytes .../images/npc/aprilfools/npc_aprilFool.png | Bin 19698 -> 0 bytes .../images/npc/aprilfools/npc_bailey.png | Bin 915 -> 0 bytes .../images/npc/aprilfools/npc_justin.png | Bin 13176 -> 0 bytes .../assets/images/npc/aprilfools/npc_matt.png | Bin 6811 -> 0 bytes .../images/npc/aprilfools/quest_shop_npc.png | Bin 7950 -> 0 bytes .../aprilfools/seasonal_shop_opened_npc.png | Bin 13496 -> 0 bytes .../images/npc/aprilfools/tavern_npc.png | Bin 10434 -> 0 bytes .../aprilfools/time_travelers_open_banner.png | Bin 9037 -> 0 bytes .../assets/images/npc/birthday/npc_justin.png | Bin 4525 -> 0 bytes .../seasonal_shop_closed_background.png | Bin 10162 -> 0 bytes .../npc/birthday/seasonal_shop_closed_npc.png | Bin 7015 -> 0 bytes .../birthday/time_travelers_closed_banner.png | Bin 6702 -> 0 bytes .../images/npc/broken/market_broken_layer.png | Bin 7560 -> 0 bytes .../images/npc/broken/market_broken_npc.png | Bin 10276 -> 0 bytes .../broken/quest_shop_broken_background.png | Bin 11500 -> 0 bytes .../npc/broken/quest_shop_broken_layer.png | Bin 4499 -> 0 bytes .../npc/broken/quest_shop_broken_npc.png | Bin 6495 -> 0 bytes .../broken/rage-strike-market-scaled@2x.png | Bin 19185 -> 0 bytes .../broken/rage-strike-quests-scaled@2x.png | Bin 13440 -> 0 bytes .../rage-strike-seasonalShop-scaled@2x.png | Bin 193313 -> 0 bytes .../seasonal_shop_broken_background.png | Bin 7458 -> 0 bytes .../npc/broken/seasonal_shop_broken_layer.png | Bin 8184 -> 0 bytes .../npc/broken/seasonal_shop_broken_npc.png | Bin 8829 -> 0 bytes .../src/assets/images/npc/fall/npc_justin.png | Bin 4071 -> 0 bytes .../fall/seasonal_shop_closed_background.png | Bin 10162 -> 0 bytes .../npc/fall/seasonal_shop_closed_npc.png | Bin 7015 -> 0 bytes .../npc/fall/time_travelers_closed_banner.png | Bin 6702 -> 0 bytes .../images/npc/habitoween/npc_justin.png | Bin 4619 -> 0 bytes .../npc/habitoween/seasonalshop_open.png | Bin 6356 -> 0 bytes .../assets/images/npc/normal/npc_justin.png | Bin 4371 -> 0 bytes .../seasonal_shop_closed_background.png | Bin 10162 -> 0 bytes .../npc/normal/seasonal_shop_closed_npc.png | Bin 7015 -> 0 bytes .../seasonal_shop_opened_background.png | Bin 10162 -> 0 bytes .../npc/normal/seasonal_shop_opened_npc.png | Bin 7015 -> 0 bytes .../normal/time_travelers_closed_banner.png | Bin 6702 -> 0 bytes .../src/assets/images/npc/nye/npc_justin.png | Bin 4291 -> 0 bytes .../nye/seasonal_shop_closed_background.png | Bin 10162 -> 0 bytes .../npc/nye/seasonal_shop_closed_npc.png | Bin 7015 -> 0 bytes .../images/npc/spring/market_background.png | Bin 4718 -> 0 bytes .../assets/images/npc/spring/npc_justin.png | Bin 4557 -> 0 bytes .../npc/spring/quest_shop_background.png | Bin 7789 -> 0 bytes .../seasonal_shop_closed_background.png | Bin 10162 -> 0 bytes .../npc/spring/seasonal_shop_closed_npc.png | Bin 7015 -> 0 bytes .../seasonal_shop_opened_background.png | Bin 7737 -> 0 bytes .../images/npc/spring/tavern_background.png | Bin 7784 -> 0 bytes .../npc/spring/time_travelers_background.png | Bin 8430 -> 0 bytes .../spring/time_travelers_closed_banner.png | Bin 6702 -> 0 bytes .../assets/images/npc/summer/npc_justin.png | Bin 4529 -> 0 bytes .../seasonal_shop_closed_background.png | Bin 10162 -> 0 bytes .../npc/summer/seasonal_shop_closed_npc.png | Bin 7015 -> 0 bytes .../summer/time_travelers_closed_banner.png | Bin 6702 -> 0 bytes .../assets/images/npc/winter/npc_justin.png | Bin 4364 -> 0 bytes .../seasonal_shop_closed_background.png | Bin 10162 -> 0 bytes .../npc/winter/seasonal_shop_closed_npc.png | Bin 7015 -> 0 bytes .../winter/time_travelers_closed_banner.png | Bin 6702 -> 0 bytes website/client/src/assets/scss/variables.scss | 10 -- .../components/achievements/chooseClass.vue | 36 ++++++ .../client/src/components/creatorIntro.vue | 17 ++- .../client/src/components/groups/tavern.vue | 31 +++-- .../components/header/banners/giftPromo.vue | 107 ++++++++++++++++ .../src/components/inventory/stable/index.vue | 7 +- .../inventory/stable/welcomeModal.vue | 7 +- .../src/components/news/newsContent.vue | 14 ++- .../src/components/payments/sendGemsModal.vue | 17 ++- .../src/components/settings/subscription.vue | 46 ++++--- .../components/shops/featuredItemsHeader.vue | 32 ++--- .../src/components/shops/market/index.vue | 32 ++--- .../src/components/shops/quests/index.vue | 47 +++----- .../src/components/shops/seasonal/index.vue | 53 +++----- .../components/shops/timeTravelers/index.vue | 21 +++- .../world-boss/worldBossRageModal.vue | 3 - website/common/locales/en/content.json | 1 + website/common/locales/en/gear.json | 32 +++++ website/common/locales/en/limited.json | 6 +- website/common/locales/en/settings.json | 1 + website/common/script/content/bundles.js | 2 +- .../common/script/content/constants/events.js | 8 +- .../script/content/constants/seasonalSets.js | 6 + .../script/content/gear/sets/special/index.js | 47 +++++++- .../common/script/content/hatching-potions.js | 32 ++++- website/common/script/content/quests.js | 6 +- .../script/content/shop-featuredItems.js | 72 ++++++++--- .../script/libs/shops-seasonal.config.js | 45 +++++-- .../broad_armor_special_winter2021Healer.png | Bin 0 -> 1019 bytes .../broad_armor_special_winter2021Mage.png | Bin 0 -> 862 bytes .../broad_armor_special_winter2021Rogue.png | Bin 0 -> 1012 bytes .../broad_armor_special_winter2021Warrior.png | Bin 0 -> 939 bytes .../winter/head_special_winter2021Healer.png | Bin 0 -> 673 bytes .../winter/head_special_winter2021Mage.png | Bin 0 -> 749 bytes .../winter/head_special_winter2021Rogue.png | Bin 0 -> 865 bytes .../winter/head_special_winter2021Warrior.png | Bin 0 -> 985 bytes .../shield_special_winter2021Healer.png | Bin 0 -> 476 bytes .../winter/shield_special_winter2021Rogue.png | Bin 0 -> 861 bytes .../shield_special_winter2021Warrior.png | Bin 0 -> 740 bytes .../shop_armor_special_winter2021Healer.png | Bin 0 -> 844 bytes .../shop_armor_special_winter2021Mage.png | Bin 0 -> 715 bytes .../shop_armor_special_winter2021Rogue.png | Bin 0 -> 656 bytes .../shop_armor_special_winter2021Warrior.png | Bin 0 -> 663 bytes .../shop_head_special_winter2021Healer.png | Bin 0 -> 549 bytes .../shop/shop_head_special_winter2021Mage.png | Bin 0 -> 615 bytes .../shop_head_special_winter2021Rogue.png | Bin 0 -> 511 bytes .../shop_head_special_winter2021Warrior.png | Bin 0 -> 614 bytes .../shop_shield_special_winter2021Healer.png | Bin 0 -> 401 bytes .../shop_shield_special_winter2021Rogue.png | Bin 0 -> 461 bytes .../shop_shield_special_winter2021Warrior.png | Bin 0 -> 506 bytes .../shop_weapon_special_winter2021Healer.png | Bin 0 -> 540 bytes .../shop_weapon_special_winter2021Mage.png | Bin 0 -> 921 bytes .../shop_weapon_special_winter2021Rogue.png | Bin 0 -> 531 bytes .../shop_weapon_special_winter2021Warrior.png | Bin 0 -> 355 bytes .../slim_armor_special_winter2021Healer.png | Bin 0 -> 994 bytes .../slim_armor_special_winter2021Mage.png | Bin 0 -> 826 bytes .../slim_armor_special_winter2021Rogue.png | Bin 0 -> 972 bytes .../slim_armor_special_winter2021Warrior.png | Bin 0 -> 884 bytes .../weapon_special_winter2021Healer.png | Bin 0 -> 713 bytes .../winter/weapon_special_winter2021Mage.png | Bin 0 -> 1119 bytes .../winter/weapon_special_winter2021Rogue.png | Bin 0 -> 969 bytes .../weapon_special_winter2021Warrior.png | Bin 0 -> 600 bytes .../spritesmith/npc}/npc_bailey.png | Bin .../spritesmith/npc/npc_bailey_birthday.png} | Bin .../spritesmith/npc/npc_bailey_fall.png} | Bin .../npc/npc_bailey_habitoween.png} | Bin .../spritesmith/npc/npc_bailey_nye.png} | Bin .../spritesmith/npc/npc_bailey_spring.png} | Bin .../spritesmith/npc/npc_bailey_summer.png} | Bin .../npc/npc_bailey_thanksgiving.png} | Bin .../npc/npc_bailey_valentines.png} | Bin .../spritesmith/npc/npc_bailey_winter.png} | Bin .../spritesmith/npc}/npc_matt.png | Bin .../spritesmith/npc/npc_matt_birthday.png} | Bin .../spritesmith/npc/npc_matt_fall.png} | Bin .../spritesmith/npc/npc_matt_habitoween.png} | Bin .../spritesmith/npc/npc_matt_nye.png} | Bin .../spritesmith/npc/npc_matt_spring.png} | Bin .../spritesmith/npc/npc_matt_summer.png} | Bin .../npc/npc_matt_thanksgiving.png} | Bin .../spritesmith/npc/npc_matt_winter.png} | Bin .../spritesmith/npcs/npc_bailey.png | Bin 3673 -> 0 bytes .../spritesmith/npcs/npc_justin.png | Bin 4371 -> 0 bytes .../raw_sprites/spritesmith/npcs/npc_matt.png | Bin 5861 -> 0 bytes .../body/Mount_Body_BearCub-StainedGlass.png | Bin 0 -> 1954 bytes .../body/Mount_Body_Cactus-StainedGlass.png | Bin 0 -> 1220 bytes .../body/Mount_Body_Dragon-StainedGlass.png | Bin 0 -> 1295 bytes .../Mount_Body_FlyingPig-StainedGlass.png | Bin 0 -> 1595 bytes .../body/Mount_Body_Fox-StainedGlass.png | Bin 0 -> 1575 bytes .../body/Mount_Body_LionCub-StainedGlass.png | Bin 0 -> 1327 bytes .../body/Mount_Body_PandaCub-StainedGlass.png | Bin 0 -> 1421 bytes .../body/Mount_Body_TigerCub-StainedGlass.png | Bin 0 -> 1418 bytes .../body/Mount_Body_Wolf-StainedGlass.png | Bin 0 -> 1496 bytes .../head/Mount_Head_BearCub-StainedGlass.png | Bin 0 -> 1043 bytes .../head/Mount_Head_Cactus-StainedGlass.png | Bin 0 -> 1738 bytes .../head/Mount_Head_Dragon-StainedGlass.png | Bin 0 -> 2415 bytes .../Mount_Head_FlyingPig-StainedGlass.png | Bin 0 -> 1329 bytes .../head/Mount_Head_Fox-StainedGlass.png | Bin 0 -> 1044 bytes .../head/Mount_Head_LionCub-StainedGlass.png | Bin 0 -> 1264 bytes .../head/Mount_Head_PandaCub-StainedGlass.png | Bin 0 -> 1542 bytes .../head/Mount_Head_TigerCub-StainedGlass.png | Bin 0 -> 1204 bytes .../head/Mount_Head_Wolf-StainedGlass.png | Bin 0 -> 1788 bytes .../icon/Mount_Icon_BearCub-StainedGlass.png | Bin 0 -> 769 bytes .../icon/Mount_Icon_Cactus-StainedGlass.png | Bin 0 -> 909 bytes .../icon/Mount_Icon_Dragon-StainedGlass.png | Bin 0 -> 957 bytes .../Mount_Icon_FlyingPig-StainedGlass.png | Bin 0 -> 802 bytes .../icon/Mount_Icon_Fox-StainedGlass.png | Bin 0 -> 754 bytes .../icon/Mount_Icon_LionCub-StainedGlass.png | Bin 0 -> 1015 bytes .../icon/Mount_Icon_PandaCub-StainedGlass.png | Bin 0 -> 894 bytes .../icon/Mount_Icon_TigerCub-StainedGlass.png | Bin 0 -> 930 bytes .../icon/Mount_Icon_Wolf-StainedGlass.png | Bin 0 -> 897 bytes .../stable/pets/Pet-BearCub-StainedGlass.png | Bin 0 -> 1108 bytes .../stable/pets/Pet-Cactus-StainedGlass.png | Bin 0 -> 1009 bytes .../stable/pets/Pet-Dragon-StainedGlass.png | Bin 0 -> 1200 bytes .../pets/Pet-FlyingPig-StainedGlass.png | Bin 0 -> 1455 bytes .../stable/pets/Pet-Fox-StainedGlass.png | Bin 0 -> 1119 bytes .../stable/pets/Pet-LionCub-StainedGlass.png | Bin 0 -> 1123 bytes .../stable/pets/Pet-PandaCub-StainedGlass.png | Bin 0 -> 1030 bytes .../stable/pets/Pet-TigerCub-StainedGlass.png | Bin 0 -> 1155 bytes .../stable/pets/Pet-Wolf-StainedGlass.png | Bin 0 -> 1451 bytes .../Pet_HatchingPotion_StainedGlass.png | Bin 0 -> 889 bytes website/server/libs/payments/subscriptions.js | 18 +++ website/server/libs/slack.js | 5 +- 282 files changed, 681 insertions(+), 198 deletions(-) rename website/client/{src/assets/images => public/static}/npc/birthday/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/birthday/market_banner_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/birthday/quest_shop_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/birthday/quest_shop_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/birthday/seasonal_shop_opened_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/birthday/seasonal_shop_opened_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/birthday/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/birthday/tavern_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/birthday/time_travelers_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/birthday/time_travelers_open_banner.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/market_banner_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/quest_shop_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/quest_shop_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/seasonal_shop_opened_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/seasonal_shop_opened_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/tavern_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/time_travelers_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/fall/time_travelers_open_banner.png (100%) rename website/client/{src/assets/images => public/static}/npc/habitoween/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/habitoween/market_banner_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/habitoween/quest_shop_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/habitoween/quest_shop_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/habitoween/seasonal_shop_opened_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/habitoween/seasonal_shop_opened_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/habitoween/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/habitoween/tavern_npc.png (100%) create mode 100644 website/client/public/static/npc/habitoween/time_travelers_background.png create mode 100644 website/client/public/static/npc/habitoween/time_travelers_open_banner.png rename website/client/{src/assets/images => public/static}/npc/normal/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/normal/market_banner_npc.png (100%) create mode 100644 website/client/public/static/npc/normal/npc_justin.png rename website/client/{src/assets/images => public/static}/npc/normal/quest_shop_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/normal/quest_shop_npc.png (100%) rename website/client/{src/assets/images/npc/aprilfools => public/static/npc/normal}/seasonal_shop_closed_background.png (100%) rename website/client/{src/assets/images/npc/aprilfools => public/static/npc/normal}/seasonal_shop_closed_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/normal/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/normal/tavern_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/normal/time_travelers_background.png (100%) rename website/client/{src/assets/images/npc/aprilfools => public/static/npc/normal}/time_travelers_closed_banner.png (100%) rename website/client/{src/assets/images => public/static}/npc/normal/time_travelers_open_banner.png (100%) rename website/client/{src/assets/images => public/static}/npc/nye/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/nye/market_banner_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/nye/quest_shop_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/nye/quest_shop_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/nye/seasonal_shop_opened_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/nye/seasonal_shop_opened_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/nye/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/nye/tavern_npc.png (100%) rename website/client/{src/assets/images/npc/winter => public/static/npc/nye}/time_travelers_background.png (100%) rename website/client/{src/assets/images/npc/winter => public/static/npc/nye}/time_travelers_open_banner.png (100%) rename website/client/{src/assets/images/npc/aprilfools => public/static/npc/spring}/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/spring/market_banner_npc.png (100%) rename website/client/{src/assets/images/npc/aprilfools => public/static/npc/spring}/quest_shop_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/spring/quest_shop_npc.png (100%) rename website/client/{src/assets/images/npc/aprilfools => public/static/npc/spring}/seasonal_shop_opened_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/spring/seasonal_shop_opened_npc.png (100%) rename website/client/{src/assets/images/npc/aprilfools => public/static/npc/spring}/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/spring/tavern_npc.png (100%) rename website/client/{src/assets/images/npc/aprilfools => public/static/npc/spring}/time_travelers_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/spring/time_travelers_open_banner.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/market_banner_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/quest_shop_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/quest_shop_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/seasonal_shop_opened_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/seasonal_shop_opened_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/tavern_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/time_travelers_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/summer/time_travelers_open_banner.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/market_banner_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/quest_shop_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/quest_shop_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/seasonal_shop_closed_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/seasonal_shop_closed_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/seasonal_shop_opened_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/seasonal_shop_opened_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/thanksgiving/tavern_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/valentines/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/valentines/market_banner_npc.png (100%) create mode 100644 website/client/public/static/npc/valentines/quest_shop_background.png create mode 100644 website/client/public/static/npc/valentines/quest_shop_npc.png rename website/client/{src/assets/images => public/static}/npc/valentines/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/valentines/tavern_npc.png (100%) rename website/client/{src/assets/images/npc/broken/market_broken_background.png => public/static/npc/valentines/time_travelers_background.png} (53%) create mode 100644 website/client/public/static/npc/valentines/time_travelers_open_banner.png rename website/client/{src/assets/images => public/static}/npc/winter/market_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/winter/market_banner_npc.png (100%) create mode 100644 website/client/public/static/npc/winter/npc_justin.png rename website/client/{src/assets/images => public/static}/npc/winter/quest_shop_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/winter/quest_shop_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/winter/seasonal_shop_opened_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/winter/seasonal_shop_opened_npc.png (100%) rename website/client/{src/assets/images => public/static}/npc/winter/tavern_background.png (100%) rename website/client/{src/assets/images => public/static}/npc/winter/tavern_npc.png (100%) create mode 100644 website/client/public/static/npc/winter/time_travelers_background.png create mode 100644 website/client/public/static/npc/winter/time_travelers_open_banner.png delete mode 100644 website/client/src/assets/images/npc/aprilfools/market_banner_npc.png delete mode 100644 website/client/src/assets/images/npc/aprilfools/npc_aprilFool.png delete mode 100644 website/client/src/assets/images/npc/aprilfools/npc_bailey.png delete mode 100644 website/client/src/assets/images/npc/aprilfools/npc_justin.png delete mode 100644 website/client/src/assets/images/npc/aprilfools/npc_matt.png delete mode 100644 website/client/src/assets/images/npc/aprilfools/quest_shop_npc.png delete mode 100644 website/client/src/assets/images/npc/aprilfools/seasonal_shop_opened_npc.png delete mode 100644 website/client/src/assets/images/npc/aprilfools/tavern_npc.png delete mode 100644 website/client/src/assets/images/npc/aprilfools/time_travelers_open_banner.png delete mode 100644 website/client/src/assets/images/npc/birthday/npc_justin.png delete mode 100644 website/client/src/assets/images/npc/birthday/seasonal_shop_closed_background.png delete mode 100644 website/client/src/assets/images/npc/birthday/seasonal_shop_closed_npc.png delete mode 100644 website/client/src/assets/images/npc/birthday/time_travelers_closed_banner.png delete mode 100644 website/client/src/assets/images/npc/broken/market_broken_layer.png delete mode 100644 website/client/src/assets/images/npc/broken/market_broken_npc.png delete mode 100644 website/client/src/assets/images/npc/broken/quest_shop_broken_background.png delete mode 100644 website/client/src/assets/images/npc/broken/quest_shop_broken_layer.png delete mode 100644 website/client/src/assets/images/npc/broken/quest_shop_broken_npc.png delete mode 100644 website/client/src/assets/images/npc/broken/rage-strike-market-scaled@2x.png delete mode 100644 website/client/src/assets/images/npc/broken/rage-strike-quests-scaled@2x.png delete mode 100644 website/client/src/assets/images/npc/broken/rage-strike-seasonalShop-scaled@2x.png delete mode 100644 website/client/src/assets/images/npc/broken/seasonal_shop_broken_background.png delete mode 100644 website/client/src/assets/images/npc/broken/seasonal_shop_broken_layer.png delete mode 100644 website/client/src/assets/images/npc/broken/seasonal_shop_broken_npc.png delete mode 100644 website/client/src/assets/images/npc/fall/npc_justin.png delete mode 100644 website/client/src/assets/images/npc/fall/seasonal_shop_closed_background.png delete mode 100644 website/client/src/assets/images/npc/fall/seasonal_shop_closed_npc.png delete mode 100644 website/client/src/assets/images/npc/fall/time_travelers_closed_banner.png delete mode 100644 website/client/src/assets/images/npc/habitoween/npc_justin.png delete mode 100644 website/client/src/assets/images/npc/habitoween/seasonalshop_open.png delete mode 100644 website/client/src/assets/images/npc/normal/npc_justin.png delete mode 100644 website/client/src/assets/images/npc/normal/seasonal_shop_closed_background.png delete mode 100644 website/client/src/assets/images/npc/normal/seasonal_shop_closed_npc.png delete mode 100644 website/client/src/assets/images/npc/normal/seasonal_shop_opened_background.png delete mode 100644 website/client/src/assets/images/npc/normal/seasonal_shop_opened_npc.png delete mode 100644 website/client/src/assets/images/npc/normal/time_travelers_closed_banner.png delete mode 100644 website/client/src/assets/images/npc/nye/npc_justin.png delete mode 100644 website/client/src/assets/images/npc/nye/seasonal_shop_closed_background.png delete mode 100644 website/client/src/assets/images/npc/nye/seasonal_shop_closed_npc.png delete mode 100644 website/client/src/assets/images/npc/spring/market_background.png delete mode 100644 website/client/src/assets/images/npc/spring/npc_justin.png delete mode 100644 website/client/src/assets/images/npc/spring/quest_shop_background.png delete mode 100644 website/client/src/assets/images/npc/spring/seasonal_shop_closed_background.png delete mode 100644 website/client/src/assets/images/npc/spring/seasonal_shop_closed_npc.png delete mode 100644 website/client/src/assets/images/npc/spring/seasonal_shop_opened_background.png delete mode 100644 website/client/src/assets/images/npc/spring/tavern_background.png delete mode 100644 website/client/src/assets/images/npc/spring/time_travelers_background.png delete mode 100644 website/client/src/assets/images/npc/spring/time_travelers_closed_banner.png delete mode 100644 website/client/src/assets/images/npc/summer/npc_justin.png delete mode 100644 website/client/src/assets/images/npc/summer/seasonal_shop_closed_background.png delete mode 100644 website/client/src/assets/images/npc/summer/seasonal_shop_closed_npc.png delete mode 100644 website/client/src/assets/images/npc/summer/time_travelers_closed_banner.png delete mode 100644 website/client/src/assets/images/npc/winter/npc_justin.png delete mode 100644 website/client/src/assets/images/npc/winter/seasonal_shop_closed_background.png delete mode 100644 website/client/src/assets/images/npc/winter/seasonal_shop_closed_npc.png delete mode 100644 website/client/src/assets/images/npc/winter/time_travelers_closed_banner.png create mode 100644 website/client/src/components/header/banners/giftPromo.vue create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/broad_armor_special_winter2021Healer.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/broad_armor_special_winter2021Mage.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/broad_armor_special_winter2021Rogue.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/broad_armor_special_winter2021Warrior.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/head_special_winter2021Healer.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/head_special_winter2021Mage.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/head_special_winter2021Rogue.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/head_special_winter2021Warrior.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shield_special_winter2021Healer.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shield_special_winter2021Rogue.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shield_special_winter2021Warrior.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_armor_special_winter2021Healer.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_armor_special_winter2021Mage.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_armor_special_winter2021Rogue.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_armor_special_winter2021Warrior.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_head_special_winter2021Healer.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_head_special_winter2021Mage.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_head_special_winter2021Rogue.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_head_special_winter2021Warrior.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_shield_special_winter2021Healer.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_shield_special_winter2021Rogue.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_shield_special_winter2021Warrior.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_weapon_special_winter2021Healer.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_weapon_special_winter2021Mage.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_weapon_special_winter2021Rogue.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/shop/shop_weapon_special_winter2021Warrior.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/slim_armor_special_winter2021Healer.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/slim_armor_special_winter2021Mage.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/slim_armor_special_winter2021Rogue.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/slim_armor_special_winter2021Warrior.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/weapon_special_winter2021Healer.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/weapon_special_winter2021Mage.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/weapon_special_winter2021Rogue.png create mode 100644 website/raw_sprites/spritesmith/gear/events/winter/weapon_special_winter2021Warrior.png rename website/{client/src/assets/images/npc/normal => raw_sprites/spritesmith/npc}/npc_bailey.png (100%) rename website/{client/src/assets/images/npc/birthday/npc_bailey.png => raw_sprites/spritesmith/npc/npc_bailey_birthday.png} (100%) rename website/{client/src/assets/images/npc/fall/npc_bailey.png => raw_sprites/spritesmith/npc/npc_bailey_fall.png} (100%) rename website/{client/src/assets/images/npc/habitoween/npc_bailey.png => raw_sprites/spritesmith/npc/npc_bailey_habitoween.png} (100%) rename website/{client/src/assets/images/npc/nye/npc_bailey.png => raw_sprites/spritesmith/npc/npc_bailey_nye.png} (100%) rename website/{client/src/assets/images/npc/spring/npc_bailey.png => raw_sprites/spritesmith/npc/npc_bailey_spring.png} (100%) rename website/{client/src/assets/images/npc/summer/npc_bailey.png => raw_sprites/spritesmith/npc/npc_bailey_summer.png} (100%) rename website/{client/src/assets/images/npc/thanksgiving/npc_bailey.png => raw_sprites/spritesmith/npc/npc_bailey_thanksgiving.png} (100%) rename website/{client/src/assets/images/npc/valentines/npc_bailey.png => raw_sprites/spritesmith/npc/npc_bailey_valentines.png} (100%) rename website/{client/src/assets/images/npc/winter/npc_bailey.png => raw_sprites/spritesmith/npc/npc_bailey_winter.png} (100%) rename website/{client/src/assets/images/npc/normal => raw_sprites/spritesmith/npc}/npc_matt.png (100%) rename website/{client/src/assets/images/npc/birthday/npc_matt.png => raw_sprites/spritesmith/npc/npc_matt_birthday.png} (100%) rename website/{client/src/assets/images/npc/fall/npc_matt.png => raw_sprites/spritesmith/npc/npc_matt_fall.png} (100%) rename website/{client/src/assets/images/npc/habitoween/npc_matt.png => raw_sprites/spritesmith/npc/npc_matt_habitoween.png} (100%) rename website/{client/src/assets/images/npc/nye/npc_matt.png => raw_sprites/spritesmith/npc/npc_matt_nye.png} (100%) rename website/{client/src/assets/images/npc/spring/npc_matt.png => raw_sprites/spritesmith/npc/npc_matt_spring.png} (100%) rename website/{client/src/assets/images/npc/summer/npc_matt.png => raw_sprites/spritesmith/npc/npc_matt_summer.png} (100%) rename website/{client/src/assets/images/npc/thanksgiving/npc_matt.png => raw_sprites/spritesmith/npc/npc_matt_thanksgiving.png} (100%) rename website/{client/src/assets/images/npc/winter/npc_matt.png => raw_sprites/spritesmith/npc/npc_matt_winter.png} (100%) delete mode 100644 website/raw_sprites/spritesmith/npcs/npc_bailey.png delete mode 100644 website/raw_sprites/spritesmith/npcs/npc_justin.png delete mode 100644 website/raw_sprites/spritesmith/npcs/npc_matt.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/body/Mount_Body_BearCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/body/Mount_Body_Cactus-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/body/Mount_Body_Dragon-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/body/Mount_Body_FlyingPig-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/body/Mount_Body_Fox-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/body/Mount_Body_LionCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/body/Mount_Body_PandaCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/body/Mount_Body_TigerCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/body/Mount_Body_Wolf-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/head/Mount_Head_BearCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/head/Mount_Head_Cactus-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/head/Mount_Head_Dragon-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/head/Mount_Head_FlyingPig-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/head/Mount_Head_Fox-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/head/Mount_Head_LionCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/head/Mount_Head_PandaCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/head/Mount_Head_TigerCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/head/Mount_Head_Wolf-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_BearCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_Cactus-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_Dragon-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_FlyingPig-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_Fox-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_LionCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_PandaCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_TigerCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_Wolf-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/pets/Pet-BearCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/pets/Pet-Cactus-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/pets/Pet-Dragon-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/pets/Pet-FlyingPig-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/pets/Pet-Fox-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/pets/Pet-LionCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/pets/Pet-PandaCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/pets/Pet-TigerCub-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/pets/Pet-Wolf-StainedGlass.png create mode 100644 website/raw_sprites/spritesmith/stable/potions/Pet_HatchingPotion_StainedGlass.png diff --git a/test/api/unit/libs/payments/payments.test.js b/test/api/unit/libs/payments/payments.test.js index 79c41995eb..2ae60aad00 100644 --- a/test/api/unit/libs/payments/payments.test.js +++ b/test/api/unit/libs/payments/payments.test.js @@ -209,17 +209,6 @@ describe('payments/index', () => { expect(user.purchased.txnCount).to.eql(1); }); - it('sends a private message about the gift', async () => { - await api.createSubscription(data); - const msg = '`Hello recipient, sender has sent you 3 months of subscription!`'; - - expect(user.sendMessage).to.be.calledOnce; - expect(user.sendMessage).to.be.calledWith( - recipient, - { receiverMsg: msg, senderMsg: msg, save: false }, - ); - }); - it('sends an email about the gift', async () => { await api.createSubscription(data); @@ -255,6 +244,109 @@ describe('payments/index', () => { }, }); }); + + context('No Active Promotion', () => { + beforeEach(() => { + sinon.stub(worldState, 'getCurrentEvent').returns(null); + }); + + afterEach(() => { + worldState.getCurrentEvent.restore(); + }); + + it('sends a private message about the gift', async () => { + await api.createSubscription(data); + const msg = '`Hello recipient, sender has sent you 3 months of subscription!`'; + + expect(user.sendMessage).to.be.calledOnce; + expect(user.sendMessage).to.be.calledWith( + recipient, + { receiverMsg: msg, senderMsg: msg, save: false }, + ); + }); + }); + + context('Active Promotion', () => { + beforeEach(() => { + sinon.stub(worldState, 'getCurrentEvent').returns({ + ...common.content.events.winter2021, + event: 'winter2021', + }); + }); + + afterEach(() => { + worldState.getCurrentEvent.restore(); + }); + + it('creates a gift subscription for purchaser and recipient if none exist', async () => { + await api.createSubscription(data); + + expect(user.items.pets['Jackalope-RoyalPurple']).to.eql(5); + expect(user.purchased.plan.customerId).to.eql('Gift'); + expect(user.purchased.plan.dateTerminated).to.exist; + expect(user.purchased.plan.dateUpdated).to.exist; + expect(user.purchased.plan.dateCreated).to.exist; + + expect(recipient.items.pets['Jackalope-RoyalPurple']).to.eql(5); + expect(recipient.purchased.plan.customerId).to.eql('Gift'); + expect(recipient.purchased.plan.dateTerminated).to.exist; + expect(recipient.purchased.plan.dateUpdated).to.exist; + expect(recipient.purchased.plan.dateCreated).to.exist; + }); + + it('adds extraMonths to existing subscription for purchaser and creates a gift subscription for recipient without sub', async () => { + user.purchased.plan = plan; + + expect(user.purchased.plan.extraMonths).to.eql(0); + + await api.createSubscription(data); + + expect(user.purchased.plan.extraMonths).to.eql(3); + + expect(recipient.items.pets['Jackalope-RoyalPurple']).to.eql(5); + expect(recipient.purchased.plan.customerId).to.eql('Gift'); + expect(recipient.purchased.plan.dateTerminated).to.exist; + expect(recipient.purchased.plan.dateUpdated).to.exist; + expect(recipient.purchased.plan.dateCreated).to.exist; + }); + + it('adds extraMonths to existing subscription for recipient and creates a gift subscription for purchaser without sub', async () => { + recipient.purchased.plan = plan; + + expect(recipient.purchased.plan.extraMonths).to.eql(0); + + await api.createSubscription(data); + + expect(recipient.purchased.plan.extraMonths).to.eql(3); + + expect(user.items.pets['Jackalope-RoyalPurple']).to.eql(5); + expect(user.purchased.plan.customerId).to.eql('Gift'); + expect(user.purchased.plan.dateTerminated).to.exist; + expect(user.purchased.plan.dateUpdated).to.exist; + expect(user.purchased.plan.dateCreated).to.exist; + }); + + it('adds extraMonths to existing subscriptions for purchaser and recipient', async () => { + user.purchased.plan = plan; + recipient.purchased.plan = plan; + + expect(user.purchased.plan.extraMonths).to.eql(0); + expect(recipient.purchased.plan.extraMonths).to.eql(0); + + await api.createSubscription(data); + + expect(user.purchased.plan.extraMonths).to.eql(3); + expect(recipient.purchased.plan.extraMonths).to.eql(3); + }); + + it('sends a private message about the promotion', async () => { + await api.createSubscription(data); + const msg = '`Hello sender, you received 3 months of subscription as part of our holiday gift-giving promotion!`'; + + expect(user.sendMessage).to.be.calledTwice; + expect(user.sendMessage).to.be.calledWith(user, { senderMsg: msg }); + }); + }); }); context('Purchasing a subscription for self', () => { diff --git a/website/client/src/assets/images/npc/birthday/market_background.png b/website/client/public/static/npc/birthday/market_background.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/market_background.png rename to website/client/public/static/npc/birthday/market_background.png diff --git a/website/client/src/assets/images/npc/birthday/market_banner_npc.png b/website/client/public/static/npc/birthday/market_banner_npc.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/market_banner_npc.png rename to website/client/public/static/npc/birthday/market_banner_npc.png diff --git a/website/client/src/assets/images/npc/birthday/quest_shop_background.png b/website/client/public/static/npc/birthday/quest_shop_background.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/quest_shop_background.png rename to website/client/public/static/npc/birthday/quest_shop_background.png diff --git a/website/client/src/assets/images/npc/birthday/quest_shop_npc.png b/website/client/public/static/npc/birthday/quest_shop_npc.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/quest_shop_npc.png rename to website/client/public/static/npc/birthday/quest_shop_npc.png diff --git a/website/client/src/assets/images/npc/birthday/seasonal_shop_opened_background.png b/website/client/public/static/npc/birthday/seasonal_shop_opened_background.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/seasonal_shop_opened_background.png rename to website/client/public/static/npc/birthday/seasonal_shop_opened_background.png diff --git a/website/client/src/assets/images/npc/birthday/seasonal_shop_opened_npc.png b/website/client/public/static/npc/birthday/seasonal_shop_opened_npc.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/seasonal_shop_opened_npc.png rename to website/client/public/static/npc/birthday/seasonal_shop_opened_npc.png diff --git a/website/client/src/assets/images/npc/birthday/tavern_background.png b/website/client/public/static/npc/birthday/tavern_background.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/tavern_background.png rename to website/client/public/static/npc/birthday/tavern_background.png diff --git a/website/client/src/assets/images/npc/birthday/tavern_npc.png b/website/client/public/static/npc/birthday/tavern_npc.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/tavern_npc.png rename to website/client/public/static/npc/birthday/tavern_npc.png diff --git a/website/client/src/assets/images/npc/birthday/time_travelers_background.png b/website/client/public/static/npc/birthday/time_travelers_background.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/time_travelers_background.png rename to website/client/public/static/npc/birthday/time_travelers_background.png diff --git a/website/client/src/assets/images/npc/birthday/time_travelers_open_banner.png b/website/client/public/static/npc/birthday/time_travelers_open_banner.png similarity index 100% rename from website/client/src/assets/images/npc/birthday/time_travelers_open_banner.png rename to website/client/public/static/npc/birthday/time_travelers_open_banner.png diff --git a/website/client/src/assets/images/npc/fall/market_background.png b/website/client/public/static/npc/fall/market_background.png similarity index 100% rename from website/client/src/assets/images/npc/fall/market_background.png rename to website/client/public/static/npc/fall/market_background.png diff --git a/website/client/src/assets/images/npc/fall/market_banner_npc.png b/website/client/public/static/npc/fall/market_banner_npc.png similarity index 100% rename from website/client/src/assets/images/npc/fall/market_banner_npc.png rename to website/client/public/static/npc/fall/market_banner_npc.png diff --git a/website/client/src/assets/images/npc/fall/quest_shop_background.png b/website/client/public/static/npc/fall/quest_shop_background.png similarity index 100% rename from website/client/src/assets/images/npc/fall/quest_shop_background.png rename to website/client/public/static/npc/fall/quest_shop_background.png diff --git a/website/client/src/assets/images/npc/fall/quest_shop_npc.png b/website/client/public/static/npc/fall/quest_shop_npc.png similarity index 100% rename from website/client/src/assets/images/npc/fall/quest_shop_npc.png rename to website/client/public/static/npc/fall/quest_shop_npc.png diff --git a/website/client/src/assets/images/npc/fall/seasonal_shop_opened_background.png b/website/client/public/static/npc/fall/seasonal_shop_opened_background.png similarity index 100% rename from website/client/src/assets/images/npc/fall/seasonal_shop_opened_background.png rename to website/client/public/static/npc/fall/seasonal_shop_opened_background.png diff --git a/website/client/src/assets/images/npc/fall/seasonal_shop_opened_npc.png b/website/client/public/static/npc/fall/seasonal_shop_opened_npc.png similarity index 100% rename from website/client/src/assets/images/npc/fall/seasonal_shop_opened_npc.png rename to website/client/public/static/npc/fall/seasonal_shop_opened_npc.png diff --git a/website/client/src/assets/images/npc/fall/tavern_background.png b/website/client/public/static/npc/fall/tavern_background.png similarity index 100% rename from website/client/src/assets/images/npc/fall/tavern_background.png rename to website/client/public/static/npc/fall/tavern_background.png diff --git a/website/client/src/assets/images/npc/fall/tavern_npc.png b/website/client/public/static/npc/fall/tavern_npc.png similarity index 100% rename from website/client/src/assets/images/npc/fall/tavern_npc.png rename to website/client/public/static/npc/fall/tavern_npc.png diff --git a/website/client/src/assets/images/npc/fall/time_travelers_background.png b/website/client/public/static/npc/fall/time_travelers_background.png similarity index 100% rename from website/client/src/assets/images/npc/fall/time_travelers_background.png rename to website/client/public/static/npc/fall/time_travelers_background.png diff --git a/website/client/src/assets/images/npc/fall/time_travelers_open_banner.png b/website/client/public/static/npc/fall/time_travelers_open_banner.png similarity index 100% rename from website/client/src/assets/images/npc/fall/time_travelers_open_banner.png rename to website/client/public/static/npc/fall/time_travelers_open_banner.png diff --git a/website/client/src/assets/images/npc/habitoween/market_background.png b/website/client/public/static/npc/habitoween/market_background.png similarity index 100% rename from website/client/src/assets/images/npc/habitoween/market_background.png rename to website/client/public/static/npc/habitoween/market_background.png diff --git a/website/client/src/assets/images/npc/habitoween/market_banner_npc.png b/website/client/public/static/npc/habitoween/market_banner_npc.png similarity index 100% rename from website/client/src/assets/images/npc/habitoween/market_banner_npc.png rename to website/client/public/static/npc/habitoween/market_banner_npc.png diff --git a/website/client/src/assets/images/npc/habitoween/quest_shop_background.png b/website/client/public/static/npc/habitoween/quest_shop_background.png similarity index 100% rename from website/client/src/assets/images/npc/habitoween/quest_shop_background.png rename to website/client/public/static/npc/habitoween/quest_shop_background.png diff --git a/website/client/src/assets/images/npc/habitoween/quest_shop_npc.png b/website/client/public/static/npc/habitoween/quest_shop_npc.png similarity index 100% rename from website/client/src/assets/images/npc/habitoween/quest_shop_npc.png rename to website/client/public/static/npc/habitoween/quest_shop_npc.png diff --git a/website/client/src/assets/images/npc/habitoween/seasonal_shop_opened_background.png b/website/client/public/static/npc/habitoween/seasonal_shop_opened_background.png similarity index 100% rename from website/client/src/assets/images/npc/habitoween/seasonal_shop_opened_background.png rename to website/client/public/static/npc/habitoween/seasonal_shop_opened_background.png diff --git a/website/client/src/assets/images/npc/habitoween/seasonal_shop_opened_npc.png b/website/client/public/static/npc/habitoween/seasonal_shop_opened_npc.png similarity index 100% rename from website/client/src/assets/images/npc/habitoween/seasonal_shop_opened_npc.png rename to website/client/public/static/npc/habitoween/seasonal_shop_opened_npc.png diff --git a/website/client/src/assets/images/npc/habitoween/tavern_background.png b/website/client/public/static/npc/habitoween/tavern_background.png similarity index 100% rename from website/client/src/assets/images/npc/habitoween/tavern_background.png rename to website/client/public/static/npc/habitoween/tavern_background.png diff --git a/website/client/src/assets/images/npc/habitoween/tavern_npc.png b/website/client/public/static/npc/habitoween/tavern_npc.png similarity index 100% rename from website/client/src/assets/images/npc/habitoween/tavern_npc.png rename to website/client/public/static/npc/habitoween/tavern_npc.png diff --git a/website/client/public/static/npc/habitoween/time_travelers_background.png b/website/client/public/static/npc/habitoween/time_travelers_background.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc283ea3c5a89c89d6a9c59b2bb0cf736a6f356 GIT binary patch literal 21550 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 literal 0 HcmV?d00001 diff --git a/website/client/public/static/npc/habitoween/time_travelers_open_banner.png b/website/client/public/static/npc/habitoween/time_travelers_open_banner.png new file mode 100644 index 0000000000000000000000000000000000000000..77f5c4131387eaf3168103586260c41e11c45890 GIT binary patch literal 10026 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 DG@kfH literal 0 HcmV?d00001 diff --git a/website/client/src/assets/images/npc/normal/quest_shop_background.png b/website/client/public/static/npc/normal/quest_shop_background.png similarity index 100% rename from website/client/src/assets/images/npc/normal/quest_shop_background.png rename to website/client/public/static/npc/normal/quest_shop_background.png diff --git a/website/client/src/assets/images/npc/normal/quest_shop_npc.png b/website/client/public/static/npc/normal/quest_shop_npc.png similarity index 100% rename from website/client/src/assets/images/npc/normal/quest_shop_npc.png rename to website/client/public/static/npc/normal/quest_shop_npc.png diff --git a/website/client/src/assets/images/npc/aprilfools/seasonal_shop_closed_background.png b/website/client/public/static/npc/normal/seasonal_shop_closed_background.png similarity index 100% rename from website/client/src/assets/images/npc/aprilfools/seasonal_shop_closed_background.png rename to website/client/public/static/npc/normal/seasonal_shop_closed_background.png diff --git a/website/client/src/assets/images/npc/aprilfools/seasonal_shop_closed_npc.png b/website/client/public/static/npc/normal/seasonal_shop_closed_npc.png similarity index 100% rename from website/client/src/assets/images/npc/aprilfools/seasonal_shop_closed_npc.png rename to website/client/public/static/npc/normal/seasonal_shop_closed_npc.png diff --git a/website/client/src/assets/images/npc/normal/tavern_background.png b/website/client/public/static/npc/normal/tavern_background.png similarity index 100% rename from website/client/src/assets/images/npc/normal/tavern_background.png rename to website/client/public/static/npc/normal/tavern_background.png diff --git a/website/client/src/assets/images/npc/normal/tavern_npc.png b/website/client/public/static/npc/normal/tavern_npc.png similarity index 100% rename from website/client/src/assets/images/npc/normal/tavern_npc.png rename to website/client/public/static/npc/normal/tavern_npc.png diff --git a/website/client/src/assets/images/npc/normal/time_travelers_background.png b/website/client/public/static/npc/normal/time_travelers_background.png similarity index 100% rename from website/client/src/assets/images/npc/normal/time_travelers_background.png rename to website/client/public/static/npc/normal/time_travelers_background.png diff --git a/website/client/src/assets/images/npc/aprilfools/time_travelers_closed_banner.png b/website/client/public/static/npc/normal/time_travelers_closed_banner.png similarity index 100% rename from website/client/src/assets/images/npc/aprilfools/time_travelers_closed_banner.png rename to website/client/public/static/npc/normal/time_travelers_closed_banner.png diff --git a/website/client/src/assets/images/npc/normal/time_travelers_open_banner.png b/website/client/public/static/npc/normal/time_travelers_open_banner.png similarity index 100% rename from website/client/src/assets/images/npc/normal/time_travelers_open_banner.png rename to website/client/public/static/npc/normal/time_travelers_open_banner.png diff --git a/website/client/src/assets/images/npc/nye/market_background.png b/website/client/public/static/npc/nye/market_background.png similarity index 100% rename from website/client/src/assets/images/npc/nye/market_background.png rename to website/client/public/static/npc/nye/market_background.png diff --git a/website/client/src/assets/images/npc/nye/market_banner_npc.png b/website/client/public/static/npc/nye/market_banner_npc.png similarity index 100% rename from website/client/src/assets/images/npc/nye/market_banner_npc.png rename to website/client/public/static/npc/nye/market_banner_npc.png diff --git a/website/client/src/assets/images/npc/nye/quest_shop_background.png b/website/client/public/static/npc/nye/quest_shop_background.png similarity index 100% rename from website/client/src/assets/images/npc/nye/quest_shop_background.png rename to website/client/public/static/npc/nye/quest_shop_background.png diff --git a/website/client/src/assets/images/npc/nye/quest_shop_npc.png b/website/client/public/static/npc/nye/quest_shop_npc.png similarity index 100% rename from website/client/src/assets/images/npc/nye/quest_shop_npc.png rename to website/client/public/static/npc/nye/quest_shop_npc.png diff --git a/website/client/src/assets/images/npc/nye/seasonal_shop_opened_background.png b/website/client/public/static/npc/nye/seasonal_shop_opened_background.png similarity index 100% rename from website/client/src/assets/images/npc/nye/seasonal_shop_opened_background.png rename to website/client/public/static/npc/nye/seasonal_shop_opened_background.png diff --git a/website/client/src/assets/images/npc/nye/seasonal_shop_opened_npc.png b/website/client/public/static/npc/nye/seasonal_shop_opened_npc.png similarity index 100% rename from website/client/src/assets/images/npc/nye/seasonal_shop_opened_npc.png rename to website/client/public/static/npc/nye/seasonal_shop_opened_npc.png diff --git a/website/client/src/assets/images/npc/nye/tavern_background.png b/website/client/public/static/npc/nye/tavern_background.png similarity index 100% rename from website/client/src/assets/images/npc/nye/tavern_background.png rename to website/client/public/static/npc/nye/tavern_background.png diff --git a/website/client/src/assets/images/npc/nye/tavern_npc.png b/website/client/public/static/npc/nye/tavern_npc.png similarity index 100% rename from website/client/src/assets/images/npc/nye/tavern_npc.png rename to website/client/public/static/npc/nye/tavern_npc.png diff --git a/website/client/src/assets/images/npc/winter/time_travelers_background.png b/website/client/public/static/npc/nye/time_travelers_background.png similarity index 100% rename from website/client/src/assets/images/npc/winter/time_travelers_background.png rename to website/client/public/static/npc/nye/time_travelers_background.png diff --git a/website/client/src/assets/images/npc/winter/time_travelers_open_banner.png b/website/client/public/static/npc/nye/time_travelers_open_banner.png similarity index 100% rename from website/client/src/assets/images/npc/winter/time_travelers_open_banner.png rename to website/client/public/static/npc/nye/time_travelers_open_banner.png diff --git a/website/client/src/assets/images/npc/aprilfools/market_background.png b/website/client/public/static/npc/spring/market_background.png similarity index 100% rename from website/client/src/assets/images/npc/aprilfools/market_background.png rename to website/client/public/static/npc/spring/market_background.png diff --git a/website/client/src/assets/images/npc/spring/market_banner_npc.png b/website/client/public/static/npc/spring/market_banner_npc.png similarity index 100% rename from website/client/src/assets/images/npc/spring/market_banner_npc.png rename to website/client/public/static/npc/spring/market_banner_npc.png diff --git a/website/client/src/assets/images/npc/aprilfools/quest_shop_background.png b/website/client/public/static/npc/spring/quest_shop_background.png similarity index 100% rename from website/client/src/assets/images/npc/aprilfools/quest_shop_background.png rename to website/client/public/static/npc/spring/quest_shop_background.png diff --git a/website/client/src/assets/images/npc/spring/quest_shop_npc.png b/website/client/public/static/npc/spring/quest_shop_npc.png similarity index 100% rename from website/client/src/assets/images/npc/spring/quest_shop_npc.png rename to website/client/public/static/npc/spring/quest_shop_npc.png diff --git a/website/client/src/assets/images/npc/aprilfools/seasonal_shop_opened_background.png b/website/client/public/static/npc/spring/seasonal_shop_opened_background.png similarity index 100% rename from website/client/src/assets/images/npc/aprilfools/seasonal_shop_opened_background.png rename to website/client/public/static/npc/spring/seasonal_shop_opened_background.png diff --git a/website/client/src/assets/images/npc/spring/seasonal_shop_opened_npc.png b/website/client/public/static/npc/spring/seasonal_shop_opened_npc.png similarity index 100% rename from website/client/src/assets/images/npc/spring/seasonal_shop_opened_npc.png rename to website/client/public/static/npc/spring/seasonal_shop_opened_npc.png diff --git a/website/client/src/assets/images/npc/aprilfools/tavern_background.png b/website/client/public/static/npc/spring/tavern_background.png similarity index 100% rename from website/client/src/assets/images/npc/aprilfools/tavern_background.png rename to website/client/public/static/npc/spring/tavern_background.png diff --git a/website/client/src/assets/images/npc/spring/tavern_npc.png b/website/client/public/static/npc/spring/tavern_npc.png similarity index 100% rename from website/client/src/assets/images/npc/spring/tavern_npc.png rename to website/client/public/static/npc/spring/tavern_npc.png diff --git a/website/client/src/assets/images/npc/aprilfools/time_travelers_background.png b/website/client/public/static/npc/spring/time_travelers_background.png similarity index 100% rename from website/client/src/assets/images/npc/aprilfools/time_travelers_background.png rename to website/client/public/static/npc/spring/time_travelers_background.png diff --git a/website/client/src/assets/images/npc/spring/time_travelers_open_banner.png b/website/client/public/static/npc/spring/time_travelers_open_banner.png similarity index 100% rename from website/client/src/assets/images/npc/spring/time_travelers_open_banner.png rename to website/client/public/static/npc/spring/time_travelers_open_banner.png diff --git a/website/client/src/assets/images/npc/summer/market_background.png b/website/client/public/static/npc/summer/market_background.png similarity index 100% rename from website/client/src/assets/images/npc/summer/market_background.png rename to website/client/public/static/npc/summer/market_background.png diff --git a/website/client/src/assets/images/npc/summer/market_banner_npc.png b/website/client/public/static/npc/summer/market_banner_npc.png similarity index 100% rename from website/client/src/assets/images/npc/summer/market_banner_npc.png rename to website/client/public/static/npc/summer/market_banner_npc.png diff --git a/website/client/src/assets/images/npc/summer/quest_shop_background.png b/website/client/public/static/npc/summer/quest_shop_background.png similarity index 100% rename from website/client/src/assets/images/npc/summer/quest_shop_background.png rename to website/client/public/static/npc/summer/quest_shop_background.png diff --git a/website/client/src/assets/images/npc/summer/quest_shop_npc.png b/website/client/public/static/npc/summer/quest_shop_npc.png similarity index 100% rename from website/client/src/assets/images/npc/summer/quest_shop_npc.png rename to website/client/public/static/npc/summer/quest_shop_npc.png diff --git a/website/client/src/assets/images/npc/summer/seasonal_shop_opened_background.png b/website/client/public/static/npc/summer/seasonal_shop_opened_background.png similarity index 100% rename from website/client/src/assets/images/npc/summer/seasonal_shop_opened_background.png rename to website/client/public/static/npc/summer/seasonal_shop_opened_background.png diff --git a/website/client/src/assets/images/npc/summer/seasonal_shop_opened_npc.png b/website/client/public/static/npc/summer/seasonal_shop_opened_npc.png similarity index 100% rename from website/client/src/assets/images/npc/summer/seasonal_shop_opened_npc.png rename to website/client/public/static/npc/summer/seasonal_shop_opened_npc.png diff --git a/website/client/src/assets/images/npc/summer/tavern_background.png b/website/client/public/static/npc/summer/tavern_background.png similarity index 100% rename from website/client/src/assets/images/npc/summer/tavern_background.png rename to website/client/public/static/npc/summer/tavern_background.png diff --git a/website/client/src/assets/images/npc/summer/tavern_npc.png b/website/client/public/static/npc/summer/tavern_npc.png similarity index 100% rename from website/client/src/assets/images/npc/summer/tavern_npc.png rename to website/client/public/static/npc/summer/tavern_npc.png diff --git a/website/client/src/assets/images/npc/summer/time_travelers_background.png b/website/client/public/static/npc/summer/time_travelers_background.png similarity index 100% rename from website/client/src/assets/images/npc/summer/time_travelers_background.png rename to website/client/public/static/npc/summer/time_travelers_background.png diff --git a/website/client/src/assets/images/npc/summer/time_travelers_open_banner.png b/website/client/public/static/npc/summer/time_travelers_open_banner.png similarity index 100% rename from website/client/src/assets/images/npc/summer/time_travelers_open_banner.png rename to website/client/public/static/npc/summer/time_travelers_open_banner.png diff --git a/website/client/src/assets/images/npc/thanksgiving/market_background.png b/website/client/public/static/npc/thanksgiving/market_background.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/market_background.png rename to website/client/public/static/npc/thanksgiving/market_background.png diff --git a/website/client/src/assets/images/npc/thanksgiving/market_banner_npc.png b/website/client/public/static/npc/thanksgiving/market_banner_npc.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/market_banner_npc.png rename to website/client/public/static/npc/thanksgiving/market_banner_npc.png diff --git a/website/client/src/assets/images/npc/thanksgiving/quest_shop_background.png b/website/client/public/static/npc/thanksgiving/quest_shop_background.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/quest_shop_background.png rename to website/client/public/static/npc/thanksgiving/quest_shop_background.png diff --git a/website/client/src/assets/images/npc/thanksgiving/quest_shop_npc.png b/website/client/public/static/npc/thanksgiving/quest_shop_npc.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/quest_shop_npc.png rename to website/client/public/static/npc/thanksgiving/quest_shop_npc.png diff --git a/website/client/src/assets/images/npc/thanksgiving/seasonal_shop_closed_background.png b/website/client/public/static/npc/thanksgiving/seasonal_shop_closed_background.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/seasonal_shop_closed_background.png rename to website/client/public/static/npc/thanksgiving/seasonal_shop_closed_background.png diff --git a/website/client/src/assets/images/npc/thanksgiving/seasonal_shop_closed_npc.png b/website/client/public/static/npc/thanksgiving/seasonal_shop_closed_npc.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/seasonal_shop_closed_npc.png rename to website/client/public/static/npc/thanksgiving/seasonal_shop_closed_npc.png diff --git a/website/client/src/assets/images/npc/thanksgiving/seasonal_shop_opened_background.png b/website/client/public/static/npc/thanksgiving/seasonal_shop_opened_background.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/seasonal_shop_opened_background.png rename to website/client/public/static/npc/thanksgiving/seasonal_shop_opened_background.png diff --git a/website/client/src/assets/images/npc/thanksgiving/seasonal_shop_opened_npc.png b/website/client/public/static/npc/thanksgiving/seasonal_shop_opened_npc.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/seasonal_shop_opened_npc.png rename to website/client/public/static/npc/thanksgiving/seasonal_shop_opened_npc.png diff --git a/website/client/src/assets/images/npc/thanksgiving/tavern_background.png b/website/client/public/static/npc/thanksgiving/tavern_background.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/tavern_background.png rename to website/client/public/static/npc/thanksgiving/tavern_background.png diff --git a/website/client/src/assets/images/npc/thanksgiving/tavern_npc.png b/website/client/public/static/npc/thanksgiving/tavern_npc.png similarity index 100% rename from website/client/src/assets/images/npc/thanksgiving/tavern_npc.png rename to website/client/public/static/npc/thanksgiving/tavern_npc.png diff --git a/website/client/src/assets/images/npc/valentines/market_background.png b/website/client/public/static/npc/valentines/market_background.png similarity index 100% rename from website/client/src/assets/images/npc/valentines/market_background.png rename to website/client/public/static/npc/valentines/market_background.png diff --git a/website/client/src/assets/images/npc/valentines/market_banner_npc.png b/website/client/public/static/npc/valentines/market_banner_npc.png similarity index 100% rename from website/client/src/assets/images/npc/valentines/market_banner_npc.png rename to website/client/public/static/npc/valentines/market_banner_npc.png diff --git a/website/client/public/static/npc/valentines/quest_shop_background.png b/website/client/public/static/npc/valentines/quest_shop_background.png new file mode 100644 index 0000000000000000000000000000000000000000..aa595a0974ba0d38ea9bd8a9f00f2a357e036b3e GIT binary patch literal 13418 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 Nbxp1oU%C14{{R?5=Oh3C literal 0 HcmV?d00001 diff --git a/website/client/public/static/npc/valentines/quest_shop_npc.png b/website/client/public/static/npc/valentines/quest_shop_npc.png new file mode 100644 index 0000000000000000000000000000000000000000..8937bc47d2e450f8050d0730d36184539adb7c18 GIT binary patch literal 5046 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 literal 0 HcmV?d00001 diff --git a/website/client/src/assets/images/npc/valentines/tavern_background.png b/website/client/public/static/npc/valentines/tavern_background.png similarity index 100% rename from website/client/src/assets/images/npc/valentines/tavern_background.png rename to website/client/public/static/npc/valentines/tavern_background.png diff --git a/website/client/src/assets/images/npc/valentines/tavern_npc.png b/website/client/public/static/npc/valentines/tavern_npc.png similarity index 100% rename from website/client/src/assets/images/npc/valentines/tavern_npc.png rename to website/client/public/static/npc/valentines/tavern_npc.png diff --git a/website/client/src/assets/images/npc/broken/market_broken_background.png b/website/client/public/static/npc/valentines/time_travelers_background.png similarity index 53% rename from website/client/src/assets/images/npc/broken/market_broken_background.png rename to website/client/public/static/npc/valentines/time_travelers_background.png index a1000472c6bcba7ae193a5b25fef415a0abaecbc..d88617d9dd5bb7391d430d90131f25bd652c0f4d 100644 GIT binary patch delta 2723 zcmV;U3S9N+9^o^PB!2{FK}|sb0I`n?{9y$E017Z^LqkwWLqi~Na&Km7Y-IodNQs@6 zcT`l@7KhKhcY2}CFcc|6@4XEmy*H`SL}8d2U?>9)Gc>Uwq5=^`Ld ziiLn+!5)wxpu}JlQBip_vQ~8E<-M1e-ydgvYoERMJ!kKI)_=MHki7l5ymVL!fHa~vAmcQ7uoQ$&mudEnVrUC zi&%W-40ak@%zr&1-kK%kh#2t~aZwhRlP%&~BGyb5rg265RveqgVP*n=B8lw+4l7B- zrXnWs!$RCdyc7T&De)_g|B3~i9D(>!Zs{4hd~RZrfUe8Zqnp{{O0GU=+k; zr7-zyx?6f$29uWyz~Y@hOGaE<9uYy1K45IaY zvHg`_dOZM)Sy63ve6hvv1)yUy0P^?0*fb9UASvow`@mQCp^4`uNg&9uGcn1|&Nk+9 zSjOUl{-OWr@Hh0;_l(8q{wNRKos+;6rV8ldy0Owz(}jF`W(JeRp&R{qi2rfmU!TJ; zgp6CN~9iXLAsD$ClpY8|Q+RgF4=YDe{;ZlXp} zGpJ8!GFl03fVM;Xpd-@3{{8fLrtcZP`{)0Q)gslWG!XGWpiX}WY5Ts&=8t7&4-psE2EvD-J!jg zQfv(`8kfN|tp+n)3B1%zTF@IPwTk(M6 zCB^9_)Ft*ySWAkRoLF*S30Bfq3Q=04bV#XBX;xW9*-JS?d9U(CNC15-G!b?ucG(RXVjF`yw!wib!z=;^XfY4%he0iTh$+F5HuJX z2^tj|-5N8Rs+s|s`I^m|_kXqUS`4iutvy=3T65Yu+7a4Yv^%sXb>ww?bn(=Yu(!=O6^iuTp>)p_Y^{w=i^lS773}6Fm1Fpe-gF!>Ip{*g$u-szvGhed;vwtqL-_7;SS>`q7 zw=BpOo)+sZIxSvW8d!2H4_Mx{qF4o3ZL#XM`efGt8hef*7TY zE4FA`SKIZrr)}TaS=$NhPT2isZ)Bfhf7E_*sm@Z)(uSpD4(bj}hdPH5N4jI2<3Yy} zCp9OgQ@zs@XANhzbAO}rgo~a_vdb}-7p|tReAhPDIX64EwQlF#5qB^5V)uRz8IR>2 z)gF&M)jbnEn>}Z|ti0BEo%cq2`+4v59`;f8Vfi%q%=p^)uJ!HlBl(5;Rr@{h*Z1f9 zcLl%!z5%-e9xl^b##`1A2m*ZqcLhEQ(g|7}^kXn4I4HO#_z=6$;cwT88(JAYp-e`EgWT9>tT>!5Y<>$=x# ztS?+YzQJq5k&T3nDI0$(FfAxAc)clNQ&*vK;fBJo&0d?EizJHpMZ;U{x72P$ZRKw5 z-)6CG@3v3H?BZ)BrX`gnA4*xJ*S<0Prs|u8?Frla%dE=|?7-~c?YOhkY3Gr0>GHht zv0VYX+J7tP6~z^=cgOC&T4`BXyN9qxxM!rwzp8Vu=H4B9KU61G->z}3Y2Bx^Z`;1P z{p|fi2b>SI)GF7O)V@E+J$SdytFFCXyT0-e=1|t5rw!o^z27pvZE93(ENT3Bn0I*O zNXU_%CYz?Fqe@51n&D<)^VG4JV>iBY|E{yesDGudmDXBv92^%OfA)Rc_jgYCo#;Nv zIN9=p)(`vIC~d{6$aLXUfhJ&K90s zIG1;B_I$?q=?jS$#=2v>A6$&Qc&jJ4r~i`Qr7M>`FJJ6+={QUumrN{L@>;2q1Vm)$Z)P1z?N$8UYW2~{~ zzhwUMVZ87u`Dx{Z>O|9|`Q+&->FR)0Jjf1dGte!A#a>0kG~(0%d4Z_dB<%|y0Dy!50Qvv`0D$NK0Cg|`0P0`>017&o d000+ooVrmwks&Y&;RhKO8wa5TCwZ}34iEQLNMis1 delta 26 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 Is5(acAD$YI#sB~S literal 0 HcmV?d00001 diff --git a/website/client/src/assets/images/npc/winter/market_background.png b/website/client/public/static/npc/winter/market_background.png similarity index 100% rename from website/client/src/assets/images/npc/winter/market_background.png rename to website/client/public/static/npc/winter/market_background.png diff --git a/website/client/src/assets/images/npc/winter/market_banner_npc.png b/website/client/public/static/npc/winter/market_banner_npc.png similarity index 100% rename from website/client/src/assets/images/npc/winter/market_banner_npc.png rename to website/client/public/static/npc/winter/market_banner_npc.png diff --git a/website/client/public/static/npc/winter/npc_justin.png b/website/client/public/static/npc/winter/npc_justin.png new file mode 100644 index 0000000000000000000000000000000000000000..efd53b43e3057ade1c3f0cb5edbbdd0275d61487 GIT binary patch literal 3368 zcmV+@4cGFCP)uJ@VVD_UC<6{NG_fI~0ue<-1QkJoA_k0xBC#Thg@9ne9*`iQ#9$Or zQF$}6R&?d%y_c8YA7_1QpS|}zXYYO1x&V;8{kgn!SPFnNo`4_X6{c}T{8k*B#$jdxfFg<9uYy1K45IaYvHg`_dOZM)Sy63ve6hvv z1)yUy0P^?0*fb9UASvow`@mQCp^4`uNg&9uGcn1|&Nk+9SjOUl{-OWr@Hh0;_l(8q z{wNRKos+;6rV8ldy0Owz(}jF`W(JeRp&R{qi2rfmU!TJ;gp(Kmm5I1s5m_f-n#TRsj}B0%?E`vOzxB2#P=n*a3EfYETOrKoe*ICqM@{4K9Go;5xVgZi5G4 z1dM~{UdP6d+Yd3o?MrAqM0Kc|iV92owdyL5UC#5<>aVCa44|hpM4E zs0sQWIt5*Tu0n&*J!lk~f_{hI!w5`*sjxDv4V%CW*ah~3!{C*0BD@;TgA3v9a1~q+ zAA{TB3-ERLHar49hi4Ih5D^-ph8Q6X#0?2VqLBoIkE}zAkxHZUgRb+f=nat zP#6>iMMoK->`~sRLq)(kHo*Vn{;LcG6+edD1=7D>9j^O?D{Qg|tCDK{ym)H7&wDr6*;uGTJg8GHjVbnL{!cWyUB7MT6o-VNo_w8Yq`2<5Ub)hw4L3rj}5@qxMs0 zWMyP6Wy582WNT#4$d1qunl{acmP#w5ouJ*Jy_Zv#bCKi7ZIf$}8d zZdVy&)LYdbX%I9R8VMQ|8r>Q*nyQ)sn)#Z|n)kKvS`4iu ztvy=3T65Yu+7a4Yv^%sXb>ww?bn(=Yu(!=O6^iuTp>)p_Y^{w=i z^lS773}6Fm1Fpe-gF!>Ip{*g$u-szvGhed;vo5pW&GpS$<~8QGEXWp~7V9lKEnZq0SaK{6Sl+dwSOr*Z zvFf(^Xl-N7w{EeXveC4Ov)N}e%%C!Y7^RFWwrE>d+x51mZQt2h+X?JW*!^a2WS?Sx z)P8cQ&Qi|OhNWW;>JChYI)@QQx?`Nj^#uJBl~d&PK+RZLOLos~K(b5>qmrMN0})tOkySZ3_W zICNY@+|jrX%s^&6b2i>5eqa0y%Z;^%^_=a@u3%4b9605ii3Ep)@`TAmhs0fpQ%O!q zl}XcFH*PieWwLj2ZSq`7V9Mc?h17`D)-+sNT-qs~3@?S(ldh7UlRlVXkWrK|vf6I- z?$tAVKYn8-l({mqQ$Q8{O!WzMg`0(=S&msXS#Pt$vrpzo=kRj+a`kh!z=6$;c zwT88(J6|n-WB%w`m$h~4pmp)YIh_ z3ETV2tjiAU!0h1dxU-n=E9e!)6|Z;4?!H=SSy{V>ut&IOq{_dl zbFb#!9eY1iCsp6Bajj|Hr?hX|zPbJE{X++w546-O*Ot`2Kgd0Jx6Z4syT zu9enWavU5N9)I?I-1m1*_?_rJ$vD~agVqoG+9++s?NEDe`%Fht$4F;X=in*dQ{7$m zU2Q)a|9JSc+Uc4zvS-T963!N$T{xF_ZuWe}`RNOZ7sk3{yB}PPym+f8xTpV;-=!;; zJuhGEb?H5K#o@~7t9DmUU1MD9xNd#Dz0azz?I)|B+WM{g+Xrk0I&awC=o(x)cy`EX z=)z6+o0o6-+`4{y+3mqQ%kSJBju{@g%f35#FZJHb`&swrA8dGtepviS>QUumrN{L@ z>;2q1Vm)$Z)P1z?N$8UYW2~{~zhwUMVZ87u`Dx{Z>O|9|`Q+&->FRy-Sjp7DHs zy69KwU-!MxeeuI@&cF4|M9z%AfP?@5 z`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9J+u00v@9M??Vs0RI60puMM)00009a7bBm z000XU000XU0RWnu7ytkO2XskIMF->z2^JeLZoPF&0006rNklrmO5C=ov1B{d;8w(2yk~E$;af0f}X*3B9l_W%VvY~Zy8cjk24OmD`Hp_x-;q0ij zhe@&wMK5Y{`cH0h8cjljISF9}+qQ30cA-stj3%Ms(IZ2SR^;fuc>W2Ty>(I)R=wVN%SbX4Iaw~V z;uuXrL#r*c>H05tDddNvl0qIY!j)`r0p#RV8>K{0{fsyjI6Gs}ozb??kZ4Z-r*^WT zBsoP0BEomY`+uWJXvp=*sJ_61n2K^V2@U&Beeu+*SQYeUYhx8BQa#pA{b)rtERzs1 yB?EPM5%Km!1y{=>A{Zgq|T0000T%UH%7%$QI* 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 literal 0 HcmV?d00001 diff --git a/website/client/public/static/npc/winter/time_travelers_open_banner.png b/website/client/public/static/npc/winter/time_travelers_open_banner.png new file mode 100644 index 0000000000000000000000000000000000000000..1419f4e57645732a57097fdb3c969c943a46b398 GIT binary patch literal 6543 zcmd^Dd03KZ*LS9OTC{S?u}zb)G9y#7GS}oC&CJXt$z5d9%oLSyNs(=uQpa)^b#iU7 ztVG;W+$k{^OsFv-MIjS3BSj%a1muI6_xs~>=KKG?mNxH z&1sAJ9(6S}wJpwPPkXAV{i{j&`~AlC%KH*Cf}n);!7fgx)fB4hUPon~a%9uBvwpE^ zY8qOq?>A~iCA*Y^8{(W@9XCv9=5ziMg@F`<{@ zLNEWA5FU5+M<-`jkIN>Z8`RWxiJVXWbTM&sb{zA&HxFYtAGYhv#?E=`{ad&0TmE&I z`i(b@=KdDjhVHGmFdqqYeM>M1cRiUF*^uU1GYnxtSkH+?v&50^18w@(pPuZn2Ue^f z^3+Q2xpU~jey{I8s!^m>o8jvkaJ)`j9>3)EX45NMv35AjbRuZlif-k!YRQxYk^Q&) zsp0>Z+b=_>OTqIDv)Cm9@xiRiPLroqU8~?l2Gu;nE}Z}sUd-L_A3Xdqd>>;o?EcD55-BQ@ zkC24;mnA|H7yH$__^RB|xb=-+9K?U4MS^5aF58>(WawACfr&)T>TnMmT}3b%h1~ z4%95j^6s4~MJ;FkX_*uTyFgf0EBCFo<2@XYNNKF?@P&}%mmw21#Auih`mj}7x1lK` z%0y+zYo3W~RQGhWb=BP{IeTcE-loMDOVO`h5=;n!AP_;r;v5msQ+a>VKBsQ~d3#$A zPgLaYp_h71it~WXM2;yQnP|C|FG1WhbY-Q z;o0*mCnwwK*4XeJ%=PkHmiMknk6)7BtHnfC&pmJ1Ky1PJT0?Z8ea8)ZWz;wL!a){f zTA|WAG4}7mj(pEgot>RchOM;9q4AKs7^f&46<{X{nQ7bcMe!NI965Ol?bcsJ%MQ`5 zv*RYJIXT#Q*V8ZP_l`~)8F+OoZPJT@bS4fv%+!iEvkIC3y6-Lwut)&$Dge7Y5%(r^ zk@6j-NZ5$FRHg7!F)r-;dvq07bQBmRIQSEU5&A-rDyRQ5;_}k($S#t;sVPDV8t%ZIbEtlS7j(8C4 z)4xK?*6DhX>G8VQBS$n=yrQps_6_LoZXo<(d8#%lBw(V5qAviB(C4$I)-+SQZ^k{0 z*l+KK!p`C41>ji=&`|>(;5s)vy%1_)XPWfxz-i@rp9KHJ?qfIQarWfDDC_il`_t+I zm>%_tm-^+<`hz<(=%0J1BgP%wE88PJY6IP|UuU`&Kd1h0n*DC6kC>%0@J_eP5r>1F zOqWKqWBeQuxPI5;C-egPbXJxFnxfh0bMyd`^KYiMWeQ67$3?{Uk5!H1(Y7k}QrD{2 zVesrX<2zFoO%PUw$jD-X7!^`xv5SwoKv35+9_b`q9;^!*(+x|}H9VlVNs^vD$?e{Y zkr`KxKGW28w?{APwBRKXgZ~S6)#6UfcJJm6veyq`w6grnu$8a7!%+l5{)k=-VRego ziy3z%S00ywKFY=D_wK$yQO4Sw>((SsDGV{urE7g7~$Sm$8HuKfVA-qqg;@mYTVBv-}D9Ib*&fLWdT8$ zedwgXzS3kV^e6$yOFcOKEss*wBxR~n?TXdflw0YgT^C86C>4*DHr4npMf#H;UjLEj zt7E&ZV}w3R8=g?-`hQGV!Wr>4Z7I}N^c?lNrt&OZ9Y#CU@?wLFa3VXTv{s+%>yysW zHcCykw`UNk0)4lklF|XeFHzpK^nJB7*AniH(6_?_& zdY1|n?M6I7^+02DT59EE+sCni)G#)~L#E^McwbM_&tcAX-wShcXBPspQfw``zE3*6M3FRlM>XP9MJp=E3g+FOOD|nR6|dfBgMCO zLEgMCi6QK0B9ST=W2b4ehy5GEhaPtcFal%)82gpj0M<)FmBl2AAGO}-LH zt;6mzO0BE+IjL=S+udmLDp_B@w;oC`>IqLlv<5plch++KPkdd_+ZE^18CZyw&myHc zh9XG~eYgwMhKUY39to!=j7hJuXWr|QSIM~Qc@$jQ0nm=dtrDDpq^72#TdFc8&t9wj z4LR4+b691}r>B@q|Br9YYdXR=pe4M*N;G!%fy|+`Rh@Z6Q3a@!O>9ESnT#I>jppB^sUuV?Hl0HAh*N|6N@WsWV)353vTArPfn*rceeqn6T@>^R! zI7May4yq-dLbD#7(sTDSHcQ&iB_*SOtFf7JwBHFs-kjF< z*iC{;mT-*hdpxi`5iuGDgTV+Xk7fmOW(zkVbn-2pgTa<*?Mm6lC`0QDrt+(c!EA-H zu$LhN940gcgI`}f+0T7x09#5%pWtrO2N zL_rFEg5aD4052~V-n)ckPmcZsr$cx6msRy>Gxa79bWhWZE;die8`uG8JJOdgL(jW? z^P@V+tQnP|GjFa9i)U^jd~gQ8T|{${Fj%0V<||UZ4me23W1?t+l3FRN0&m5aypr|K zcT9ryq+``UfZa44%zhqvkqU2n*y3(@X(YE79PKa8$0wwkFZ72Jbd|B3ib4d3Tsr1< z*4CpQd%2Hq@_JfUl)8t)*%4s2$$jj(0NO?2Huu z66ixXl^sGbSh`{#OxRtvS4hhyrJ}w2ZrT$ytr(i(TVuOp2nIdj=}LmzLNM^)s0ix1 z_1x*|w#?bS=}Xd4{4`d-Jg-JhvK_BC@ZLIEnC#S?fccTBS(%=u&`5Wi5pg6x2Py6= zis=(MwgSWgMq$9K_YWoju9v^tq;yfqp|xpwoqHufw0t}35qfSf-;*sIAMj+?MqZ}^ zR@a7R_xJw9dClv)?<6Fd zr_*+Ziy76DuQI8EIho*UTT+z?P5M9qDtI@cM*LW1w39qy;0BiPZs4h6p(!p$NQDWXcRRr>9?9-Y zV~iK-K-4^SkQ`L_Sl8$ld8ni#9()3vRUphF zQt1(JNgLYxO1fRP@K;nh4O(D&fs~edfdFt@<@SQHVr^UzNpq0zV;qpH_}!+Ld`#)E zYq!^y`p-VFBXuGjnfYvP!_!xX`&ugr>~a(-&?+Sf@iPixi-!pt3!NmTXn{Zab_I1}<9eRp5nB-drrUJ>m0ut6+d-+Wg^H zJ)94rx|*8m*ER=N=<{k;KgRu@C7HtbMz?2p{@|EK2qU%xL@n!w(mWP)y ze)9R81TK~B+SuNKu=LDBiyWlAEv?YF&XZD}UMn%cY4c(25QY6=r|)T0E-r zXdVa|M(ubCurpJX0_n^1S)Q5s6ko?kRhn+nnXWQWQAEtIrD*!>x6mQY$$#J&YCz{rZ$jPdDTvJ9^Sa^v-TS1u6@^iD|| z=UJl0RR(U=nW|$m+1|Ssh*1cC0+Od6Edrr|FgM8!(<6O=Ep0RJ^QN6M2P??|@_9fx zt+6|+Q<|kgcP9V}o|3Pk`#V$z7P^{i^M*Y7aBxYC<*D;}vZ)dG3iLp1i+ywOs|KX> zD@;Qy>3i@|{rzK)3$|j6X{GJT4H+aLOpc|x780B#Q*U^vsmFIbv7cuG^-D-rg5z%X z=mdGMCpI#esKwqMk@U9SAgdBRNDwb2>hm4+bYciw3S8a393Ihwr7s+^amdWmGTn?y zIvAO?NWm2?n@UImqt5G~GMPP9(KMR}#K}J7qBk$LxFtd8SiDV>_TEZ`vJuWtG+y!nQk5_)|bTm~p_)#~P^wQ=!1CDliTn{j{?#eD$ z8p7kULtp8*_po}+fUz_tGk)M$jX5`BI=#TQYyMSXtbBg9u(Vt_9fURKna;IX@@g;# znVKNQ8w!xje*0$9tb1kRW^ByxLdtiN*IQ)N#$<6&$?fKFw$NH3Q!;&#wy-v81UI`+K8#K#MWP78YRFx~!&{#WI8qwyw;Wv>4{od_Y)Clt zCG46HB#WPle|;g46SY2s&a`G2PcCKD5KU!~tUI$nD0hwkyytc_&foPjC=05)G zMRl>oPU2l<4|u;|7YtfxI?x~;Ju{7ABkAM7-W8U%PhgIa-GS1`YQV6X=6#6mkeHv? zD>n_9Q=l{4!ym<|XhU9X6L$|}LY-=e_TBV6A+n$0c$g$zJcTv(7DTxX~nav;MBTA0*2iHdHMJ8wK)u}Ij z5R4zxTYB58TUjib+Os(2=|nhc;DHsyv3&2+Fa)SzylM#|MTHaJL97zbQe7!m9=D@e z4160qkBO7!kExZKhYw|7Bpsl!qlmXNF`^E>Y*>5?1TGYqu3iyy#9v3;Go<#dK|UQh zPCA*pB$`0?jsrD{Ibq=5j)XWcwYs|6P_DR9j{>q)`}lt<1Ap$I;Ll&r2F${g`bioL z^6Q?UyrMk)Iiqj4iOZXy?ZU(4i@r7lcU)6%RAy)-p!QD$NRg&$50y`s1L zZ);5#YogoYYtEf!R%2QDZs6G7b&AEg_>F$iv)uTuE;lw3R$l_2zovRNPfQ7D(B`1K&!-5$5XcIf!38p5C6s3U- zrwSs9a$;PD3fhO<8!MJ)r8VbmyaMf0<(E%5^D4>bqPOuE*Y60C<&@4=BcAErL6>0pJo~L{vQ$PHL>~Uw zLWwnA7>K8U^+56c8K8lKdaJ>8*yRnABC2baHYv@B?jq2e& zl)*SzueUeo3%^5os;{OC_`B%$JNV&^{!wT8=&MIcZr|q6F#-e_WV;|zjEWj|XjktB z#XDazj&p_)lg}tMv7Yn4IwJqDqN?G=lr{TB&raYL+ literal 0 HcmV?d00001 diff --git a/website/client/src/app.vue b/website/client/src/app.vue index 5ee9437eab..3bb518e491 100644 --- a/website/client/src/app.vue +++ b/website/client/src/app.vue @@ -39,6 +39,7 @@