feat(event): April Fool pronk
@@ -10,6 +10,12 @@
|
|||||||
height: 219px;
|
height: 219px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.Pet-HatchingPotion-Veggie {
|
||||||
|
background: url("~assets/images/Pet-HatchingPotion-Veggie.gif") no-repeat;
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
|
|
||||||
.Gems {
|
.Gems {
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
margin-right:5px;
|
margin-right:5px;
|
||||||
|
|||||||
BIN
website/client/assets/images/Pet-HatchingPotion-Veggie.gif
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 11 KiB |
BIN
website/client/assets/images/npc/aprilfools/npc_aprilFool.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
website/client/assets/images/npc/aprilfools/npc_bailey.png
Normal file
|
After Width: | Height: | Size: 915 B |
BIN
website/client/assets/images/npc/aprilfools/npc_justin.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
website/client/assets/images/npc/aprilfools/npc_matt.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
BIN
website/client/assets/images/npc/aprilfools/quest_shop_npc.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
BIN
website/client/assets/images/npc/aprilfools/tavern_npc.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
@@ -5,15 +5,14 @@
|
|||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|
||||||
&:not([class*="FlyingPig"]) {
|
|
||||||
top: -28px !important;
|
top: -28px !important;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
.Pet[class*="FlyingPig"] {
|
.Pet[class*="FlyingPig"] {
|
||||||
top: 7px !important;
|
top: 7px !important;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
.Pet.Pet-Dragon-Hydra {
|
.Pet.Pet-Dragon-Hydra {
|
||||||
top: -16px !important;
|
top: -16px !important;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
// this variables are used to determine which shop npc/backgrounds should be loaded
|
// this variables are used to determine which shop npc/backgrounds should be loaded
|
||||||
// possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday, valentines, spring, summer
|
// possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday, valentines, spring, aprilfools, summer
|
||||||
// more to be added on future seasons
|
// more to be added on future seasons
|
||||||
|
|
||||||
$npc_market_flavor: 'spring';
|
$npc_market_flavor: 'aprilfools';
|
||||||
$npc_quests_flavor: 'spring';
|
$npc_quests_flavor: 'aprilfools';
|
||||||
$npc_seasonal_flavor: 'spring';
|
$npc_seasonal_flavor: 'aprilfools';
|
||||||
$npc_timetravelers_flavor: 'spring';
|
$npc_timetravelers_flavor: 'aprilfools';
|
||||||
$npc_tavern_flavor: 'spring';
|
$npc_tavern_flavor: 'aprilfools';
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
// Mount Head
|
// Mount Head
|
||||||
span(v-if="member.items.currentMount", :class="'Mount_Head_' + member.items.currentMount")
|
span(v-if="member.items.currentMount", :class="'Mount_Head_' + member.items.currentMount")
|
||||||
// Pet
|
// Pet
|
||||||
span.current-pet(v-if="member.items.currentPet", :class="'Pet-' + member.items.currentPet")
|
span.current-pet(:class="foolPet(member.items.currentPet)")
|
||||||
class-badge.under-avatar(v-if="hasClass && !hideClassBadge", :member-class="member.stats.class")
|
class-badge.under-avatar(v-if="hasClass && !hideClassBadge", :member-class="member.stats.class")
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -75,6 +75,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapState } from 'client/libs/store';
|
import { mapState } from 'client/libs/store';
|
||||||
|
import includes from 'lodash/includes';
|
||||||
|
|
||||||
import ClassBadge from 'client/components/members/classBadge';
|
import ClassBadge from 'client/components/members/classBadge';
|
||||||
|
|
||||||
@@ -223,6 +224,53 @@ export default {
|
|||||||
|
|
||||||
return !buffs.snowball && !buffs.spookySparkles && !buffs.shinySeed && !buffs.seafoam;
|
return !buffs.snowball && !buffs.spookySparkles && !buffs.shinySeed && !buffs.seafoam;
|
||||||
},
|
},
|
||||||
|
foolPet (pet) {
|
||||||
|
const SPECIAL_PETS = [
|
||||||
|
'Wolf-Veteran',
|
||||||
|
'Wolf-Cerberus',
|
||||||
|
'Dragon-Hydra',
|
||||||
|
'Turkey-Base',
|
||||||
|
'BearCub-Polar',
|
||||||
|
'MantisShrimp-Base',
|
||||||
|
'JackOLantern-Base',
|
||||||
|
'Mammoth-Base',
|
||||||
|
'Tiger-Veteran',
|
||||||
|
'Phoenix-Base',
|
||||||
|
'Turkey-Gilded',
|
||||||
|
'MagicalBee-Base',
|
||||||
|
'Lion-Veteran',
|
||||||
|
'Gryphon-RoyalPurple',
|
||||||
|
'JackOLantern-Ghost',
|
||||||
|
'Jackalope-RoyalPurple',
|
||||||
|
'Orca-Base',
|
||||||
|
'Bear-Veteran',
|
||||||
|
'Hippogriff-Hopeful',
|
||||||
|
'Fox-Veteran',
|
||||||
|
'JackOLantern-Glow',
|
||||||
|
];
|
||||||
|
const BASE_PETS = [
|
||||||
|
'Wolf',
|
||||||
|
'TigerCub',
|
||||||
|
'PandaCub',
|
||||||
|
'LionCub',
|
||||||
|
'Fox',
|
||||||
|
'FlyingPig',
|
||||||
|
'BearCub',
|
||||||
|
'Dragon',
|
||||||
|
'Cactus',
|
||||||
|
];
|
||||||
|
if (!pet) return 'Pet-FlyingPig-Veggie';
|
||||||
|
if (SPECIAL_PETS.indexOf(pet) !== -1) {
|
||||||
|
return 'Pet-PandaCub-Veggie';
|
||||||
|
} else {
|
||||||
|
const species = pet.slice(0, pet.indexOf('-'));
|
||||||
|
if (includes(BASE_PETS, species)) {
|
||||||
|
return `Pet-${species}-Veggie`;
|
||||||
|
} else {
|
||||||
|
return 'Pet-Fox-Veggie';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -113,7 +113,10 @@
|
|||||||
},
|
},
|
||||||
getPetItemClass () {
|
getPetItemClass () {
|
||||||
if (this.isOwned() || this.mountOwned() && this.isHatchable()) {
|
if (this.isOwned() || this.mountOwned() && this.isHatchable()) {
|
||||||
return `Pet Pet-${this.item.key} ${this.item.eggKey}`;
|
if (this.isSpecial()) {
|
||||||
|
return 'Pet Pet-PandaCub-Veggie';
|
||||||
|
}
|
||||||
|
return `${this.item.class} ${this.item.eggKey}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.isOwned() && this.isSpecial()) {
|
if (!this.isOwned() && this.isSpecial()) {
|
||||||
@@ -125,7 +128,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.mountOwned()) {
|
if (this.mountOwned()) {
|
||||||
return `GreyedOut Pet Pet-${this.item.key} ${this.item.eggKey}`;
|
return `GreyedOut ${this.item.class} ${this.item.eggKey}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Can't hatch
|
// Can't hatch
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
import content from 'common/script/content';
|
import content from 'common/script/content';
|
||||||
|
|
||||||
const specialPets = Object.keys(content.specialPets);
|
const specialPets = Object.keys(content.specialPets);
|
||||||
|
const premiumPets = Object.keys(content.premiumPets);
|
||||||
|
const questPets = Object.keys(content.questPets);
|
||||||
|
const dropPets = Object.keys(content.pets);
|
||||||
|
|
||||||
function getText (textOrFunction) {
|
function getText (textOrFunction) {
|
||||||
if (textOrFunction instanceof Function) {
|
if (textOrFunction instanceof Function) {
|
||||||
@@ -33,10 +36,18 @@ export function isSpecial (animal) {
|
|||||||
|
|
||||||
export function createAnimal (egg, potion, type, _content, userItems) {
|
export function createAnimal (egg, potion, type, _content, userItems) {
|
||||||
let animalKey = `${egg.key}-${potion.key}`;
|
let animalKey = `${egg.key}-${potion.key}`;
|
||||||
|
let fooledKey = '';
|
||||||
|
if (questPets.includes(animalKey)) {
|
||||||
|
fooledKey = 'Fox-Veggie';
|
||||||
|
} else if (dropPets.includes(animalKey) || premiumPets.includes(animalKey)) {
|
||||||
|
fooledKey = `${egg.key}-Veggie`;
|
||||||
|
} else {
|
||||||
|
fooledKey = animalKey;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
key: animalKey,
|
key: animalKey,
|
||||||
class: type === 'pet' ? `Pet Pet-${animalKey}` : `Mount_Icon_${animalKey}`,
|
class: type === 'pet' ? `Pet Pet-${fooledKey}` : `Mount_Icon_${animalKey}`,
|
||||||
eggKey: egg.key,
|
eggKey: egg.key,
|
||||||
eggName: getText(egg.text),
|
eggName: getText(egg.text),
|
||||||
potionKey: potion.key,
|
potionKey: potion.key,
|
||||||
@@ -59,4 +70,3 @@ export function createAnimal (egg, potion, type, _content, userItems) {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -170,6 +170,14 @@ let premium = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const wacky = {
|
||||||
|
Veggie: {
|
||||||
|
text: t('hatchingPotionVeggie'),
|
||||||
|
limited: true,
|
||||||
|
_season: 'March',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
each(drops, (pot, key) => {
|
each(drops, (pot, key) => {
|
||||||
defaults(pot, {
|
defaults(pot, {
|
||||||
key,
|
key,
|
||||||
@@ -203,10 +211,29 @@ each(premium, (pot, key) => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
each(wacky, (pot, key) => {
|
||||||
|
defaults(pot, {
|
||||||
|
key,
|
||||||
|
value: 2,
|
||||||
|
notes: t('hatchingPotionNotes', {
|
||||||
|
potText: pot.text,
|
||||||
|
}),
|
||||||
|
_addlNotes: t('eventAvailability', {
|
||||||
|
date: t(`dateEnd${pot._season}`),
|
||||||
|
}),
|
||||||
|
premium: false,
|
||||||
|
limited: true,
|
||||||
|
canBuy () {
|
||||||
|
return pot._season === CURRENT_SEASON;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
let all = assign({}, drops, premium);
|
let all = assign({}, drops, premium);
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
drops,
|
drops,
|
||||||
premium,
|
premium,
|
||||||
|
wacky,
|
||||||
all,
|
all,
|
||||||
};
|
};
|
||||||
|
|||||||
BIN
website/raw_sprites/spritesmith/npcs/npc_aprilFool.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 915 B |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Fox-Veggie.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Wolf-Veggie.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
website/raw_sprites/spritesmith_large/promo_april_fools_2019.png
Normal file
|
After Width: | Height: | Size: 14 KiB |