diff --git a/website/client/components/creatorIntro.vue b/website/client/components/creatorIntro.vue index 19ca0efc5e..c28bb5a3e9 100644 --- a/website/client/components/creatorIntro.vue +++ b/website/client/components/creatorIntro.vue @@ -191,11 +191,13 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true .col-4.text-center.sub-menu-item(@click='changeSubPage("wheelchair")', :class='{active: activeSubPage === "wheelchair"}') strong(v-once) {{$t('wheelchair')}} .col-3.text-center.sub-menu-item(@click='changeSubPage("flower")', :class='{active: activeSubPage === "flower"}') - strong(v-once) {{$t('flower')}} + strong(v-once) {{$t('accent')}} .row.sub-menu(v-if='editing') - .col-4.offset-4.text-center.sub-menu-item(@click='changeSubPage("ears")' :class='{active: activeSubPage === "ears"}') + .col-4.offset-2.text-center.sub-menu-item(@click='changeSubPage("ears")' :class='{active: activeSubPage === "ears"}') strong(v-once) {{$t('animalEars')}} - .row(v-if='activeSubPage === "glasses"') + .col-4.text-center.sub-menu-item(@click='changeSubPage("headband")' :class='{active: activeSubPage === "headband"}') + strong(v-once) {{$t('headband')}} + #glasses.row(v-if='activeSubPage === "glasses"') .col-12.customize-options .option(v-for='option in eyewear', :class='{active: option.active}') .sprite.customize-option(:class="`eyewear_special_${option.key}`", @click='option.click') @@ -212,6 +214,10 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true .svg-icon.gem(v-html='icons.gem') span 5 button.btn.btn-secondary.purchase-all(@click='unlock(animalEarsUnlockString)') {{ $t('purchaseAll') }} + #headband.row(v-if='activeSubPage === "headband"') + .col-12.customize-options + .option(v-for='option in headbands', :class='{active: option.active}') + .sprite.customize-option(:class="`headAccessory_special_${option.key}`", @click='option.click') #wheelchairs.row(v-if='activeSubPage === "wheelchair"') .col-12.customize-options .option(@click='set({"preferences.chair": "none"})', :class='{active: user.preferences.chair === "none"}') @@ -222,7 +228,7 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true #flowers.row(v-if='activeSubPage === "flower"') .col-12.customize-options .head_0.option(@click='set({"preferences.hair.flower":0})', :class='{active: user.preferences.hair.flower === 0}') - .option(v-for='option in [1, 2, 3, 4, 5, 6]', + .option(v-for='option in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]', :class='{active: user.preferences.hair.flower === option}') .sprite.customize-option(:class="`hair_flower_${option}`", @click='set({"preferences.hair.flower": option})') .row(v-if='activeSubPage === "flower"') @@ -1038,6 +1044,21 @@ export default { }, computed: { ...mapState({user: 'user.data'}), + headbands () { + let keys = ['blackHeadband', 'blueHeadband', 'greenHeadband', 'pinkHeadband', 'redHeadband', 'whiteHeadband', 'yellowHeadband']; + let options = keys.map(key => { + let newKey = `headAccessory_special_${key}`; + let option = {}; + option.key = key; + option.active = this.user.preferences.costume ? this.user.items.gear.costume.headAccessory === newKey : this.user.items.gear.equipped.headAccessory === newKey; + option.click = () => { + let type = this.user.preferences.costume ? 'costume' : 'equipped'; + return this.equip(newKey, type); + }; + return option; + }); + return options; + }, eyewear () { let keys = ['blackTopFrame', 'blueTopFrame', 'greenTopFrame', 'pinkTopFrame', 'redTopFrame', 'whiteTopFrame', 'yellowTopFrame']; let options = keys.map(key => { diff --git a/website/common/locales/en/character.json b/website/common/locales/en/character.json index 7bfe47d255..d64fa13da6 100644 --- a/website/common/locales/en/character.json +++ b/website/common/locales/en/character.json @@ -45,6 +45,8 @@ "beard": "Beard", "mustache": "Mustache", "flower": "Flower", + "accent": "Accent", + "headband": "Headband", "wheelchair": "Wheelchair", "extra": "Extra", "basicSkins": "Basic Skins", diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index ab43f3208b..786571f827 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -1591,6 +1591,20 @@ "headAccessoryTigerEarsNotes": "These ears make you look like a fierce tiger! Confers no benefit.", "headAccessoryWolfEarsText": "Wolf Ears", "headAccessoryWolfEarsNotes": "These ears make you look like a loyal wolf! Confers no benefit.", + "headAccessoryBlackHeadbandText": "Black Headband", + "headAccessoryBlackHeadbandNotes": "A simple black headband. Confers no benefit.", + "headAccessoryBlueHeadbandText": "Blue Headband", + "headAccessoryBlueHeadbandNotes": "A simple blue headband. Confers no benefit.", + "headAccessoryGreenHeadbandText": "Green Headband", + "headAccessoryGreenHeadbandNotes": "A simple green headband. Confers no benefit.", + "headAccessoryPinkHeadbandText": "Pink Headband", + "headAccessoryPinkHeadbandNotes": "A simple pink headband. Confers no benefit.", + "headAccessoryRedHeadbandText": "Red Headband", + "headAccessoryRedHeadbandNotes": "A simple red headband. Confers no benefit.", + "headAccessoryWhiteHeadbandText": "White Headband", + "headAccessoryWhiteHeadbandNotes": "A simple white headband. Confers no benefit.", + "headAccessoryYellowHeadbandText": "Yellow Headband", + "headAccessoryYellowHeadbandNotes": "A simple yellow headband. Confers no benefit.", "headAccessoryMystery201403Text": "Forest Walker Antlers", "headAccessoryMystery201403Notes": "These antlers shimmer with moss and lichen. Confers no benefit. March 2014 Subscriber Item.", diff --git a/website/common/script/content/appearance/hair/flower.js b/website/common/script/content/appearance/hair/flower.js index b1322252bd..9b4b967748 100644 --- a/website/common/script/content/appearance/hair/flower.js +++ b/website/common/script/content/appearance/hair/flower.js @@ -8,4 +8,14 @@ module.exports = prefill({ 4: {}, 5: {}, 6: {}, + 7: {}, + 8: {}, + 9: {}, + 10: {}, + 11: {}, + 12: {}, + 13: {}, + 14: {}, + 15: {}, + 16: {}, }); diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index 1f2f026127..88e4f64575 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -8,7 +8,7 @@ import takeThisGear from './special-takeThis'; import wonderconGear from './special-wondercon'; import t from '../../../translation'; -const CURRENT_SEASON = 'spring'; +const CURRENT_SEASON = '_NONE_'; let armor = { 0: backerGear.armorSpecial0, @@ -2361,6 +2361,55 @@ let headAccessory = { return CURRENT_SEASON === 'spring'; }, }, + blackHeadband: { + gearSet: 'headband', + text: t('headAccessoryBlackHeadbandText'), + notes: t('headAccessoryBlackHeadbandNotes'), + value: 0, + canOwn: ownsItem('headAccessory_special_blackHeadband'), + }, + blueHeadband: { + gearSet: 'headband', + text: t('headAccessoryBlueHeadbandText'), + notes: t('headAccessoryBlueHeadbandNotes'), + value: 0, + canOwn: ownsItem('headAccessory_special_blueHeadband'), + }, + greenHeadband: { + gearSet: 'headband', + text: t('headAccessoryGreenHeadbandText'), + notes: t('headAccessoryGreenHeadbandNotes'), + value: 0, + canOwn: ownsItem('headAccessory_special_greenHeadband'), + }, + pinkHeadband: { + gearSet: 'headband', + text: t('headAccessoryPinkHeadbandText'), + notes: t('headAccessoryPinkHeadbandNotes'), + value: 0, + canOwn: ownsItem('headAccessory_special_pinkHeadband'), + }, + redHeadband: { + gearSet: 'headband', + text: t('headAccessoryRedHeadbandText'), + notes: t('headAccessoryRedHeadbandNotes'), + value: 0, + canOwn: ownsItem('headAccessory_special_redHeadband'), + }, + whiteHeadband: { + gearSet: 'headband', + text: t('headAccessoryWhiteHeadbandText'), + notes: t('headAccessoryWhiteHeadbandNotes'), + value: 0, + canOwn: ownsItem('headAccessory_special_whiteHeadband'), + }, + yellowHeadband: { + gearSet: 'headband', + text: t('headAccessoryYellowHeadbandText'), + notes: t('headAccessoryYellowHeadbandNotes'), + value: 0, + canOwn: ownsItem('headAccessory_special_yellowHeadband'), + }, }; let shield = { diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_10.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_10.png new file mode 100644 index 0000000000..836e0a7f76 Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_10.png differ diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_11.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_11.png new file mode 100644 index 0000000000..fa2116ab2b Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_11.png differ diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_12.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_12.png new file mode 100644 index 0000000000..5ca51c4c08 Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_12.png differ diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_13.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_13.png new file mode 100644 index 0000000000..936f8ead17 Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_13.png differ diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_14.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_14.png new file mode 100644 index 0000000000..89afb7a81d Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_14.png differ diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_15.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_15.png new file mode 100644 index 0000000000..8b6d388c07 Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_15.png differ diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_16.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_16.png new file mode 100644 index 0000000000..b615bcb146 Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_16.png differ diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_7.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_7.png new file mode 100644 index 0000000000..dd4f801472 Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_7.png differ diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_8.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_8.png new file mode 100644 index 0000000000..d687c0fb4c Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_8.png differ diff --git a/website/raw_sprites/spritesmith/customize/flowers/hair_flower_9.png b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_9.png new file mode 100644 index 0000000000..2e596890a0 Binary files /dev/null and b/website/raw_sprites/spritesmith/customize/flowers/hair_flower_9.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_blackHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_blackHeadband.png new file mode 100644 index 0000000000..a200ad69c1 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_blackHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_blueHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_blueHeadband.png new file mode 100644 index 0000000000..df03d44ae5 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_blueHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_greenHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_greenHeadband.png new file mode 100644 index 0000000000..5e9d4b9785 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_greenHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_pinkHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_pinkHeadband.png new file mode 100644 index 0000000000..be84aa8f94 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_pinkHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_redHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_redHeadband.png new file mode 100644 index 0000000000..09c72c0ce8 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_redHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_whiteHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_whiteHeadband.png new file mode 100644 index 0000000000..f4f20bac72 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_whiteHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_yellowHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_yellowHeadband.png new file mode 100644 index 0000000000..b6b19112a6 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/headAccessory_special_yellowHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_blackHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_blackHeadband.png new file mode 100644 index 0000000000..817fc449d8 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_blackHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_blueHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_blueHeadband.png new file mode 100644 index 0000000000..be5f672cca Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_blueHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_greenHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_greenHeadband.png new file mode 100644 index 0000000000..6edfe96572 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_greenHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_pinkHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_pinkHeadband.png new file mode 100644 index 0000000000..02e1327b70 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_pinkHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_redHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_redHeadband.png new file mode 100644 index 0000000000..953508fda0 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_redHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_whiteHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_whiteHeadband.png new file mode 100644 index 0000000000..53b02471e6 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_whiteHeadband.png differ diff --git a/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_yellowHeadband.png b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_yellowHeadband.png new file mode 100644 index 0000000000..7323414fc8 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/headAccessory/shop/shop_headAccessory_special_yellowHeadband.png differ diff --git a/website/server/models/user/schema.js b/website/server/models/user/schema.js index d1ac96b7f2..56a0d7e82a 100644 --- a/website/server/models/user/schema.js +++ b/website/server/models/user/schema.js @@ -252,7 +252,7 @@ let schema = new Schema({ gear: { owned: _.transform(shared.content.gear.flat, (m, v) => { m[v.key] = {type: Boolean}; - if (v.key.match(/(armor|head|shield)_warrior_0/) || v.gearSet === 'glasses') { + if (v.key.match(/(armor|head|shield)_warrior_0/) || v.gearSet === 'glasses' || v.gearSet === 'headband' ) { m[v.key].default = true; } }),