Merge remote-tracking branch 'origin/develop' into negue/ui/setting
# Conflicts: # package-lock.json # website/client/src/components/settings/site.vue # website/client/src/components/tasks/column.vue # website/server/models/user/schema.js
This commit is contained in:
@@ -178,6 +178,11 @@ const animalSetAchievs = {
|
||||
titleKey: 'achievementBirdsOfAFeather',
|
||||
textKey: 'achievementBirdsOfAFeatherText',
|
||||
},
|
||||
dinosaurDynasty: {
|
||||
icon: 'achievement-dinosaurDynasty',
|
||||
titleKey: 'achievementDinosaurDynasty',
|
||||
textKey: 'achievementDinosaurDynastyText',
|
||||
},
|
||||
domesticated: {
|
||||
icon: 'achievement-domesticated',
|
||||
titleKey: 'achievementDomesticated',
|
||||
|
||||
@@ -178,9 +178,9 @@ const bundles = {
|
||||
'penguin',
|
||||
'rooster',
|
||||
],
|
||||
event: EVENTS.bundle202109,
|
||||
event: EVENTS.bundle202305,
|
||||
canBuy () {
|
||||
return moment().isBefore(EVENTS.bundle202109.end);
|
||||
return moment().isBefore(EVENTS.bundle202305.end);
|
||||
},
|
||||
type: 'quests',
|
||||
value: 7,
|
||||
|
||||
@@ -26,6 +26,23 @@ const ANIMAL_SET_ACHIEVEMENTS = {
|
||||
achievementKey: 'birdsOfAFeather',
|
||||
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
|
||||
},
|
||||
dinosaurDynasty: {
|
||||
type: 'pet',
|
||||
species: [
|
||||
'Falcon',
|
||||
'Owl',
|
||||
'Parrot',
|
||||
'Peacock',
|
||||
'Penguin',
|
||||
'Rooster',
|
||||
'Pterodactyl',
|
||||
'TRex',
|
||||
'Triceratops',
|
||||
'Velociraptor',
|
||||
],
|
||||
achievementKey: 'dinosaurDynasty',
|
||||
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
|
||||
},
|
||||
domesticated: {
|
||||
type: 'pet',
|
||||
species: [
|
||||
|
||||
@@ -10,11 +10,19 @@ const gemsPromo = {
|
||||
|
||||
export const EVENTS = {
|
||||
noEvent: {
|
||||
start: '2023-05-01T23:59-04:00',
|
||||
start: '2023-05-31T23:59-04:00',
|
||||
end: '2023-06-22T08:00-04:00',
|
||||
season: 'normal',
|
||||
npcImageSuffix: '',
|
||||
},
|
||||
bundle202305: {
|
||||
start:'2023-05-23T08:00-04:00',
|
||||
end:'2023-05-31T23:59-04:00',
|
||||
},
|
||||
potions202305: {
|
||||
start:'2023-05-16T08:00-04:00',
|
||||
end:'2023-05-31T23:59-04:00',
|
||||
},
|
||||
aprilFools2023: {
|
||||
start: '2023-04-01T08:00-04:00',
|
||||
end: '2023-04-02T08:00-04:00',
|
||||
|
||||
@@ -88,26 +88,26 @@ const premium = {
|
||||
value: 2,
|
||||
text: t('hatchingPotionFairy'),
|
||||
limited: true,
|
||||
event: EVENTS.potions202105,
|
||||
event: EVENTS.potions202305,
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndMay'),
|
||||
previousDate: t('mayYYYY', { year: 2020 }),
|
||||
previousDate: t('mayYYYY', { year: 2021 }),
|
||||
}),
|
||||
canBuy () {
|
||||
return moment().isBefore(EVENTS.potions202105.end);
|
||||
return moment().isBefore(EVENTS.potions202305.end);
|
||||
},
|
||||
},
|
||||
Floral: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionFloral'),
|
||||
limited: true,
|
||||
event: EVENTS.potions202205,
|
||||
event: EVENTS.potions202305,
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndMay'),
|
||||
previousDate: t('mayYYYY', { year: 2021 }),
|
||||
previousDate: t('mayYYYY', { year: 2022 }),
|
||||
}),
|
||||
canBuy () {
|
||||
return moment().isBefore(EVENTS.potions202205.end);
|
||||
return moment().isBefore(EVENTS.potions202305.end);
|
||||
},
|
||||
},
|
||||
Aquatic: {
|
||||
|
||||
@@ -5,7 +5,7 @@ import { EVENTS } from './constants';
|
||||
// path: 'premiumHatchingPotions.Rainbow',
|
||||
const featuredItems = {
|
||||
market () {
|
||||
if (moment().isBetween(EVENTS.spring2023.start, EVENTS.spring2023.end)) {
|
||||
if (moment().isBetween(EVENTS.potions202305.start, EVENTS.potions202305.end)) {
|
||||
return [
|
||||
{
|
||||
type: 'armoire',
|
||||
@@ -13,15 +13,15 @@ const featuredItems = {
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.PolkaDot',
|
||||
path: 'premiumHatchingPotions.Fairy',
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.BirchBark',
|
||||
path: 'premiumHatchingPotions.Floral',
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Rainbow',
|
||||
type: 'hatchingPotions',
|
||||
path: 'hatchingPotions.Golden',
|
||||
},
|
||||
];
|
||||
}
|
||||
@@ -45,19 +45,19 @@ const featuredItems = {
|
||||
];
|
||||
},
|
||||
quests () { // start date is 3/28
|
||||
if (moment().isBetween(EVENTS.bundle202303.start, EVENTS.bundle202303.end)) {
|
||||
if (moment().isBetween(EVENTS.bundle202305.start, EVENTS.bundle202305.end)) {
|
||||
return [
|
||||
{
|
||||
type: 'bundles',
|
||||
path: 'bundles.jungleBuddies',
|
||||
path: 'bundles.birdBuddies',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.kraken',
|
||||
path: 'quests.harpy',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.nudibranch',
|
||||
path: 'quests.owl',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
@@ -77,13 +77,11 @@ spells.wizard = {
|
||||
lvl: 12,
|
||||
target: 'party',
|
||||
notes: t('spellWizardMPHealNotes'),
|
||||
cast (user, target) {
|
||||
each(target, member => {
|
||||
const bonus = statsComputed(user).int;
|
||||
if (user._id !== member._id && member.stats.class !== 'wizard') {
|
||||
member.stats.mp += Math.ceil(diminishingReturns(bonus, 25, 125));
|
||||
}
|
||||
});
|
||||
bulk: true,
|
||||
cast (user, data) {
|
||||
const bonus = statsComputed(user).int;
|
||||
data.query['stats.class'] = { $ne: 'wizard' };
|
||||
data.update = { $inc: { 'stats.mp': Math.ceil(diminishingReturns(bonus, 25, 125)) } };
|
||||
},
|
||||
},
|
||||
earth: { // Earthquake
|
||||
@@ -92,12 +90,10 @@ spells.wizard = {
|
||||
lvl: 13,
|
||||
target: 'party',
|
||||
notes: t('spellWizardEarthNotes'),
|
||||
cast (user, target) {
|
||||
each(target, member => {
|
||||
const bonus = statsComputed(user).int - user.stats.buffs.int;
|
||||
if (!member.stats.buffs.int) member.stats.buffs.int = 0;
|
||||
member.stats.buffs.int += Math.ceil(diminishingReturns(bonus, 30, 200));
|
||||
});
|
||||
bulk: true,
|
||||
cast (user, data) {
|
||||
const bonus = statsComputed(user).int - user.stats.buffs.int;
|
||||
data.update = { $inc: { 'stats.buffs.int': Math.ceil(diminishingReturns(bonus, 30, 200)) } };
|
||||
},
|
||||
},
|
||||
frost: { // Chilling Frost
|
||||
@@ -147,12 +143,10 @@ spells.warrior = {
|
||||
lvl: 13,
|
||||
target: 'party',
|
||||
notes: t('spellWarriorValorousPresenceNotes'),
|
||||
cast (user, target) {
|
||||
each(target, member => {
|
||||
const bonus = statsComputed(user).str - user.stats.buffs.str;
|
||||
if (!member.stats.buffs.str) member.stats.buffs.str = 0;
|
||||
member.stats.buffs.str += Math.ceil(diminishingReturns(bonus, 20, 200));
|
||||
});
|
||||
bulk: true,
|
||||
cast (user, data) {
|
||||
const bonus = statsComputed(user).str - user.stats.buffs.str;
|
||||
data.update = { $inc: { 'stats.buffs.str': Math.ceil(diminishingReturns(bonus, 20, 200)) } };
|
||||
},
|
||||
},
|
||||
intimidate: { // Intimidating Gaze
|
||||
@@ -161,12 +155,10 @@ spells.warrior = {
|
||||
lvl: 14,
|
||||
target: 'party',
|
||||
notes: t('spellWarriorIntimidateNotes'),
|
||||
cast (user, target) {
|
||||
each(target, member => {
|
||||
const bonus = statsComputed(user).con - user.stats.buffs.con;
|
||||
if (!member.stats.buffs.con) member.stats.buffs.con = 0;
|
||||
member.stats.buffs.con += Math.ceil(diminishingReturns(bonus, 24, 200));
|
||||
});
|
||||
bulk: true,
|
||||
cast (user, data) {
|
||||
const bonus = statsComputed(user).con - user.stats.buffs.con;
|
||||
data.update = { $inc: { 'stats.buffs.con': Math.ceil(diminishingReturns(bonus, 24, 200)) } };
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -203,12 +195,10 @@ spells.rogue = {
|
||||
lvl: 13,
|
||||
target: 'party',
|
||||
notes: t('spellRogueToolsOfTradeNotes'),
|
||||
cast (user, target) {
|
||||
each(target, member => {
|
||||
const bonus = statsComputed(user).per - user.stats.buffs.per;
|
||||
if (!member.stats.buffs.per) member.stats.buffs.per = 0;
|
||||
member.stats.buffs.per += Math.ceil(diminishingReturns(bonus, 100, 50));
|
||||
});
|
||||
bulk: true,
|
||||
cast (user, data) {
|
||||
const bonus = statsComputed(user).per - user.stats.buffs.per;
|
||||
data.update = { $inc: { 'stats.buffs.per': Math.ceil(diminishingReturns(bonus, 100, 50)) } };
|
||||
},
|
||||
},
|
||||
stealth: { // Stealth
|
||||
@@ -257,12 +247,10 @@ spells.healer = {
|
||||
lvl: 13,
|
||||
target: 'party',
|
||||
notes: t('spellHealerProtectAuraNotes'),
|
||||
cast (user, target) {
|
||||
each(target, member => {
|
||||
const bonus = statsComputed(user).con - user.stats.buffs.con;
|
||||
if (!member.stats.buffs.con) member.stats.buffs.con = 0;
|
||||
member.stats.buffs.con += Math.ceil(diminishingReturns(bonus, 200, 200));
|
||||
});
|
||||
bulk: true,
|
||||
cast (user, data) {
|
||||
const bonus = statsComputed(user).con - user.stats.buffs.con;
|
||||
data.update = { $inc: { 'stats.buffs.con': Math.ceil(diminishingReturns(bonus, 200, 200)) } };
|
||||
},
|
||||
},
|
||||
healAll: { // Blessing
|
||||
|
||||
Reference in New Issue
Block a user