feat(event): Habit Birthday 2016

Also adds AWS Elastic Beanstalk local config file to .gitignore.
This commit is contained in:
Sabe Jones
2016-01-28 17:16:01 -05:00
parent d7782584db
commit 91c6ce27c5
32 changed files with 1740 additions and 1520 deletions

1
.gitignore vendored
View File

@@ -28,5 +28,6 @@ coverage
coverage.html coverage.html
common/dist/scripts/* common/dist/scripts/*
common/dist/sprites/habitrpg-shared.css common/dist/sprites/habitrpg-shared.css
.elasticbeanstalk/config.yml
test/spec/mocks/translations.js test/spec/mocks/translations.js

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 KiB

After

Width:  |  Height:  |  Size: 274 KiB

View File

@@ -24,13 +24,13 @@
} }
.hair_base_9_red { .hair_base_9_red {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1352px -546px; background-position: -1352px -364px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.customize-option.hair_base_9_red { .customize-option.hair_base_9_red {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1377px -561px; background-position: -1377px -379px;
width: 60px; width: 60px;
height: 60px; height: 60px;
} }
@@ -2286,7 +2286,7 @@
} }
.head_armoire_lunarCrown { .head_armoire_lunarCrown {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1352px -364px; background-position: -348px -182px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
@@ -2298,7 +2298,7 @@
} }
.head_armoire_plagueDoctorHat { .head_armoire_plagueDoctorHat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -348px -182px; background-position: -1352px -546px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
@@ -2370,265 +2370,265 @@
} }
.shop_armor_armoire_crystalCrescentRobes { .shop_armor_armoire_crystalCrescentRobes {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1435px -1547px; background-position: -132px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_armoire_dragonTamerArmor { .shop_armor_armoire_dragonTamerArmor {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1394px -1547px; background-position: -91px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_armoire_gladiatorArmor { .shop_armor_armoire_gladiatorArmor {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1353px -1547px; background-position: -1649px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_armoire_goldenToga { .shop_armor_armoire_goldenToga {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1312px -1547px; background-position: -1608px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_armoire_hornedIronArmor { .shop_armor_armoire_hornedIronArmor {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1271px -1547px; background-position: -1567px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_armoire_lunarArmor { .shop_armor_armoire_lunarArmor {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1230px -1547px; background-position: -1526px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_armoire_plagueDoctorOvercoat { .shop_armor_armoire_plagueDoctorOvercoat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1189px -1547px; background-position: -1485px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_armoire_rancherRobes { .shop_armor_armoire_rancherRobes {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1148px -1547px; background-position: -1444px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_armoire_royalRobes { .shop_armor_armoire_royalRobes {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1107px -1547px; background-position: -1403px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_armoire_shepherdRobes { .shop_armor_armoire_shepherdRobes {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1066px -1547px; background-position: -1362px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_eyewear_armoire_plagueDoctorMask { .shop_eyewear_armoire_plagueDoctorMask {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1025px -1547px; background-position: -1321px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_blackCat { .shop_head_armoire_blackCat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -984px -1547px; background-position: -1280px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_blueFloppyHat { .shop_head_armoire_blueFloppyHat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -943px -1547px; background-position: -1239px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_blueHairbow { .shop_head_armoire_blueHairbow {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -902px -1547px; background-position: -1198px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_crystalCrescentHat { .shop_head_armoire_crystalCrescentHat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -861px -1547px; background-position: -1157px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_dragonTamerHelm { .shop_head_armoire_dragonTamerHelm {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -820px -1547px; background-position: -1116px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_gladiatorHelm { .shop_head_armoire_gladiatorHelm {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -779px -1547px; background-position: -1075px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_goldenLaurels { .shop_head_armoire_goldenLaurels {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -738px -1547px; background-position: -1034px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_hornedIronHelm { .shop_head_armoire_hornedIronHelm {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -697px -1547px; background-position: -993px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_lunarCrown { .shop_head_armoire_lunarCrown {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -656px -1547px; background-position: -952px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_orangeCat { .shop_head_armoire_orangeCat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1625px -1456px; background-position: -911px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_plagueDoctorHat { .shop_head_armoire_plagueDoctorHat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -574px -1547px; background-position: -870px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_rancherHat { .shop_head_armoire_rancherHat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -533px -1547px; background-position: -829px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_redFloppyHat { .shop_head_armoire_redFloppyHat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -492px -1547px; background-position: -788px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_redHairbow { .shop_head_armoire_redHairbow {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -369px -1547px; background-position: -306px -182px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_royalCrown { .shop_head_armoire_royalCrown {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -328px -1547px; background-position: -583px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_shepherdHeaddress { .shop_head_armoire_shepherdHeaddress {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -287px -1547px; background-position: -542px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_violetFloppyHat { .shop_head_armoire_violetFloppyHat {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -246px -1547px; background-position: -501px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_armoire_yellowHairbow { .shop_head_armoire_yellowHairbow {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -205px -1547px; background-position: -460px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_armoire_dragonTamerShield { .shop_shield_armoire_dragonTamerShield {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -164px -1547px; background-position: -419px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_armoire_gladiatorShield { .shop_shield_armoire_gladiatorShield {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -123px -1547px; background-position: -378px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_armoire_midnightShield { .shop_shield_armoire_midnightShield {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -82px -1547px; background-position: -337px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_armoire_royalCane { .shop_shield_armoire_royalCane {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -41px -1547px; background-position: -296px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_basicCrossbow { .shop_weapon_armoire_basicCrossbow {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: 0px -1547px; background-position: -255px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_batWand { .shop_weapon_armoire_batWand {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1547px -1497px; background-position: -214px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_blueLongbow { .shop_weapon_armoire_blueLongbow {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1547px -1456px; background-position: -173px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_crystalCrescentStaff { .shop_weapon_armoire_crystalCrescentStaff {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1456px -1406px; background-position: -132px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_glowingSpear { .shop_weapon_armoire_glowingSpear {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1456px -1365px; background-position: -91px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_goldWingStaff { .shop_weapon_armoire_goldWingStaff {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1365px -1315px; background-position: -1547px -1497px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_ironCrook { .shop_weapon_armoire_ironCrook {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1365px -1274px; background-position: -1547px -1456px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_lunarSceptre { .shop_weapon_armoire_lunarSceptre {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1274px -1224px; background-position: -1456px -1406px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_mythmakerSword { .shop_weapon_armoire_mythmakerSword {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1274px -1183px; background-position: -1456px -1365px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_rancherLasso { .shop_weapon_armoire_rancherLasso {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1183px -1133px; background-position: -1365px -1315px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_weapon_armoire_shepherdsCrook { .shop_weapon_armoire_shepherdsCrook {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1183px -1092px; background-position: -1365px -1274px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
@@ -2892,311 +2892,329 @@
} }
.shop_armor_healer_1 { .shop_armor_healer_1 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1092px -1042px; background-position: -1274px -1224px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_healer_2 { .shop_armor_healer_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1092px -1001px; background-position: -1274px -1183px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_healer_3 { .shop_armor_healer_3 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1001px -951px; background-position: -1183px -1133px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_healer_4 { .shop_armor_healer_4 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1001px -910px; background-position: -1183px -1092px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_healer_5 { .shop_armor_healer_5 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1666px -1456px; background-position: -1092px -1042px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_rogue_1 { .shop_armor_rogue_1 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -615px -1547px; background-position: -1092px -1001px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_rogue_2 { .shop_armor_rogue_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1625px -1497px; background-position: -306px -223px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_rogue_3 { .shop_armor_rogue_3 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1666px -1497px; background-position: -747px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_rogue_4 { .shop_armor_rogue_4 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -306px -182px; background-position: -364px -273px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_rogue_5 { .shop_armor_rogue_5 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -306px -223px; background-position: -364px -314px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_0 { .shop_armor_special_0 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -364px -273px; background-position: -455px -364px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_1 { .shop_armor_special_1 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -364px -314px; background-position: -455px -405px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_2 { .shop_armor_special_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -455px -364px; background-position: -546px -455px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_finnedOceanicArmor { .shop_armor_special_finnedOceanicArmor {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -455px -405px; background-position: -546px -496px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_warrior_1 { .shop_armor_warrior_1 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -546px -455px; background-position: -637px -546px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_warrior_2 { .shop_armor_warrior_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -546px -496px; background-position: -637px -587px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_warrior_3 { .shop_armor_warrior_3 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -637px -546px; background-position: -728px -637px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_warrior_4 { .shop_armor_warrior_4 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -637px -587px; background-position: -728px -678px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_warrior_5 { .shop_armor_warrior_5 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -728px -637px; background-position: -819px -728px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_wizard_1 { .shop_armor_wizard_1 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -728px -678px; background-position: -819px -769px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_wizard_2 { .shop_armor_wizard_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -819px -728px; background-position: -910px -819px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_wizard_3 { .shop_armor_wizard_3 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -819px -769px; background-position: -910px -860px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_wizard_4 { .shop_armor_wizard_4 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -910px -819px; background-position: -1001px -910px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_wizard_5 { .shop_armor_wizard_5 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -910px -860px; background-position: -1001px -951px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.slim_armor_healer_1 { .slim_armor_healer_1 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1625px -1365px; background-position: 0px -1547px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_healer_2 { .slim_armor_healer_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1625px -1274px; background-position: -1625px -1456px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_healer_3 { .slim_armor_healer_3 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1625px -1183px; background-position: -1625px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_healer_4 { .slim_armor_healer_4 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1625px -1092px; background-position: -1625px -1274px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_healer_5 { .slim_armor_healer_5 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1534px -91px; background-position: -1625px -1183px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_rogue_1 { .slim_armor_rogue_1 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1534px 0px; background-position: -1625px -1092px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_rogue_2 { .slim_armor_rogue_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1365px -1365px; background-position: -1534px -91px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_rogue_3 { .slim_armor_rogue_3 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1274px -1365px; background-position: -1534px 0px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_rogue_4 { .slim_armor_rogue_4 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1183px -1365px; background-position: -1365px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_rogue_5 { .slim_armor_rogue_5 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1092px -1365px; background-position: -1274px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_special_2 { .slim_armor_special_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1001px -1365px; background-position: -1183px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_special_finnedOceanicArmor { .slim_armor_special_finnedOceanicArmor {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -910px -1365px; background-position: -1092px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_warrior_1 { .slim_armor_warrior_1 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -819px -1365px; background-position: -1001px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_warrior_2 { .slim_armor_warrior_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -728px -1365px; background-position: -910px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_warrior_3 { .slim_armor_warrior_3 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -637px -1365px; background-position: -819px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_warrior_4 { .slim_armor_warrior_4 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -546px -1365px; background-position: -728px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_warrior_5 { .slim_armor_warrior_5 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -455px -1365px; background-position: -637px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_wizard_1 { .slim_armor_wizard_1 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -364px -1365px; background-position: -546px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_wizard_2 { .slim_armor_wizard_2 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -273px -1365px; background-position: -455px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_wizard_3 { .slim_armor_wizard_3 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -182px -1365px; background-position: -364px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_wizard_4 { .slim_armor_wizard_4 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -91px -1365px; background-position: -273px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_wizard_5 { .slim_armor_wizard_5 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: 0px -1365px; background-position: -182px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.broad_armor_special_birthday { .broad_armor_special_birthday {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1443px -1274px; background-position: -91px -1365px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.broad_armor_special_birthday2015 { .broad_armor_special_birthday2015 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1443px -1183px; background-position: 0px -1365px;
width: 90px;
height: 90px;
}
.broad_armor_special_birthday2016 {
background-image: url(spritesmith-main-3.png);
background-position: -1443px -1274px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.shop_armor_special_birthday { .shop_armor_special_birthday {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -410px -1547px; background-position: -624px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_birthday2015 { .shop_armor_special_birthday2015 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -451px -1547px; background-position: -665px -1547px;
width: 40px;
height: 40px;
}
.shop_armor_special_birthday2016 {
background-image: url(spritesmith-main-3.png);
background-position: -706px -1547px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.slim_armor_special_birthday { .slim_armor_special_birthday {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1443px -1092px; background-position: -1443px -1183px;
width: 90px; width: 90px;
height: 90px; height: 90px;
} }
.slim_armor_special_birthday2015 { .slim_armor_special_birthday2015 {
background-image: url(spritesmith-main-3.png);
background-position: -1443px -1092px;
width: 90px;
height: 90px;
}
.slim_armor_special_birthday2016 {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1443px -1001px; background-position: -1443px -1001px;
width: 90px; width: 90px;
@@ -3336,175 +3354,133 @@
} }
.shop_armor_special_fall2015Healer { .shop_armor_special_fall2015Healer {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1476px -1547px; background-position: -173px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_fall2015Mage { .shop_armor_special_fall2015Mage {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1517px -1547px; background-position: -214px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_fall2015Rogue { .shop_armor_special_fall2015Rogue {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1558px -1547px; background-position: -255px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_fall2015Warrior { .shop_armor_special_fall2015Warrior {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1599px -1547px; background-position: -296px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_fallHealer { .shop_armor_special_fallHealer {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -1640px -1547px; background-position: -337px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_fallMage { .shop_armor_special_fallMage {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: 0px -1588px; background-position: -378px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_fallRogue { .shop_armor_special_fallRogue {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -41px -1588px; background-position: -419px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_armor_special_fallWarrior { .shop_armor_special_fallWarrior {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -82px -1588px; background-position: -460px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_special_fall2015Healer { .shop_head_special_fall2015Healer {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -123px -1588px; background-position: -501px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_special_fall2015Mage { .shop_head_special_fall2015Mage {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -164px -1588px; background-position: -542px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_special_fall2015Rogue { .shop_head_special_fall2015Rogue {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -205px -1588px; background-position: -583px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_special_fall2015Warrior { .shop_head_special_fall2015Warrior {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -246px -1588px; background-position: -624px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_special_fallHealer { .shop_head_special_fallHealer {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -287px -1588px; background-position: -665px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_special_fallMage { .shop_head_special_fallMage {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -328px -1588px; background-position: -706px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_special_fallRogue { .shop_head_special_fallRogue {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -369px -1588px; background-position: -747px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_head_special_fallWarrior { .shop_head_special_fallWarrior {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -410px -1588px; background-position: -788px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_special_fall2015Healer { .shop_shield_special_fall2015Healer {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -451px -1588px; background-position: -829px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_special_fall2015Rogue { .shop_shield_special_fall2015Rogue {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -492px -1588px; background-position: -870px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_special_fall2015Warrior { .shop_shield_special_fall2015Warrior {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -533px -1588px; background-position: -911px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_special_fallHealer { .shop_shield_special_fallHealer {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -574px -1588px; background-position: -952px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_special_fallRogue { .shop_shield_special_fallRogue {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -615px -1588px; background-position: -993px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.shop_shield_special_fallWarrior { .shop_shield_special_fallWarrior {
background-image: url(spritesmith-main-3.png); background-image: url(spritesmith-main-3.png);
background-position: -656px -1588px; background-position: -1034px -1588px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fall2015Healer {
background-image: url(spritesmith-main-3.png);
background-position: -697px -1588px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fall2015Mage {
background-image: url(spritesmith-main-3.png);
background-position: -738px -1588px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fall2015Rogue {
background-image: url(spritesmith-main-3.png);
background-position: -779px -1588px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fall2015Warrior {
background-image: url(spritesmith-main-3.png);
background-position: -820px -1588px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fallHealer {
background-image: url(spritesmith-main-3.png);
background-position: -861px -1588px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fallMage {
background-image: url(spritesmith-main-3.png);
background-position: -902px -1588px;
width: 40px;
height: 40px;
}
.shop_weapon_special_fallRogue {
background-image: url(spritesmith-main-3.png);
background-position: -943px -1588px;
width: 40px; width: 40px;
height: 40px; height: 40px;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 KiB

After

Width:  |  Height:  |  Size: 371 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -260,6 +260,8 @@
"armorSpecialBirthdayNotes": "Happy Birthday, Habitica! Wear these Absurd Party Robes to celebrate this wonderful day. Confers no benefit.", "armorSpecialBirthdayNotes": "Happy Birthday, Habitica! Wear these Absurd Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialBirthday2015Text": "Silly Party Robes", "armorSpecialBirthday2015Text": "Silly Party Robes",
"armorSpecialBirthday2015Notes": "Happy Birthday, Habitica! Wear these Silly Party Robes to celebrate this wonderful day. Confers no benefit.", "armorSpecialBirthday2015Notes": "Happy Birthday, Habitica! Wear these Silly Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialBirthday2016Text": "Ridiculous Party Robes",
"armorSpecialBirthday2016Notes": "Happy Birthday, Habitica! Wear these Ridiculous Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialGaymerxText": "Rainbow Warrior Armor", "armorSpecialGaymerxText": "Rainbow Warrior Armor",
"armorSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special armor is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.", "armorSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special armor is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",

View File

@@ -160,6 +160,12 @@
"thankyou3": "I'm very grateful - thank you!", "thankyou3": "I'm very grateful - thank you!",
"thankyouCardAchievementTitle": "Greatly Grateful", "thankyouCardAchievementTitle": "Greatly Grateful",
"thankyouCardAchievementText": "Thanks for being thankful! Sent or received <%= cards %> Thank-You cards.", "thankyouCardAchievementText": "Thanks for being thankful! Sent or received <%= cards %> Thank-You cards.",
"birthdayCard": "Birthday Card",
"birthdayCardExplanation": "You both receive the Birthday Bonanza achievement!",
"birthdayCardNotes": "Send a birthday card to a party member.",
"birthday0": "Happy birthday to you!",
"birthdayCardAchievementTitle": "Birthday Bonanza",
"birthdayCardAchievementText": "Many happy returns! Sent or received <%= cards %> birthday cards.",
"streakAchievement": "You earned a streak achievement!", "streakAchievement": "You earned a streak achievement!",
"firstStreakAchievement": "21-Day Streak", "firstStreakAchievement": "21-Day Streak",
"streakAchievementCount": "<%= streaks %> 21-Day Streaks", "streakAchievementCount": "<%= streaks %> 21-Day Streaks",

View File

@@ -23,6 +23,7 @@ export const EVENTS = {
fall2015: { start: '2015-09-21', end: '2015-11-01' }, fall2015: { start: '2015-09-21', end: '2015-11-01' },
gaymerx: { start: '2015-12-01', end: '2015-12-14' }, gaymerx: { start: '2015-12-01', end: '2015-12-14' },
winter2016: { start: '2015-12-18', end: '2016-02-02' }, winter2016: { start: '2015-12-18', end: '2016-02-02' },
birthday2016: { start: '2016-01-29', end: '2016-02-02' },
}; };
export const GEAR_TYPES = [ export const GEAR_TYPES = [

View File

@@ -63,7 +63,6 @@ let armor = {
}, },
}, },
birthday: { birthday: {
event: EVENTS.birthday,
text: t('armorSpecialBirthdayText'), text: t('armorSpecialBirthdayText'),
notes: t('armorSpecialBirthdayNotes'), value: 0, notes: t('armorSpecialBirthdayNotes'), value: 0,
}, },
@@ -359,6 +358,13 @@ let armor = {
value: 90, value: 90,
con: 15, con: 15,
}, },
birthday2016: {
event: EVENTS.birthday2016,
text: t('armorSpecialBirthday2016Text'),
notes: t('armorSpecialBirthday2016Notes'),
value: 0,
canOwn: ownsItem('armor_special_birthday2016'),
},
}; };
let back = { let back = {

View File

@@ -662,7 +662,42 @@ api.spells = {
} }
return user.stats.gp -= 10; return user.stats.gp -= 10;
} }
} },
birthday: {
text: t('birthdayCard'),
mana: 0,
value: 10,
immediateUse: true,
silent: true,
target: 'user',
notes: t('birthdayCardNotes'),
cast: function(user, target) {
var base;
if (user === target) {
if ((base = user.achievements).birthday == null) {
base.birthday = 0;
}
user.achievements.birthday++;
} else {
_.each([user, target], function(t) {
var base1;
if ((base1 = t.achievements).birthday == null) {
base1.birthday = 0;
}
return t.achievements.birthday++;
});
}
if (!target.items.special.birthdayReceived) {
target.items.special.birthdayReceived = [];
}
target.items.special.birthdayReceived.push(user.profile.name);
target.flags.cardReceived = true;
if (typeof target.markModified === "function") {
target.markModified('items.special.birthdayReceived');
}
return user.stats.gp -= 10;
}
},
} }
}; };
@@ -684,7 +719,12 @@ api.cardTypes = {
valentine: { valentine: {
key: 'valentine', key: 'valentine',
messageOptions: 4 messageOptions: 4
} },
birthday: {
key: 'birthday',
messageOptions: 1,
yearRound: true,
},
}; };
_.each(api.spells, function(spellClass) { _.each(api.spells, function(spellClass) {
@@ -1139,91 +1179,51 @@ api.questMounts = _.transform(api.questEggs, function(m, egg) {
api.food = { api.food = {
Meat: { Meat: {
text: t('foodMeat'), text: t('foodMeat'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'Base', target: 'Base',
article: '' article: ''
}, },
Milk: { Milk: {
text: t('foodMilk'), text: t('foodMilk'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'White', target: 'White',
article: '' article: ''
}, },
Potatoe: { Potatoe: {
text: t('foodPotatoe'), text: t('foodPotatoe'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'Desert', target: 'Desert',
article: 'a ' article: 'a '
}, },
Strawberry: { Strawberry: {
text: t('foodStrawberry'), text: t('foodStrawberry'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'Red', target: 'Red',
article: 'a ' article: 'a '
}, },
Chocolate: { Chocolate: {
text: t('foodChocolate'), text: t('foodChocolate'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'Shade', target: 'Shade',
article: '' article: ''
}, },
Fish: { Fish: {
text: t('foodFish'), text: t('foodFish'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'Skeleton', target: 'Skeleton',
article: 'a ' article: 'a '
}, },
RottenMeat: { RottenMeat: {
text: t('foodRottenMeat'), text: t('foodRottenMeat'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'Zombie', target: 'Zombie',
article: '' article: ''
}, },
CottonCandyPink: { CottonCandyPink: {
text: t('foodCottonCandyPink'), text: t('foodCottonCandyPink'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'CottonCandyPink', target: 'CottonCandyPink',
article: '' article: ''
}, },
CottonCandyBlue: { CottonCandyBlue: {
text: t('foodCottonCandyBlue'), text: t('foodCottonCandyBlue'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'CottonCandyBlue', target: 'CottonCandyBlue',
article: '' article: ''
}, },
Honey: { Honey: {
text: t('foodHoney'), text: t('foodHoney'),
canBuy: (function() {
return true;
}),
canDrop: true,
target: 'Golden', target: 'Golden',
article: '' article: ''
}, },
@@ -1238,51 +1238,91 @@ api.food = {
Cake_Skeleton: { Cake_Skeleton: {
text: t('foodCakeSkeleton'), text: t('foodCakeSkeleton'),
target: 'Skeleton', target: 'Skeleton',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Cake_Base: { Cake_Base: {
text: t('foodCakeBase'), text: t('foodCakeBase'),
target: 'Base', target: 'Base',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Cake_CottonCandyBlue: { Cake_CottonCandyBlue: {
text: t('foodCakeCottonCandyBlue'), text: t('foodCakeCottonCandyBlue'),
target: 'CottonCandyBlue', target: 'CottonCandyBlue',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Cake_CottonCandyPink: { Cake_CottonCandyPink: {
text: t('foodCakeCottonCandyPink'), text: t('foodCakeCottonCandyPink'),
target: 'CottonCandyPink', target: 'CottonCandyPink',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Cake_Shade: { Cake_Shade: {
text: t('foodCakeShade'), text: t('foodCakeShade'),
target: 'Shade', target: 'Shade',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Cake_White: { Cake_White: {
text: t('foodCakeWhite'), text: t('foodCakeWhite'),
target: 'White', target: 'White',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Cake_Golden: { Cake_Golden: {
text: t('foodCakeGolden'), text: t('foodCakeGolden'),
target: 'Golden', target: 'Golden',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Cake_Zombie: { Cake_Zombie: {
text: t('foodCakeZombie'), text: t('foodCakeZombie'),
target: 'Zombie', target: 'Zombie',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Cake_Desert: { Cake_Desert: {
text: t('foodCakeDesert'), text: t('foodCakeDesert'),
target: 'Desert', target: 'Desert',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Cake_Red: { Cake_Red: {
text: t('foodCakeRed'), text: t('foodCakeRed'),
target: 'Red', target: 'Red',
canBuy: (function() {
return true;
}),
canDrop: true,
article: '' article: ''
}, },
Candy_Skeleton: { Candy_Skeleton: {

View File

@@ -0,0 +1,85 @@
var migrationName = '20160129_habit_birthday.js';
var authorName = 'Sabe'; // in case script author needs to know when their ...
var authorUuid = '7f14ed62-5408-4e1b-be83-ada62d504931'; //... own data is done
/*
* Award 2016 party robes if user has 2015 robes, 2015 robes if they have the 2014 robes,
* and 2014 robes otherwise
*/
var dbserver = 'localhost:27017'; // FOR TEST DATABASE
// var dbserver = 'username:password@ds031379-a0.mongolab.com:31379'; // FOR PRODUCTION DATABASE
var dbname = 'habitrpg';
var mongo = require('mongoskin');
var _ = require('lodash');
var dbUsers = mongo.db(dbserver + '/' + dbname + '?auto_reconnect').collection('users');
// specify a query to limit the affected users (empty for all users):
var query = {
};
// specify fields we are interested in to limit retrieved data (empty if we're not reading data):
var fields = {
'items.gear.owned': 1,
};
console.warn('Updating users...');
var progressCount = 1000;
var count = 0;
dbUsers.findEach(query, fields, {batchSize:250}, function(err, user) {
if (err) { return exiting(1, 'ERROR! ' + err); }
if (!user) {
console.warn('All appropriate users found and modified.');
return displayData();
}
count++;
// specify user data to change:
var set = {'migration':migrationName};
if (user.items && user.items.gear && user.items.gear.owned && user.items.gear.owned.hasOwnProperty('armor_special_birthday2015')) {
set['items.gear.owned.armor_special_birthday2016'] = false;
} else if (user.items && user.items.gear && user.items.gear.owned && user.items.gear.owned.hasOwnProperty('armor_special_birthday')) {
set['items.gear.owned.armor_special_birthday2015'] = false;
} else {
set['items.gear.owned.armor_special_birthday'] = false;
}
var inc = {
'items.food.Cake_Skeleton':1,
'items.food.Cake_Base':1,
'items.food.Cake_CottonCandyBlue':1,
'items.food.Cake_CottonCandyPink':1,
'items.food.Cake_Shade':1,
'items.food.Cake_White':1,
'items.food.Cake_Golden':1,
'items.food.Cake_Zombie':1,
'items.food.Cake_Desert':1,
'items.food.Cake_Red':1,
'achievements.habitBirthdays':1
};
dbUsers.update({_id:user._id}, {$set:set});
dbUsers.update({_id:user._id}, {$inc:inc});
if (count%progressCount == 0) console.warn(count + ' ' + user._id);
if (user._id == authorUuid) console.warn(authorName + ' processed');
});
function displayData() {
console.warn('\n' + count + ' users processed\n');
return exiting(0);
}
function exiting(code, msg) {
code = code || 0; // 0 = success
if (code && !msg) { msg = 'ERROR!'; }
if (msg) {
if (code) { console.error(msg); }
else { console.log( msg); }
}
process.exit(code);
}

View File

@@ -112,3 +112,6 @@ li.spaced
.reduce-top-margin .reduce-top-margin
margin-top: -10px margin-top: -10px
.slight-right-margin
margin-right: 1em

View File

@@ -58,7 +58,8 @@ var UserSchema = new Schema({
habiticaDays: Number, habiticaDays: Number,
greeting: Number, greeting: Number,
thankyou: Number, thankyou: Number,
costumeContests: Number costumeContests: Number,
birthday: Number
}, },
auth: { auth: {
blocked: Boolean, blocked: Boolean,
@@ -243,7 +244,9 @@ var UserSchema = new Schema({
greeting: Number, greeting: Number,
greetingReceived: Array, greetingReceived: Array,
thankyou: Number, thankyou: Number,
thankyouReceived: Array thankyouReceived: Array,
birthday: Number,
birthdayReceived: Array
}, },
// -------------- Animals ------------------- // -------------- Animals -------------------

View File

@@ -1,22 +1,59 @@
h2 1/26/2016 - JANUARY SUBSCRIBER ITEM AND AVATAR CUSTOMIZATION IN THE ANDROID APP h2 1/29/2016 - HABITICA BIRTHDAY BASH: CAKE, ACHIEVEMENTS, BIRTHDAY CARDS, AND PARTY ROBES! PLUS, LAST CHANCE FOR JANUARY AND WINTER WONDERLAND ITEMS
hr hr
tr tr
td td
.promo_mystery_201601.pull-right .npc_matt.pull-right
h3 January Subscriber Item h3 Habitica Birthday Bash
p The January Subscriber Item has been revealed: the Champion of Resolution Item Set! All January subscribers will receive the Resolution Slayer and the Helm of True Resolve. You still have five days to <a href='/#/options/settings/subscription'>subscribe</a> and receive the item set! Thank you so much for your support - we really do rely on you to keep Habitica free to use and running smoothly. p January 31st is Habitica's Birthday, and this year we have something extra-special to enjoy: Habitica has hit over one million users! Thank you so much for being here with us - it means a lot.
p.small.muted by Lemoness br
p Now come join us and the NPCs as we celebrate!
tr tr
td td
h3 Android App Update: Avatar Customization .Pet_Food_Cake_Base.pull-left.slight-right-margin
p We've released an <a href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica&hl=en' target='_blank'>update to the Android app</a> including... AVATAR CUSTOMIZATION! Now you can edit your avatar on the go. We've also crushed a bunch of bugs and crashes, so be sure to download it now. h3 Cake for Everybody!
p.small.muted by Viirus p In honor of the festivities, everyone has been awarded an assortment of cake to feed to your pets! Yum, yum. Plus, for the next two days <a href='/#/options/inventory/drops'>Alexander the Merchant</a> is now selling cake in his shop, and cake will sometimes drop when you complete your tasks. Cake works just like normal pet food, but if you want to know what type of pet likes each slice, <a href='http://habitica.wikia.com/wiki/Food' target='_blank'>the wiki has spoilers</a>.
tr
td
.shop_armor_special_birthday2016.pull-left.slight-right-margin
h3 Party Robes
p Until February 1st only, there are Party Robes available for free in the <a href='/#/tasks'>Rewards column</a>! Don them with pride.
tr
td
.achievement-habitBirthday2x.pull-right
h3 Birthday Bash Achievement
p In honor of Habitica's birthday, everyone has been awarded the Habitica Birthday Bash achievement! This achievement stacks for each Birthday Bash you celebrate with us.
tr
td
.inventory_special_birthday.pull-right
h3 Birthday Cards
p You can now send <a href='/#/options/inventory/drops'>Birthday Cards</a> to your party mates! If you do so, you'll both get the Birthday Bonanza badge. These birthday cards will be available year-round for 10 Gold each.
tr
td
.promo_mystery_201601.pull-right
h3 Last Chance for January Item Set
p Reminder: this is the final day to <a href='/#/options/settings/subscription'>subscribe</a> and receive the Champion of Resolution Item Set! If you want the Resolution Slayer or the Helm of True Resolve, now's the time! Thanks so much for your support <3
tr
td
h3 Last Chance for Winter Wonderland Outfits & Hair Colors
p On February 1st, everything will be back to normal in Habitica, so if you still have any remaining Winter Wonderland Items that you want to buy, you'd better do it now! The <a href='/#/options/inventory/seasonalshop'>Seasonal Edition items</a> and <a href='/#/options/profile/avatar'>Hair Colors</a> won't be back until next December, and if the Limited Edition items return they will have increased prices or changed art, so strike while the iron is hot!
if menuItem !== 'oldNews' if menuItem !== 'oldNews'
hr hr
a(href='/static/old-news', target='_blank') Read older news a(href='/static/old-news', target='_blank') Read older news
mixin oldNews mixin oldNews
h2 1/26/2016 - JANUARY SUBSCRIBER ITEM AND AVATAR CUSTOMIZATION IN THE ANDROID APP
tr
td
.promo_mystery_201601.pull-right
h3 January Subscriber Item
p The January Subscriber Item has been revealed: the Champion of Resolution Item Set! All January subscribers will receive the Resolution Slayer and the Helm of True Resolve. You still have five days to <a href='/#/options/settings/subscription'>subscribe</a> and receive the item set! Thank you so much for your support - we really do rely on you to keep Habitica free to use and running smoothly.
p.small.muted by Lemoness
tr
td
h3 Android App Update: Avatar Customization
p We've released an <a href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica&hl=en' target='_blank'>update to the Android app</a> including... AVATAR CUSTOMIZATION! Now you can edit your avatar on the go. We've also crushed a bunch of bugs and crashes, so be sure to download it now.
p.small.muted by Viirus
h2 1/20/2016 - NEW STAFF MEMBER, NEW YEAR'S RESOLUTION BLOG POSTS, AND RESOLUTION CHALLENGE h2 1/20/2016 - NEW STAFF MEMBER, NEW YEAR'S RESOLUTION BLOG POSTS, AND RESOLUTION CHALLENGE
tr tr
td td

View File

@@ -238,7 +238,7 @@ div(ng-if='::profile.achievements.costumeContests')
!=env.t('costumeContestTextPlural', {number: "{{::profile.achievements.costumeContests}}"}) !=env.t('costumeContestTextPlural', {number: "{{::profile.achievements.costumeContests}}"})
hr hr
each card in ['greeting', 'thankyou', 'nye', 'valentine'] each card in ['greeting', 'thankyou', 'nye', 'valentine', 'birthday']
div(ng-if='::profile.achievements.#{card}') div(ng-if='::profile.achievements.#{card}')
div(class='achievement achievement-#{card}') div(class='achievement achievement-#{card}')
h5=env.t(card + 'CardAchievementTitle') h5=env.t(card + 'CardAchievementTitle')