mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
import upperFirst from 'lodash/upperFirst';
|
|
import {
|
|
getCurrentGalaKey,
|
|
} from '../content/constants';
|
|
import {
|
|
armor,
|
|
} from '../content/gear/sets/special';
|
|
|
|
function safeGetSet (currentEvent, year, className) {
|
|
const set = armor[`${currentEvent}${year}${className}`];
|
|
if (set) {
|
|
return set.set;
|
|
}
|
|
let checkedYear = year - 1;
|
|
while (checkedYear >= 2014) {
|
|
const oldSet = armor[`${currentEvent}${checkedYear}${className}`];
|
|
if (oldSet) {
|
|
return oldSet.set;
|
|
}
|
|
checkedYear -= 1;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function getCurrentSeasonalSets (currentEvent) {
|
|
const year = new Date().getFullYear();
|
|
return {
|
|
rogue: safeGetSet(currentEvent, year, 'Rogue'),
|
|
warrior: safeGetSet(currentEvent, year, 'Warrior'),
|
|
wizard: safeGetSet(currentEvent, year, 'Mage'),
|
|
healer: safeGetSet(currentEvent, year, 'Healer'),
|
|
};
|
|
}
|
|
|
|
export default () => {
|
|
const currentEvent = getCurrentGalaKey();
|
|
const pinnedSets = getCurrentSeasonalSets(currentEvent);
|
|
return {
|
|
currentSeason: currentEvent ? upperFirst(currentEvent) : 'Closed',
|
|
pinnedSets,
|
|
featuredSet: user => {
|
|
if (user.stats.class) {
|
|
return pinnedSets[user.stats.class];
|
|
}
|
|
return null;
|
|
},
|
|
};
|
|
};
|