From aa4426c8004cd1f36dd949498d834eac09bf4a96 Mon Sep 17 00:00:00 2001 From: SabreCat Date: Mon, 31 Jul 2023 18:44:08 -0500 Subject: [PATCH] fix(event): corrections to contributor goodies --- .../2023/20230801_veteran_pet_ladder.js | 14 +- website/client/package-lock.json | 128 +++++++++++------- website/client/src/assets/css/sprites.css | 14 +- .../assets/css/sprites/spritesmith-main.css | 70 ++++++++++ website/common/locales/en/gear.json | 6 + .../script/content/gear/sets/special/index.js | 2 +- .../gear/sets/special/special-contributor.js | 10 +- 7 files changed, 174 insertions(+), 70 deletions(-) diff --git a/migrations/archive/2023/20230801_veteran_pet_ladder.js b/migrations/archive/2023/20230801_veteran_pet_ladder.js index 718881caca..23b87ec215 100644 --- a/migrations/archive/2023/20230801_veteran_pet_ladder.js +++ b/migrations/archive/2023/20230801_veteran_pet_ladder.js @@ -19,7 +19,7 @@ async function updateUser (user) { data: { icon: 'icon_pet_veteran_dragon', title: 'You’ve received a Veteran Pet!', - text: 'To commemorate being here for a new era of Habitca, we’ve awarded you a Veteran Dragon.', + text: 'To commemorate being here for a new era of Habitica, we’ve awarded you a Veteran Dragon.', destination: '/inventory/stable', }, seen: false, @@ -31,7 +31,7 @@ async function updateUser (user) { data: { icon: 'icon_pet_veteran_fox', title: 'You’ve received a Veteran Pet!', - text: 'To commemorate being here for a new era of Habitca, we’ve awarded you a Veteran Fox.', + text: 'To commemorate being here for a new era of Habitica, we’ve awarded you a Veteran Fox.', destination: '/inventory/stable', }, seen: false, @@ -43,7 +43,7 @@ async function updateUser (user) { data: { icon: 'icon_pet_veteran_bear', title: 'You’ve received a Veteran Pet!', - text: 'To commemorate being here for a new era of Habitca, we’ve awarded you a Veteran Bear.', + text: 'To commemorate being here for a new era of Habitica, we’ve awarded you a Veteran Bear.', destination: '/inventory/stable', }, seen: false, @@ -55,7 +55,7 @@ async function updateUser (user) { data: { icon: 'icon_pet_veteran_lion', title: 'You’ve received a Veteran Pet!', - text: 'To commemorate being here for a new era of Habitca, we’ve awarded you a Veteran Lion.', + text: 'To commemorate being here for a new era of Habitica, we’ve awarded you a Veteran Lion.', destination: '/inventory/stable', }, seen: false, @@ -67,7 +67,7 @@ async function updateUser (user) { data: { icon: 'icon_pet_veteran_tiger', title: 'You’ve received a Veteran Pet!', - text: 'To commemorate being here for a new era of Habitca, we’ve awarded you a Veteran Tiger.', + text: 'To commemorate being here for a new era of Habitica, we’ve awarded you a Veteran Tiger.', destination: '/inventory/stable', }, seen: false, @@ -79,7 +79,7 @@ async function updateUser (user) { data: { icon: 'icon_pet_veteran_wolf', title: 'You’ve received a Veteran Pet!', - text: 'To commemorate being here for a new era of Habitca, we’ve awarded you a Veteran Wolf.', + text: 'To commemorate being here for a new era of Habitica, we’ve awarded you a Veteran Wolf.', destination: '/inventory/stable', }, seen: false, @@ -89,7 +89,7 @@ async function updateUser (user) { if (user.contributor.level > 0) { set['items.gear.owned.armor_special_heroicTunic'] = true; set['items.gear.owned.back_special_heroicAureole'] = true; - set['items.gear.owned.head_special_heroicCirclet'] = true; + set['items.gear.owned.headAccessory_special_heroicCirclet'] = true; push.notifications.$each.push({ type: 'ITEM_RECEIVED', data: { diff --git a/website/client/package-lock.json b/website/client/package-lock.json index f04b688bba..36ed735b3c 100644 --- a/website/client/package-lock.json +++ b/website/client/package-lock.json @@ -13318,31 +13318,11 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -13374,35 +13354,6 @@ "ansi-regex": "^5.0.1" } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.8.3", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", - "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -30630,6 +30581,85 @@ } } }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "optional": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "optional": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "vue-mugen-scroll": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/vue-mugen-scroll/-/vue-mugen-scroll-0.2.6.tgz", diff --git a/website/client/src/assets/css/sprites.css b/website/client/src/assets/css/sprites.css index 80df8cd611..6baa43e882 100755 --- a/website/client/src/assets/css/sprites.css +++ b/website/client/src/assets/css/sprites.css @@ -94,6 +94,12 @@ height: 90px; } +.back_special_heroicAureole { + width: 114px; + height: 90px; + background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_special_heroicAureole.gif") no-repeat; +} + .head_special_0 { background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/BackerOnly-Equip-ShadeHelmet.gif") no-repeat; } @@ -192,14 +198,6 @@ background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_steamworks.gif") no-repeat; } -/* FIXME figure out how to handle customize menu!! -.customize-menu .f_head_0 { - width: 60px; - height: 60px; - background-position: -1917px -9px; -} -*/ - [class*="Mount_Head_"], [class*="Mount_Body_"] { margin-top:18px; /* Sprite accommodates 105x123 box */ diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index f3cd9bfc28..b8a29e51f3 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -22685,6 +22685,11 @@ width: 90px; height: 90px; } +.broad_armor_special_heroicTunic { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_heroicTunic.png'); + width: 114px; + height: 90px; +} .broad_armor_special_lunarWarriorArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_lunarWarriorArmor.png'); width: 90px; @@ -22870,6 +22875,11 @@ width: 68px; height: 68px; } +.shop_armor_special_heroicTunic { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_heroicTunic.png'); + width: 68px; + height: 68px; +} .shop_armor_special_lunarWarriorArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_lunarWarriorArmor.png'); width: 68px; @@ -23045,6 +23055,11 @@ width: 90px; height: 90px; } +.slim_armor_special_heroicTunic { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_heroicTunic.png'); + width: 114px; + height: 90px; +} .slim_armor_special_lunarWarriorArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_lunarWarriorArmor.png'); width: 90px; @@ -23275,6 +23290,11 @@ width: 68px; height: 68px; } +.shop_back_special_heroicAureole { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_back_special_heroicAureole.png'); + width: 68px; + height: 68px; +} .shop_back_special_lionTail { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_back_special_lionTail.png'); width: 68px; @@ -34417,6 +34437,11 @@ width: 114px; height: 90px; } +.headAccessory_special_heroicCirclet { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_heroicCirclet.png'); + width: 114px; + height: 90px; +} .headAccessory_special_lionEars { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_lionEars.png'); width: 90px; @@ -34522,6 +34547,11 @@ width: 68px; height: 68px; } +.shop_headAccessory_special_heroicCirclet { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_heroicCirclet.png'); + width: 68px; + height: 68px; +} .shop_headAccessory_special_lionEars { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_lionEars.png'); width: 68px; @@ -35908,6 +35938,41 @@ width: 40px; height: 40px; } +.heroic_set_icon { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/heroic_set_icon.png'); + width: 28px; + height: 28px; +} +.icon_pet_veteran_bear { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_pet_veteran_bear.png'); + width: 28px; + height: 28px; +} +.icon_pet_veteran_dragon { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_pet_veteran_dragon.png'); + width: 28px; + height: 28px; +} +.icon_pet_veteran_fox { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_pet_veteran_fox.png'); + width: 28px; + height: 28px; +} +.icon_pet_veteran_lion { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_pet_veteran_lion.png'); + width: 28px; + height: 28px; +} +.icon_pet_veteran_tiger { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_pet_veteran_tiger.png'); + width: 28px; + height: 28px; +} +.icon_pet_veteran_wolf { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_pet_veteran_wolf.png'); + width: 28px; + height: 28px; +} .notif_head_special_nye { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/notif_head_special_nye.png'); width: 28px; @@ -55208,6 +55273,11 @@ width: 81px; height: 99px; } +.Pet-Dragon-Veteran { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dragon-Veteran.png'); + width: 81px; + height: 99px; +} .Pet-Dragon-VirtualPet { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dragon-VirtualPet.png'); width: 81px; diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index c948a6d6a1..7cf4f468e7 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -796,6 +796,8 @@ "armorSpecialTurkeyArmorGildedNotes": "Strut your stuff in this seasonally shiny armor! Confers no benefit.", "armorSpecialKS2019Text": "Mythic Gryphon Armor", "armorSpecialKS2019Notes": "Glowing from within like a gryphon's noble heart, this resplendent armor encourages you to take pride in your accomplishments. Increases Constitution by <%= con %>.", + "armorSpecialHeroicTunicText": "Heroic Tunic", + "armorSpecialHeroicTunicNotes": "They say heroes shouldn't rest on their laurels but you can rest in this comfortable and fashionable raiment. Increases all stats by <%= attrs %>.", "armorSpecialYetiText": "Yeti-Tamer Robe", "armorSpecialYetiNotes": "Fuzzy and fierce. Increases Constitution by <%= con %>. Limited Edition 2013-2014 Winter Gear.", @@ -2794,6 +2796,8 @@ "backSpecialNamingDay2020Notes": "Happy Naming Day! Swish this fiery, pixely tail about as you celebrate Habitica. Confers no benefit.", "backSpecialAnniversaryText": "Habitica Hero Cape", "backSpecialAnniversaryNotes": "Let this proud cape fly in the wind and tell everyone that you're a Habitica Hero. Confers no benefit. Special Edition 10th Birthday Bash Item.", + "backSpecialHeroicAureoleText": "Heroic Aureole", + "backSpecialHeroicAureoleNotes": "The gems on this aureole glimmer when you tell your tales of glory. Increases all stats by <%= attrs %>.", "backBearTailText": "Bear Tail", "backBearTailNotes": "This tail makes you look like a brave bear! Confers no benefit.", @@ -2876,6 +2880,8 @@ "headAccessoryBase0Text": "No Head Accessory", "headAccessoryBase0Notes": "No Head Accessory.", + "headAccessorySpecialHeroicCircletText": "Heroic Circlet", + "headAccessorySpecialHeroicCircletNotes": "Heavy is the head that wears the crown, but this circlet is as light as your generous spirit. Increases all stats by <%= attrs %>.", "headAccessorySpecialSpringRogueText": "Purple Cat Ears", "headAccessorySpecialSpringRogueNotes": "These feline ears twitch to detect incoming threats. Confers no benefit. Limited Edition 2014 Spring Gear.", diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index b0d22c5a1d..813652340e 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -1206,7 +1206,6 @@ const head = { 1: contributorGear.headSpecial1, 2: backerGear.headSpecial2, takeThis: takeThisGear.headSpecialTakeThis, - heroicCirclet: contributorGear.headSpecialHeroicCirclet, fireCoralCirclet: { text: t('headSpecialFireCoralCircletText'), notes: t('headSpecialFireCoralCircletNotes', { per: 15 }), @@ -2058,6 +2057,7 @@ Object.keys(gearEvents).forEach(event => { }); const headAccessory = { + heroicCirclet: contributorGear.headAccessorySpecialHeroicCirclet, springRogue: { specialClass: 'rogue', set: 'stealthyKittySet', diff --git a/website/common/script/content/gear/sets/special/special-contributor.js b/website/common/script/content/gear/sets/special/special-contributor.js index 19955473b0..390ba9e09c 100644 --- a/website/common/script/content/gear/sets/special/special-contributor.js +++ b/website/common/script/content/gear/sets/special/special-contributor.js @@ -88,15 +88,15 @@ const backSpecialHeroicAureole = { canOwn: ownsItem('armor_special_heroicAureole'), }; -const headSpecialHeroicCirclet = { - text: t('headSpecialHeroicCircletText'), - notes: t('headSpecialHeroicCircletNotes', { attrs: 7 }), +const headAccessorySpecialHeroicCirclet = { + text: t('headAccessorySpecialHeroicCircletText'), + notes: t('headAccessorySpecialHeroicCircletNotes', { attrs: 7 }), con: 7, str: 7, per: 7, int: 7, value: 175, - canOwn: ownsItem('head_special_heroicCirclet'), + canOwn: ownsItem('headAccessory_special_heroicCirclet'), }; export { @@ -107,5 +107,5 @@ export { weaponSpecialCritical, armorSpecialHeroicTunic, backSpecialHeroicAureole, - headSpecialHeroicCirclet, + headAccessorySpecialHeroicCirclet, };