Add avatar customizations to content API

This commit is contained in:
Phillip Thelen
2016-01-21 14:24:10 +01:00
committed by Blade Barringer
parent 0d06d765f2
commit 8e8c28725a
18 changed files with 583 additions and 350 deletions

View File

@@ -207,5 +207,4 @@
"foodNotes": "Feed this to a pet and it may grow into a sturdy steed." "foodNotes": "Feed this to a pet and it may grow into a sturdy steed."
} }

View File

@@ -1,62 +0,0 @@
export let defaultAppearancePreferences = {
background: {},
hair: {
bangs: {
0: true,
1: true,
2: true,
3: true,
},
base: {
0: true,
1: true,
3: true,
},
beard: {
0: true,
},
color: {
white: true,
brown: true,
blond: true,
red: true,
black: true,
},
flower: {
0: true,
1: true,
2: true,
3: true,
4: true,
5: true,
6: true,
},
mustache: {
0: true,
},
},
shirt: {
black: true,
blue: true,
green: true,
pink: true,
white: true,
yellow: true,
},
size: {
slim: true,
broad: true,
},
skin: {
/* eslint-disable quote-props */
'ddc994': true,
'f5a76e': true,
'ea8349': true,
'c06534': true,
'98461a': true,
'915533': true,
'c3e1dc': true,
'6bd049': true,
/* eslint-enable quote-props */
},
};

View File

@@ -0,0 +1,295 @@
import {forOwn} from 'lodash';
let t = require('../translation.js');
/* eslint-disable camelcase */
let backgrounds = {
backgrounds062014: {
beach: {
text: t('backgroundBeachText'),
notes: t('backgroundBeachNotes'),
},
fairy_ring: {
text: t('backgroundFairyRingText'),
notes: t('backgroundFairyRingNotes'),
},
forest: {
text: t('backgroundForestText'),
notes: t('backgroundForestNotes'),
},
},
backgrounds072014: {
open_waters: {
text: t('backgroundOpenWatersText'),
notes: t('backgroundOpenWatersNotes'),
},
coral_reef: {
text: t('backgroundCoralReefText'),
notes: t('backgroundCoralReefNotes'),
},
seafarer_ship: {
text: t('backgroundSeafarerShipText'),
notes: t('backgroundSeafarerShipNotes'),
},
},
backgrounds082014: {
volcano: {
text: t('backgroundVolcanoText'),
notes: t('backgroundVolcanoNotes'),
},
clouds: {
text: t('backgroundCloudsText'),
notes: t('backgroundCloudsNotes'),
},
dusty_canyons: {
text: t('backgroundDustyCanyonsText'),
notes: t('backgroundDustyCanyonsNotes'),
},
},
backgrounds092014: {
thunderstorm: {
text: t('backgroundThunderstormText'),
notes: t('backgroundThunderstormNotes'),
},
autumn_forest: {
text: t('backgroundAutumnForestText'),
notes: t('backgroundAutumnForestNotes'),
},
harvest_fields: {
text: t('backgroundHarvestFieldsText'),
notes: t('backgroundHarvestFieldsNotes'),
},
},
backgrounds102014: {
graveyard: {
text: t('backgroundGraveyardText'),
notes: t('backgroundGraveyardNotes'),
},
haunted_house: {
text: t('backgroundHauntedHouseText'),
notes: t('backgroundHauntedHouseNotes'),
},
pumpkin_patch: {
text: t('backgroundPumpkinPatchText'),
notes: t('backgroundPumpkinPatchNotes'),
},
},
backgrounds112014: {
harvest_feast: {
text: t('backgroundHarvestFeastText'),
notes: t('backgroundHarvestFeastNotes'),
},
sunset_meadow: {
text: t('backgroundSunsetMeadowText'),
notes: t('backgroundSunsetMeadowNotes'),
},
starry_skies: {
text: t('backgroundStarrySkiesText'),
notes: t('backgroundStarrySkiesNotes'),
},
},
backgrounds122014: {
iceberg: {
text: t('backgroundIcebergText'),
notes: t('backgroundIcebergNotes'),
},
twinkly_lights: {
text: t('backgroundTwinklyLightsText'),
notes: t('backgroundTwinklyLightsNotes'),
},
south_pole: {
text: t('backgroundSouthPoleText'),
notes: t('backgroundSouthPoleNotes'),
},
},
backgrounds012015: {
ice_cave: {
text: t('backgroundIceCaveText'),
notes: t('backgroundIceCaveNotes'),
},
frigid_peak: {
text: t('backgroundFrigidPeakText'),
notes: t('backgroundFrigidPeakNotes'),
},
snowy_pines: {
text: t('backgroundSnowyPinesText'),
notes: t('backgroundSnowyPinesNotes'),
},
},
backgrounds022015: {
blacksmithy: {
text: t('backgroundBlacksmithyText'),
notes: t('backgroundBlacksmithyNotes'),
},
crystal_cave: {
text: t('backgroundCrystalCaveText'),
notes: t('backgroundCrystalCaveNotes'),
},
distant_castle: {
text: t('backgroundDistantCastleText'),
notes: t('backgroundDistantCastleNotes'),
},
},
backgrounds032015: {
spring_rain: {
text: t('backgroundSpringRainText'),
notes: t('backgroundSpringRainNotes'),
},
stained_glass: {
text: t('backgroundStainedGlassText'),
notes: t('backgroundStainedGlassNotes'),
},
rolling_hills: {
text: t('backgroundRollingHillsText'),
notes: t('backgroundRollingHillsNotes'),
},
},
backgrounds042015: {
cherry_trees: {
text: t('backgroundCherryTreesText'),
notes: t('backgroundCherryTreesNotes'),
},
floral_meadow: {
text: t('backgroundFloralMeadowText'),
notes: t('backgroundFloralMeadowNotes'),
},
gumdrop_land: {
text: t('backgroundGumdropLandText'),
notes: t('backgroundGumdropLandNotes'),
},
},
backgrounds052015: {
marble_temple: {
text: t('backgroundMarbleTempleText'),
notes: t('backgroundMarbleTempleNotes'),
},
mountain_lake: {
text: t('backgroundMountainLakeText'),
notes: t('backgroundMountainLakeNotes'),
},
pagodas: {
text: t('backgroundPagodasText'),
notes: t('backgroundPagodasNotes'),
},
},
backgrounds062015: {
drifting_raft: {
text: t('backgroundDriftingRaftText'),
notes: t('backgroundDriftingRaftNotes'),
},
shimmery_bubbles: {
text: t('backgroundShimmeryBubblesText'),
notes: t('backgroundShimmeryBubblesNotes'),
},
island_waterfalls: {
text: t('backgroundIslandWaterfallsText'),
notes: t('backgroundIslandWaterfallsNotes'),
},
},
backgrounds072015: {
dilatory_ruins: {
text: t('backgroundDilatoryRuinsText'),
notes: t('backgroundDilatoryRuinsNotes'),
},
giant_wave: {
text: t('backgroundGiantWaveText'),
notes: t('backgroundGiantWaveNotes'),
},
sunken_ship: {
text: t('backgroundSunkenShipText'),
notes: t('backgroundSunkenShipNotes'),
},
},
backgrounds082015: {
pyramids: {
text: t('backgroundPyramidsText'),
notes: t('backgroundPyramidsNotes'),
},
sunset_savannah: {
text: t('backgroundSunsetSavannahText'),
notes: t('backgroundSunsetSavannahNotes'),
},
twinkly_party_lights: {
text: t('backgroundTwinklyPartyLightsText'),
notes: t('backgroundTwinklyPartyLightsNotes'),
},
},
backgrounds092015: {
market: {
text: t('backgroundMarketText'),
notes: t('backgroundMarketNotes'),
},
stable: {
text: t('backgroundStableText'),
notes: t('backgroundStableNotes'),
},
tavern: {
text: t('backgroundTavernText'),
notes: t('backgroundTavernNotes'),
},
},
backgrounds102015: {
harvest_moon: {
text: t('backgroundHarvestMoonText'),
notes: t('backgroundHarvestMoonNotes'),
},
slimy_swamp: {
text: t('backgroundSlimySwampText'),
notes: t('backgroundSlimySwampNotes'),
},
swarming_darkness: {
text: t('backgroundSwarmingDarknessText'),
notes: t('backgroundSwarmingDarknessNotes'),
},
},
backgrounds112015: {
floating_islands: {
text: t('backgroundFloatingIslandsText'),
notes: t('backgroundFloatingIslandsNotes'),
},
night_dunes: {
text: t('backgroundNightDunesText'),
notes: t('backgroundNightDunesNotes'),
},
sunset_oasis: {
text: t('backgroundSunsetOasisText'),
notes: t('backgroundSunsetOasisNotes'),
},
},
backgrounds122015: {
alpine_slopes: {
text: t('backgroundAlpineSlopesText'),
notes: t('backgroundAlpineSlopesNotes'),
},
snowy_sunrise: {
text: t('backgroundSnowySunriseText'),
notes: t('backgroundSnowySunriseNotes'),
},
winter_town: {
text: t('backgroundWinterTownText'),
notes: t('backgroundWinterTownNotes'),
},
},
backgrounds012016: {
frozen_lake: {
text: t('backgroundFrozenLakeText'),
notes: t('backgroundFrozenLakeNotes'),
},
snowman_army: {
text: t('backgroundSnowmanArmyText'),
notes: t('backgroundSnowmanArmyNotes'),
},
winter_night: {
text: t('backgroundWinterNightText'),
notes: t('backgroundWinterNightNotes'),
},
},
};
/* eslint-enable quote-props */
forOwn(backgrounds, function prefillBackgroundSet (value) {
forOwn(value, function prefillBackground (bgObject) {
bgObject.price = 7;
});
});
export default backgrounds;

View File

@@ -0,0 +1,8 @@
import prefill from '../prefill.js';
export default prefill({
0: {},
1: {},
2: {},
3: {},
});

View File

@@ -0,0 +1,19 @@
import prefill from '../prefill.js';
import sets from '../sets.js';
export default prefill({
0: {},
1: {},
2: {price: 2, set: sets.baseHair1},
3: {},
4: {price: 2, set: sets.baseHair1},
5: {price: 2, set: sets.baseHair1},
6: {price: 2, set: sets.baseHair1},
7: {price: 2, set: sets.baseHair1},
8: {price: 2, set: sets.baseHair1},
9: {price: 2, set: sets.baseHair2},
10: {price: 2, set: sets.baseHair2},
11: {price: 2, set: sets.baseHair2},
12: {price: 2, set: sets.baseHair2},
13: {price: 2, set: sets.baseHair2},
14: {price: 2, set: sets.baseHair2},
});

View File

@@ -0,0 +1,9 @@
import sets from '../sets.js';
import prefill from '../prefill.js';
export default prefill({
0: {},
1: {price: 2, set: sets.facialHair},
2: {price: 2, set: sets.facialHair},
3: {price: 2, set: sets.facialHair},
});

View File

@@ -0,0 +1,50 @@
import sets from '../sets.js';
import prefill from '../prefill.js';
export default prefill({
white: {},
brown: {},
blond: {},
red: {},
black: {},
candycane: {price: 2, set: sets.winterHairColors},
frost: {price: 2, set: sets.winterHairColors},
winternight: {price: 2, set: sets.winterHairColors},
holly: {price: 2, set: sets.winterHairColors},
pblue: {price: 2, set: sets.pastelHairColors},
pgreen: {price: 2, set: sets.pastelHairColors},
porange: {price: 2, set: sets.pastelHairColors},
ppink: {price: 2, set: sets.pastelHairColors},
ppurple: {price: 2, set: sets.pastelHairColors},
pyellow: {price: 2, set: sets.pastelHairColors},
rainbow: {price: 2, set: sets.rainbowHairColors},
yellow: {price: 2, set: sets.rainbowHairColors},
green: {price: 2, set: sets.rainbowHairColors},
purple: {price: 2, set: sets.rainbowHairColors},
blue: {price: 2, set: sets.rainbowHairColors},
TRUred: {price: 2, set: sets.rainbowHairColors},
pblue2: {price: 2, set: sets.shimmerHairColors},
pgreen2: {price: 2, set: sets.shimmerHairColors},
porange2: {price: 2, set: sets.shimmerHairColors},
ppink2: {price: 2, set: sets.shimmerHairColors},
ppurple2: {price: 2, set: sets.shimmerHairColors},
pyellow2: {price: 2, set: sets.shimmerHairColors},
candycorn: {price: 2, set: sets.hauntedHairColors},
ghostwhite: {price: 2, set: sets.hauntedHairColors},
halloween: {price: 2, set: sets.hauntedHairColors},
midnight: {price: 2, set: sets.hauntedHairColors},
pumpkin: {price: 2, set: sets.hauntedHairColors},
zombie: {price: 2, set: sets.hauntedHairColors},
aurora: {price: 2, set: sets.winteryHairColors},
festive: {price: 2, set: sets.winteryHairColors},
hollygreen: {price: 2, set: sets.winteryHairColors},
peppermint: {price: 2, set: sets.winteryHairColors},
snowy: {price: 2, set: sets.winteryHairColors},
winterstar: {price: 2, set: sets.winteryHairColors},
});

View File

@@ -0,0 +1,11 @@
import prefill from '../prefill.js';
export default prefill({
0: {},
1: {},
2: {},
3: {},
4: {},
5: {},
6: {},
});

View File

@@ -0,0 +1,15 @@
import bangs from './bangs.js';
import base from './base.js';
import beard from './beard.js';
import color from './color.js';
import flower from './flower.js';
import mustache from './mustache.js';
export default {
color,
base,
bangs,
flower,
beard,
mustache,
};

View File

@@ -0,0 +1,8 @@
import sets from '../sets.js';
import prefill from '../prefill.js';
export default prefill({
0: {},
1: {price: 2, set: sets.facialHair},
2: {price: 2, set: sets.facialHair},
});

View File

@@ -0,0 +1,31 @@
import hair from './hair';
import shirts from './shirt.js';
import skins from './skin.js';
import sizes from './size.js';
import backgrounds from './backgrounds.js';
import {forOwn, clone} from 'lodash';
let reorderedBgs = {};
forOwn(backgrounds, function restructureBackgroundSet (value, key) {
forOwn(value, function restructureBackground (bgObject, bgKey) {
let bg = clone(bgObject);
bg.set = {
text: key,
key,
setPrice: 15,
};
reorderedBgs[bgKey] = bg;
});
});
let appearances = {
hair,
shirt: shirts,
size: sizes,
skin: skins,
background: reorderedBgs,
};
module.exports = appearances;

View File

@@ -0,0 +1,11 @@
import {forOwn} from 'lodash';
export default function prefillAppearances (obj) {
forOwn(obj, function prefillAppearance (value, key) {
value.key = key;
if (!value.price) {
value.price = 0;
}
});
return obj;
}

View File

@@ -0,0 +1,21 @@
import t from '../translation';
import prefill from './prefill.js';
export default prefill({
baseHair1: {setPrice: 5, text: t('hairSet1')},
baseHair2: {setPrice: 5, text: t('hairSet2')},
facialHair: {setPrice: 5, text: t('bodyFacialHair')},
specialShirts: {setPrice: 5, text: t('specialShirts')},
winterHairColors: {setPrice: 5, availableUntil: '2016-01-01'},
pastelHairColors: {setPrice: 5, availableUntil: '2016-01-01'},
rainbowHairColors: {setPrice: 5, text: t('rainbowColors')},
shimmerHairColors: {setPrice: 5, availableUntil: '2016-01-01', text: t('shimmerColors')},
hauntedHairColors: {setPrice: 5, availableUntil: '2016-01-01', text: t('hauntedColors')},
winteryHairColors: {setPrice: 5, availableFrom: '2015-12-18', availableUntil: '2016-02-02', text: t('winteryColors')},
rainbowSkins: {setPrice: 5, text: t('rainbowSkins')},
animalSkins: {setPrice: 5, text: t('animalSkins')},
pastelSkins: {setPrice: 5, availableUntil: '2016-01-01', text: t('pastelSkins')},
spookySkins: {setPrice: 5, availableUntil: '2016-01-01', text: t('spookySkins')},
supernaturalSkins: {setPrice: 5, availableUntil: '2016-01-01', text: t('supernaturalSkins')},
splashySkins: {setPrice: 5, availableUntil: '2016-01-01', text: t('splashySkins')},
});

View File

@@ -0,0 +1,23 @@
import sets from './sets.js';
import prefill from './prefill.js';
export default prefill({
black: {},
blue: {},
green: {},
pink: {},
white: {},
yellow: {},
convict: {price: 2, set: sets.specialShirts},
cross: {price: 2, set: sets.specialShirts},
fire: {price: 2, set: sets.specialShirts},
horizon: {price: 2, set: sets.specialShirts},
ocean: {price: 2, set: sets.specialShirts},
purple: {price: 2, set: sets.specialShirts},
rainbow: {price: 2, set: sets.specialShirts},
redblue: {price: 2, set: sets.specialShirts},
thunder: {price: 2, set: sets.specialShirts},
tropical: {price: 2, set: sets.specialShirts},
zombie: {price: 2, set: sets.specialShirts},
});

View File

@@ -0,0 +1,6 @@
import prefill from './prefill.js';
export default prefill({
slim: {},
broad: {},
});

View File

@@ -0,0 +1,68 @@
import prefill from './prefill.js';
import sets from './sets.js';
export default prefill({
/* eslint-disable quote-props */
'ddc994': {},
'f5a76e': {},
'ea8349': {},
'c06534': {},
'98461a': {},
'915533': {},
'c3e1dc': {},
'6bd049': {},
'eb052b': {price: 2, set: sets.rainbowSkins},
'f69922': {price: 2, set: sets.rainbowSkins},
'f5d70f': {price: 2, set: sets.rainbowSkins},
'0ff591': {price: 2, set: sets.rainbowSkins},
'2b43f6': {price: 2, set: sets.rainbowSkins},
'd7a9f7': {price: 2, set: sets.rainbowSkins},
'800ed0': {price: 2, set: sets.rainbowSkins},
'rainbow': {price: 2, set: sets.rainbowSkins},
'bear': {price: 2, set: sets.animalSkins},
'cactus': {price: 2, set: sets.animalSkins},
'fox': {price: 2, set: sets.animalSkins},
'lion': {price: 2, set: sets.animalSkins},
'panda': {price: 2, set: sets.animalSkins},
'pig': {price: 2, set: sets.animalSkins},
'tiger': {price: 2, set: sets.animalSkins},
'wolf': {price: 2, set: sets.animalSkins},
'pastelPink': {price: 2, set: sets.pastelSkins},
'pastelOrange': {price: 2, set: sets.pastelSkins},
'pastelYellow': {price: 2, set: sets.pastelSkins},
'pastelGreen': {price: 2, set: sets.pastelSkins},
'pastelBlue': {price: 2, set: sets.pastelSkins},
'pastelPurple': {price: 2, set: sets.pastelSkins},
'pastelRainbowChevron': {price: 2, set: sets.pastelSkins},
'pastelRainbowDiagonal': {price: 2, set: sets.pastelSkins},
'monster': {price: 2, set: sets.spookySkins},
'pumpkin': {price: 2, set: sets.spookySkins},
'skeleton': {price: 2, set: sets.spookySkins},
'zombie': {price: 2, set: sets.spookySkins},
'ghost': {price: 2, set: sets.spookySkins},
'shadow': {price: 2, set: sets.spookySkins},
'candycorn': {price: 2, set: sets.supernaturalSkins},
'ogre': {price: 2, set: sets.supernaturalSkins},
'pumpkin2': {price: 2, set: sets.supernaturalSkins},
'reptile': {price: 2, set: sets.supernaturalSkins},
'shadow2': {price: 2, set: sets.supernaturalSkins},
'skeleton2': {price: 2, set: sets.supernaturalSkins},
'transparent': {price: 2, set: sets.supernaturalSkins},
'zombie2': {price: 2, set: sets.supernaturalSkins},
'clownfish': {price: 2, set: sets.splashySkins},
'deepocean': {price: 2, set: sets.splashySkins},
'merblue': {price: 2, set: sets.splashySkins},
'mergold': {price: 2, set: sets.splashySkins},
'mergreen': {price: 2, set: sets.splashySkins},
'merruby': {price: 2, set: sets.splashySkins},
'shark': {price: 2, set: sets.splashySkins},
'tropicalwater': {price: 2, set: sets.splashySkins},
/* eslint-enable quote-props */
});

View File

@@ -19,7 +19,9 @@ import {
import mysterySets from './mystery-sets'; import mysterySets from './mystery-sets';
import gear from './gear'; import gear from './gear';
import { defaultAppearancePreferences } from './appearance';
import appearances from './appearance';
import backgrounds from './appearance/backgrounds.js'
api.mystery = mysterySets; api.mystery = mysterySets;
@@ -3049,290 +3051,9 @@ api.questsByLevel = _.sortBy(api.quests, function(quest) {
return quest.lvl || 0; return quest.lvl || 0;
}); });
api.defaultAppearancePreferences = defaultAppearancePreferences; api.appearances = appearances;
api.backgrounds = { api.backgrounds = backgrounds;
backgrounds062014: {
beach: {
text: t('backgroundBeachText'),
notes: t('backgroundBeachNotes')
},
fairy_ring: {
text: t('backgroundFairyRingText'),
notes: t('backgroundFairyRingNotes')
},
forest: {
text: t('backgroundForestText'),
notes: t('backgroundForestNotes')
}
},
backgrounds072014: {
open_waters: {
text: t('backgroundOpenWatersText'),
notes: t('backgroundOpenWatersNotes')
},
coral_reef: {
text: t('backgroundCoralReefText'),
notes: t('backgroundCoralReefNotes')
},
seafarer_ship: {
text: t('backgroundSeafarerShipText'),
notes: t('backgroundSeafarerShipNotes')
}
},
backgrounds082014: {
volcano: {
text: t('backgroundVolcanoText'),
notes: t('backgroundVolcanoNotes')
},
clouds: {
text: t('backgroundCloudsText'),
notes: t('backgroundCloudsNotes')
},
dusty_canyons: {
text: t('backgroundDustyCanyonsText'),
notes: t('backgroundDustyCanyonsNotes')
}
},
backgrounds092014: {
thunderstorm: {
text: t('backgroundThunderstormText'),
notes: t('backgroundThunderstormNotes')
},
autumn_forest: {
text: t('backgroundAutumnForestText'),
notes: t('backgroundAutumnForestNotes')
},
harvest_fields: {
text: t('backgroundHarvestFieldsText'),
notes: t('backgroundHarvestFieldsNotes')
}
},
backgrounds102014: {
graveyard: {
text: t('backgroundGraveyardText'),
notes: t('backgroundGraveyardNotes')
},
haunted_house: {
text: t('backgroundHauntedHouseText'),
notes: t('backgroundHauntedHouseNotes')
},
pumpkin_patch: {
text: t('backgroundPumpkinPatchText'),
notes: t('backgroundPumpkinPatchNotes')
}
},
backgrounds112014: {
harvest_feast: {
text: t('backgroundHarvestFeastText'),
notes: t('backgroundHarvestFeastNotes')
},
sunset_meadow: {
text: t('backgroundSunsetMeadowText'),
notes: t('backgroundSunsetMeadowNotes')
},
starry_skies: {
text: t('backgroundStarrySkiesText'),
notes: t('backgroundStarrySkiesNotes')
}
},
backgrounds122014: {
iceberg: {
text: t('backgroundIcebergText'),
notes: t('backgroundIcebergNotes')
},
twinkly_lights: {
text: t('backgroundTwinklyLightsText'),
notes: t('backgroundTwinklyLightsNotes')
},
south_pole: {
text: t('backgroundSouthPoleText'),
notes: t('backgroundSouthPoleNotes')
}
},
backgrounds012015: {
ice_cave: {
text: t('backgroundIceCaveText'),
notes: t('backgroundIceCaveNotes')
},
frigid_peak: {
text: t('backgroundFrigidPeakText'),
notes: t('backgroundFrigidPeakNotes')
},
snowy_pines: {
text: t('backgroundSnowyPinesText'),
notes: t('backgroundSnowyPinesNotes')
}
},
backgrounds022015: {
blacksmithy: {
text: t('backgroundBlacksmithyText'),
notes: t('backgroundBlacksmithyNotes')
},
crystal_cave: {
text: t('backgroundCrystalCaveText'),
notes: t('backgroundCrystalCaveNotes')
},
distant_castle: {
text: t('backgroundDistantCastleText'),
notes: t('backgroundDistantCastleNotes')
}
},
backgrounds032015: {
spring_rain: {
text: t('backgroundSpringRainText'),
notes: t('backgroundSpringRainNotes')
},
stained_glass: {
text: t('backgroundStainedGlassText'),
notes: t('backgroundStainedGlassNotes')
},
rolling_hills: {
text: t('backgroundRollingHillsText'),
notes: t('backgroundRollingHillsNotes')
}
},
backgrounds042015: {
cherry_trees: {
text: t('backgroundCherryTreesText'),
notes: t('backgroundCherryTreesNotes')
},
floral_meadow: {
text: t('backgroundFloralMeadowText'),
notes: t('backgroundFloralMeadowNotes')
},
gumdrop_land: {
text: t('backgroundGumdropLandText'),
notes: t('backgroundGumdropLandNotes')
}
},
backgrounds052015: {
marble_temple: {
text: t('backgroundMarbleTempleText'),
notes: t('backgroundMarbleTempleNotes')
},
mountain_lake: {
text: t('backgroundMountainLakeText'),
notes: t('backgroundMountainLakeNotes')
},
pagodas: {
text: t('backgroundPagodasText'),
notes: t('backgroundPagodasNotes')
}
},
backgrounds062015: {
drifting_raft: {
text: t('backgroundDriftingRaftText'),
notes: t('backgroundDriftingRaftNotes')
},
shimmery_bubbles: {
text: t('backgroundShimmeryBubblesText'),
notes: t('backgroundShimmeryBubblesNotes')
},
island_waterfalls: {
text: t('backgroundIslandWaterfallsText'),
notes: t('backgroundIslandWaterfallsNotes')
}
},
backgrounds072015: {
dilatory_ruins: {
text: t('backgroundDilatoryRuinsText'),
notes: t('backgroundDilatoryRuinsNotes')
},
giant_wave: {
text: t('backgroundGiantWaveText'),
notes: t('backgroundGiantWaveNotes')
},
sunken_ship: {
text: t('backgroundSunkenShipText'),
notes: t('backgroundSunkenShipNotes')
}
},
backgrounds082015: {
pyramids: {
text: t('backgroundPyramidsText'),
notes: t('backgroundPyramidsNotes')
},
sunset_savannah: {
text: t('backgroundSunsetSavannahText'),
notes: t('backgroundSunsetSavannahNotes')
},
twinkly_party_lights: {
text: t('backgroundTwinklyPartyLightsText'),
notes: t('backgroundTwinklyPartyLightsNotes')
}
},
backgrounds092015: {
market: {
text: t('backgroundMarketText'),
notes: t('backgroundMarketNotes')
},
stable: {
text: t('backgroundStableText'),
notes: t('backgroundStableNotes')
},
tavern: {
text: t('backgroundTavernText'),
notes: t('backgroundTavernNotes')
}
},
backgrounds102015: {
harvest_moon: {
text: t('backgroundHarvestMoonText'),
notes: t('backgroundHarvestMoonNotes')
},
slimy_swamp: {
text: t('backgroundSlimySwampText'),
notes: t('backgroundSlimySwampNotes')
},
swarming_darkness: {
text: t('backgroundSwarmingDarknessText'),
notes: t('backgroundSwarmingDarknessNotes')
}
},
backgrounds112015: {
floating_islands: {
text: t('backgroundFloatingIslandsText'),
notes: t('backgroundFloatingIslandsNotes')
},
night_dunes: {
text: t('backgroundNightDunesText'),
notes: t('backgroundNightDunesNotes')
},
sunset_oasis: {
text: t('backgroundSunsetOasisText'),
notes: t('backgroundSunsetOasisNotes')
}
},
backgrounds122015: {
alpine_slopes: {
text: t('backgroundAlpineSlopesText'),
notes: t('backgroundAlpineSlopesNotes')
},
snowy_sunrise: {
text: t('backgroundSnowySunriseText'),
notes: t('backgroundSnowySunriseNotes')
},
winter_town: {
text: t('backgroundWinterTownText'),
notes: t('backgroundWinterTownNotes')
}
},
backgrounds012016: {
frozen_lake: {
text: t('backgroundFrozenLakeText'),
notes: t('backgroundFrozenLakeNotes')
},
snowman_army: {
text: t('backgroundSnowmanArmyText'),
notes: t('backgroundSnowmanArmyNotes')
},
winter_night: {
text: t('backgroundWinterNightText'),
notes: t('backgroundWinterNightNotes')
}
},
};
api.subscriptionBlocks = { api.subscriptionBlocks = {
basic_earned: { basic_earned: {

View File

@@ -319,9 +319,9 @@ let requiresPurchase = {
let checkPreferencePurchase = (user, path, item) => { let checkPreferencePurchase = (user, path, item) => {
let itemPath = `${path}.${item}`; let itemPath = `${path}.${item}`;
let isDefaultPreference = _.get(shared.content.defaultAppearancePreferences, itemPath); let appearance = _.get(shared.content.appearances, itemPath)
if (!appearance) return false;
if (isDefaultPreference) return true; if (appearance.price === 0) return true;
return _.get(user.purchased, itemPath); return _.get(user.purchased, itemPath);
}; };