Merge branch 'fall-fest' into develop

This commit is contained in:
Tyler Renelle 2014-09-20 14:01:30 -06:00
commit 731d75a059
73 changed files with 4032 additions and 3404 deletions

View file

@ -3,11 +3,11 @@
}*/
/* Comment out for holiday events */
.npc_ian {
background: url("../img/sprites/npc_ian.gif") no-repeat;
width: 78px;
height: 135px;
}
/*.npc_ian {*/
/*background: url("../img/sprites/npc_ian.gif") no-repeat;*/
/*width: 78px;*/
/*height: 135px;*/
/*}*/
.Gems {
display:inline-block;

File diff suppressed because one or more lines are too long

View file

@ -9225,6 +9225,10 @@ events = {
gaymerx: {
start: '2014-07-02',
end: '2014-08-01'
},
fall: {
start: '2014-09-21',
end: '2014-11-01'
}
};
@ -9712,6 +9716,49 @@ gear = {
}),
value: 90,
int: 9
},
fallRogue: {
event: events.fall,
specialClass: 'rogue',
text: t('weaponSpecialFallRogueText'),
notes: t('weaponSpecialFallRogueNotes', {
str: 8
}),
value: 80,
str: 8
},
fallWarrior: {
event: events.fall,
specialClass: 'warrior',
text: t('weaponSpecialFallWarriorText'),
notes: t('weaponSpecialFallWarriorNotes', {
str: 15
}),
value: 90,
str: 15
},
fallMage: {
event: events.fall,
specialClass: 'wizard',
twoHanded: true,
text: t('weaponSpecialFallMageText'),
notes: t('weaponSpecialFallMageNotes', {
int: 15,
per: 7
}),
value: 160,
int: 15,
per: 7
},
fallHealer: {
event: events.fall,
specialClass: 'healer',
text: t('weaponSpecialFallHealerText'),
notes: t('weaponSpecialFallHealerNotes', {
int: 9
}),
value: 90,
int: 9
}
}
},
@ -10062,6 +10109,46 @@ gear = {
value: 90,
con: 15
},
fallRogue: {
event: events.fall,
specialClass: 'rogue',
text: t('armorSpecialFallRogueText'),
notes: t('armorSpecialFallRogueNotes', {
per: 15
}),
value: 90,
per: 15
},
fallWarrior: {
event: events.fall,
specialClass: 'warrior',
text: t('armorSpecialFallWarriorText'),
notes: t('armorSpecialFallWarriorNotes', {
con: 9
}),
value: 90,
con: 9
},
fallMage: {
event: events.fall,
specialClass: 'wizard',
text: t('armorSpecialFallMageText'),
notes: t('armorSpecialFallMageNotes', {
int: 9
}),
value: 90,
int: 9
},
fallHealer: {
event: events.fall,
specialClass: 'healer',
text: t('armorSpecialFallHealerText'),
notes: t('armorSpecialFallHealerNotes', {
con: 15
}),
value: 90,
con: 15
},
gaymerx: {
event: events.gaymerx,
text: t('armorSpecialGaymerxText'),
@ -10455,6 +10542,46 @@ gear = {
value: 60,
int: 7
},
fallRogue: {
event: events.fall,
specialClass: 'rogue',
text: t('headSpecialFallRogueText'),
notes: t('headSpecialFallRogueNotes', {
per: 9
}),
value: 60,
per: 9
},
fallWarrior: {
event: events.fall,
specialClass: 'warrior',
text: t('headSpecialFallWarriorText'),
notes: t('headSpecialFallWarriorNotes', {
str: 9
}),
value: 60,
str: 9
},
fallMage: {
event: events.fall,
specialClass: 'wizard',
text: t('headSpecialFallMageText'),
notes: t('headSpecialFallMageNotes', {
per: 7
}),
value: 60,
per: 7
},
fallHealer: {
event: events.fall,
specialClass: 'healer',
text: t('headSpecialFallHealerText'),
notes: t('headSpecialFallHealerNotes', {
int: 7
}),
value: 60,
int: 7
},
gaymerx: {
event: events.gaymerx,
text: t('headSpecialGaymerxText'),
@ -10764,6 +10891,36 @@ gear = {
}),
value: 70,
con: 9
},
fallRogue: {
event: events.fall,
specialClass: 'rogue',
text: t('shieldSpecialFallRogueText'),
notes: t('shieldSpecialFallRogueNotes', {
str: 8
}),
value: 80,
str: 8
},
fallWarrior: {
event: events.fall,
specialClass: 'warrior',
text: t('shieldSpecialFallWarriorText'),
notes: t('shieldSpecialFallWarriorNotes', {
con: 7
}),
value: 70,
con: 7
},
fallHealer: {
event: events.fall,
specialClass: 'healer',
text: t('shieldSpecialFallHealerText'),
notes: t('shieldSpecialFallHealerNotes', {
con: 9
}),
value: 70,
con: 9
}
}
},
@ -11533,119 +11690,221 @@ api.questPets = _.transform(api.questEggs, function(m, egg) {
api.food = {
Meat: {
canBuy: true,
canDrop: false,
text: t('foodMeat'),
target: 'Base',
article: ''
},
Milk: {
canBuy: true,
canDrop: false,
text: t('foodMilk'),
target: 'White',
article: ''
},
Potatoe: {
canBuy: true,
canDrop: false,
text: t('foodPotatoe'),
target: 'Desert',
article: 'a '
},
Strawberry: {
canBuy: true,
canDrop: false,
text: t('foodStrawberry'),
target: 'Red',
article: 'a '
},
Chocolate: {
canBuy: true,
canDrop: false,
text: t('foodChocolate'),
target: 'Shade',
article: ''
},
Fish: {
canBuy: true,
canDrop: false,
text: t('foodFish'),
target: 'Skeleton',
article: 'a '
},
RottenMeat: {
canBuy: true,
canDrop: false,
text: t('foodRottenMeat'),
target: 'Zombie',
article: ''
},
CottonCandyPink: {
canBuy: true,
canDrop: false,
text: t('foodCottonCandyPink'),
target: 'CottonCandyPink',
article: ''
},
CottonCandyBlue: {
canBuy: true,
canDrop: false,
text: t('foodCottonCandyBlue'),
target: 'CottonCandyBlue',
article: ''
},
Honey: {
canBuy: true,
canDrop: false,
text: t('foodHoney'),
target: 'Golden',
article: ''
},
Saddle: {
canBuy: true,
canDrop: false,
text: t('foodSaddleText'),
value: 5,
notes: t('foodSaddleNotes')
},
Cake_Skeleton: {
canBuy: false,
canDrop: false,
text: t('foodCakeSkeleton'),
target: 'Skeleton',
article: ''
},
Cake_Base: {
canBuy: false,
canDrop: false,
text: t('foodCakeBase'),
target: 'Base',
article: ''
},
Cake_CottonCandyBlue: {
canBuy: false,
canDrop: false,
text: t('foodCakeCottonCandyBlue'),
target: 'CottonCandyBlue',
article: ''
},
Cake_CottonCandyPink: {
canBuy: false,
canDrop: false,
text: t('foodCakeCottonCandyPink'),
target: 'CottonCandyPink',
article: ''
},
Cake_Shade: {
canBuy: false,
canDrop: false,
text: t('foodCakeShade'),
target: 'Shade',
article: ''
},
Cake_White: {
canBuy: false,
canDrop: false,
text: t('foodCakeWhite'),
target: 'White',
article: ''
},
Cake_Golden: {
canBuy: false,
canDrop: false,
text: t('foodCakeGolden'),
target: 'Golden',
article: ''
},
Cake_Zombie: {
canBuy: false,
canDrop: false,
text: t('foodCakeZombie'),
target: 'Zombie',
article: ''
},
Cake_Desert: {
canBuy: false,
canDrop: false,
text: t('foodCakeDesert'),
target: 'Desert',
article: ''
},
Cake_Red: {
canBuy: false,
canDrop: false,
text: t('foodCakeRed'),
target: 'Red',
article: ''
},
Honey: {
text: t('foodHoney'),
Candy_Skeleton: {
canBuy: true,
canDrop: true,
text: t('foodCandySkeleton'),
target: 'Skeleton',
article: ''
},
Candy_Base: {
canBuy: true,
canDrop: true,
text: t('foodCandyBase'),
target: 'Base',
article: ''
},
Candy_CottonCandyBlue: {
canBuy: true,
canDrop: true,
text: t('foodCandyCottonCandyBlue'),
target: 'CottonCandyBlue',
article: ''
},
Candy_CottonCandyPink: {
canBuy: true,
canDrop: true,
text: t('foodCandyCottonCandyPink'),
target: 'CottonCandyPink',
article: ''
},
Candy_Shade: {
canBuy: true,
canDrop: true,
text: t('foodCandyShade'),
target: 'Shade',
article: ''
},
Candy_White: {
canBuy: true,
canDrop: true,
text: t('foodCandyWhite'),
target: 'White',
article: ''
},
Candy_Golden: {
canBuy: true,
canDrop: true,
text: t('foodCandyGolden'),
target: 'Golden',
article: ''
},
Saddle: {
text: t('foodSaddleText'),
value: 5,
notes: t('foodSaddleNotes')
Candy_Zombie: {
canBuy: true,
canDrop: true,
text: t('foodCandyZombie'),
target: 'Zombie',
article: ''
},
Candy_Desert: {
canBuy: true,
canDrop: true,
text: t('foodCandyDesert'),
target: 'Desert',
article: ''
},
Candy_Red: {
canBuy: true,
canDrop: true,
text: t('foodCandyRed'),
target: 'Red',
article: ''
}
};
@ -11653,8 +11912,7 @@ _.each(api.food, function(food, key) {
return _.defaults(food, {
value: 1,
key: key,
notes: t('foodNotes'),
canBuy: true
notes: t('foodNotes')
});
});
@ -14104,9 +14362,9 @@ api.wrap = function(user, main) {
if (((_ref1 = user.flags) != null ? _ref1.dropsEnabled : void 0) && user.fns.predictableRandom(user.stats.exp) < chance) {
rarity = user.fns.predictableRandom(user.stats.gp);
if (rarity > .6) {
drop = user.fns.randomVal(_(content.food).omit('Saddle').where({
canBuy: true
}).value());
drop = user.fns.randomVal(_.where(content.food, {
canDrop: true
}));
if ((_base = user.items.food)[_name = drop.key] == null) {
_base[_name] = 0;
}

252
dist/spritesmith0.css vendored
View file

@ -1,150 +1,150 @@
.achievement-alien {
background-image: url(spritesmith0.png);
background-position: -1071px -910px;
background-position: -1526px -398px;
width: 24px;
height: 26px;
}
.achievement-armor {
background-image: url(spritesmith0.png);
background-position: -1460px -1274px;
background-position: -1551px -182px;
width: 24px;
height: 26px;
}
.achievement-boot {
background-image: url(spritesmith0.png);
background-position: -1212px -1028px;
background-position: -1576px -371px;
width: 24px;
height: 26px;
}
.achievement-bow {
background-image: url(spritesmith0.png);
background-position: -1187px -1028px;
background-position: -1551px -371px;
width: 24px;
height: 26px;
}
.achievement-cactus {
background-image: url(spritesmith0.png);
background-position: -1162px -1028px;
background-position: -1526px -371px;
width: 24px;
height: 26px;
}
.achievement-cake {
background-image: url(spritesmith0.png);
background-position: -1212px -1001px;
background-position: -1576px -344px;
width: 24px;
height: 26px;
}
.achievement-cave {
background-image: url(spritesmith0.png);
background-position: -1187px -1001px;
background-position: -1551px -344px;
width: 24px;
height: 26px;
}
.achievement-coffin {
background-image: url(spritesmith0.png);
background-position: -1162px -1001px;
background-position: -1526px -344px;
width: 24px;
height: 26px;
}
.achievement-comment {
background-image: url(spritesmith0.png);
background-position: -1303px -1119px;
background-position: -1576px -317px;
width: 24px;
height: 26px;
}
.achievement-dilatory {
background-image: url(spritesmith0.png);
background-position: -1278px -1119px;
background-position: -1551px -317px;
width: 24px;
height: 26px;
}
.achievement-firefox {
background-image: url(spritesmith0.png);
background-position: -1253px -1119px;
background-position: -1526px -317px;
width: 24px;
height: 26px;
}
.achievement-habitBirthday {
background-image: url(spritesmith0.png);
background-position: -1303px -1092px;
background-position: -1576px -290px;
width: 24px;
height: 26px;
}
.achievement-heart {
background-image: url(spritesmith0.png);
background-position: -1278px -1092px;
background-position: -1551px -290px;
width: 24px;
height: 26px;
}
.achievement-helm {
background-image: url(spritesmith0.png);
background-position: -1435px -1274px;
background-position: -1526px -182px;
width: 24px;
height: 26px;
}
.achievement-karaoke {
background-image: url(spritesmith0.png);
background-position: -1394px -1210px;
background-position: -1576px -263px;
width: 24px;
height: 26px;
}
.achievement-ninja {
background-image: url(spritesmith0.png);
background-position: -1369px -1210px;
background-position: -1551px -263px;
width: 24px;
height: 26px;
}
.achievement-perfect {
background-image: url(spritesmith0.png);
background-position: -1344px -1210px;
background-position: -1526px -263px;
width: 24px;
height: 26px;
}
.achievement-rat {
background-image: url(spritesmith0.png);
background-position: -1394px -1183px;
background-position: -1576px -236px;
width: 24px;
height: 26px;
}
.achievement-shield {
background-image: url(spritesmith0.png);
background-position: -1369px -1183px;
background-position: -1551px -236px;
width: 24px;
height: 26px;
}
.achievement-snowball {
background-image: url(spritesmith0.png);
background-position: -1344px -1183px;
background-position: -1526px -236px;
width: 24px;
height: 26px;
}
.achievement-sun {
background-image: url(spritesmith0.png);
background-position: -1485px -1301px;
background-position: -1576px -209px;
width: 24px;
height: 26px;
}
.achievement-sword {
background-image: url(spritesmith0.png);
background-position: -1460px -1301px;
background-position: -1551px -209px;
width: 24px;
height: 26px;
}
.achievement-thermometer {
background-image: url(spritesmith0.png);
background-position: -1435px -1301px;
background-position: -1526px -209px;
width: 24px;
height: 26px;
}
.achievement-tree {
background-image: url(spritesmith0.png);
background-position: -1485px -1274px;
background-position: -1576px -182px;
width: 24px;
height: 26px;
}
.achievement-valentine {
background-image: url(spritesmith0.png);
background-position: -1253px -1092px;
background-position: -1526px -290px;
width: 24px;
height: 26px;
}
@ -1254,13 +1254,13 @@
}
.hair_mustache_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -565px -148px;
background-position: -1162px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -590px -163px;
background-position: -1187px -288px;
width: 60px;
height: 60px;
}
@ -1302,13 +1302,13 @@
}
.hair_mustache_2_brown {
background-image: url(spritesmith0.png);
background-position: -1162px -637px;
background-position: -565px -148px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_2_brown {
background-image: url(spritesmith0.png);
background-position: -1187px -652px;
background-position: -590px -163px;
width: 60px;
height: 60px;
}
@ -2442,299 +2442,395 @@
}
.hair_base_1_pblue {
background-image: url(spritesmith0.png);
background-position: -1162px -273px;
background-position: -910px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pblue {
background-image: url(spritesmith0.png);
background-position: -1187px -288px;
background-position: -935px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_pgreen {
background-image: url(spritesmith0.png);
background-position: -91px -535px;
background-position: -1001px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pgreen {
background-image: url(spritesmith0.png);
background-position: -116px -550px;
background-position: -1026px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_porange {
background-image: url(spritesmith0.png);
background-position: 0px -535px;
background-position: -1092px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_porange {
background-image: url(spritesmith0.png);
background-position: -25px -550px;
background-position: -1117px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_ppink {
background-image: url(spritesmith0.png);
background-position: -546px -444px;
background-position: -1183px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppink {
background-image: url(spritesmith0.png);
background-position: -571px -459px;
background-position: -1208px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_ppurple {
background-image: url(spritesmith0.png);
background-position: -455px -444px;
background-position: -1274px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppurple {
background-image: url(spritesmith0.png);
background-position: -480px -459px;
background-position: -1299px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_purple {
background-image: url(spritesmith0.png);
background-position: -364px -444px;
background-position: -1365px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_purple {
background-image: url(spritesmith0.png);
background-position: -389px -459px;
background-position: -1390px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_pyellow {
background-image: url(spritesmith0.png);
background-position: -273px -444px;
background-position: -1526px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pyellow {
background-image: url(spritesmith0.png);
background-position: -298px -459px;
background-position: -1551px -15px;
width: 60px;
height: 60px;
}
.hair_base_1_rainbow {
background-image: url(spritesmith0.png);
background-position: -182px -444px;
background-position: -1526px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_rainbow {
background-image: url(spritesmith0.png);
background-position: -207px -459px;
background-position: -1551px -106px;
width: 60px;
height: 60px;
}
.hair_base_1_red {
background-image: url(spritesmith0.png);
background-position: -91px -444px;
background-position: -1162px -637px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_red {
background-image: url(spritesmith0.png);
background-position: -116px -459px;
background-position: -1187px -652px;
width: 60px;
height: 60px;
}
.hair_base_1_white {
background-image: url(spritesmith0.png);
background-position: 0px -444px;
background-position: -91px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_white {
background-image: url(spritesmith0.png);
background-position: -25px -459px;
background-position: -116px -550px;
width: 60px;
height: 60px;
}
.hair_base_1_winternight {
background-image: url(spritesmith0.png);
background-position: -425px -296px;
background-position: 0px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_winternight {
background-image: url(spritesmith0.png);
background-position: -450px -311px;
background-position: -25px -550px;
width: 60px;
height: 60px;
}
.hair_base_1_yellow {
background-image: url(spritesmith0.png);
background-position: -565px -330px;
background-position: -546px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_yellow {
background-image: url(spritesmith0.png);
background-position: -590px -345px;
background-position: -571px -459px;
width: 60px;
height: 60px;
}
.hair_base_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -565px -239px;
background-position: -455px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -590px -254px;
background-position: -480px -459px;
width: 60px;
height: 60px;
}
.hair_base_2_black {
background-image: url(spritesmith0.png);
background-position: 0px -626px;
background-position: -364px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_black {
background-image: url(spritesmith0.png);
background-position: -25px -641px;
background-position: -389px -459px;
width: 60px;
height: 60px;
}
.hair_base_2_blond {
background-image: url(spritesmith0.png);
background-position: -707px -455px;
background-position: -273px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_blond {
background-image: url(spritesmith0.png);
background-position: -732px -470px;
background-position: -298px -459px;
width: 60px;
height: 60px;
}
.hair_base_2_blue {
background-image: url(spritesmith0.png);
background-position: -707px -364px;
background-position: -182px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_blue {
background-image: url(spritesmith0.png);
background-position: -732px -379px;
background-position: -207px -459px;
width: 60px;
height: 60px;
}
.hair_base_2_brown {
background-image: url(spritesmith0.png);
background-position: -707px -273px;
background-position: -91px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_brown {
background-image: url(spritesmith0.png);
background-position: -732px -288px;
background-position: -116px -459px;
width: 60px;
height: 60px;
}
.hair_base_2_candycane {
background-image: url(spritesmith0.png);
background-position: -707px -182px;
background-position: 0px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_candycane {
background-image: url(spritesmith0.png);
background-position: -732px -197px;
background-position: -25px -459px;
width: 60px;
height: 60px;
}
.hair_base_2_frost {
background-image: url(spritesmith0.png);
background-position: -707px -91px;
background-position: -425px -296px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_frost {
background-image: url(spritesmith0.png);
background-position: -732px -106px;
background-position: -450px -311px;
width: 60px;
height: 60px;
}
.hair_base_2_green {
background-image: url(spritesmith0.png);
background-position: -707px 0px;
background-position: -565px -330px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_green {
background-image: url(spritesmith0.png);
background-position: -732px -15px;
background-position: -590px -345px;
width: 60px;
height: 60px;
}
.hair_base_2_holly {
background-image: url(spritesmith0.png);
background-position: -546px -535px;
background-position: -565px -239px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_holly {
background-image: url(spritesmith0.png);
background-position: -571px -550px;
background-position: -590px -254px;
width: 60px;
height: 60px;
}
.hair_base_2_pblue {
background-image: url(spritesmith0.png);
background-position: -455px -535px;
background-position: 0px -626px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_pblue {
background-image: url(spritesmith0.png);
background-position: -480px -550px;
background-position: -25px -641px;
width: 60px;
height: 60px;
}
.hair_base_2_pgreen {
background-image: url(spritesmith0.png);
background-position: -364px -535px;
background-position: -707px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_pgreen {
background-image: url(spritesmith0.png);
background-position: -389px -550px;
background-position: -732px -470px;
width: 60px;
height: 60px;
}
.hair_base_2_porange {
background-image: url(spritesmith0.png);
background-position: -273px -535px;
background-position: -707px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_porange {
background-image: url(spritesmith0.png);
background-position: -298px -550px;
background-position: -732px -379px;
width: 60px;
height: 60px;
}
.hair_base_2_ppink {
background-image: url(spritesmith0.png);
background-position: -182px -535px;
background-position: -707px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_ppink {
background-image: url(spritesmith0.png);
background-position: -732px -288px;
width: 60px;
height: 60px;
}
.hair_base_2_ppurple {
background-image: url(spritesmith0.png);
background-position: -707px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_ppurple {
background-image: url(spritesmith0.png);
background-position: -732px -197px;
width: 60px;
height: 60px;
}
.hair_base_2_purple {
background-image: url(spritesmith0.png);
background-position: -707px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_purple {
background-image: url(spritesmith0.png);
background-position: -732px -106px;
width: 60px;
height: 60px;
}
.hair_base_2_pyellow {
background-image: url(spritesmith0.png);
background-position: -707px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_pyellow {
background-image: url(spritesmith0.png);
background-position: -732px -15px;
width: 60px;
height: 60px;
}
.hair_base_2_rainbow {
background-image: url(spritesmith0.png);
background-position: -546px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_rainbow {
background-image: url(spritesmith0.png);
background-position: -571px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_red {
background-image: url(spritesmith0.png);
background-position: -455px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_red {
background-image: url(spritesmith0.png);
background-position: -480px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_white {
background-image: url(spritesmith0.png);
background-position: -364px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_white {
background-image: url(spritesmith0.png);
background-position: -389px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_winternight {
background-image: url(spritesmith0.png);
background-position: -273px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_winternight {
background-image: url(spritesmith0.png);
background-position: -298px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_yellow {
background-image: url(spritesmith0.png);
background-position: -182px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_yellow {
background-image: url(spritesmith0.png);
background-position: -207px -550px;
width: 60px;

BIN
dist/spritesmith0.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 100 KiB

3454
dist/spritesmith1.css vendored

File diff suppressed because it is too large Load diff

BIN
dist/spritesmith1.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 78 KiB

910
dist/spritesmith2.css vendored

File diff suppressed because it is too large Load diff

BIN
dist/spritesmith2.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 90 KiB

738
dist/spritesmith3.css vendored

File diff suppressed because it is too large Load diff

BIN
dist/spritesmith3.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 180 KiB

820
dist/spritesmith4.css vendored

File diff suppressed because it is too large Load diff

BIN
dist/spritesmith4.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 176 KiB

836
dist/spritesmith5.css vendored

File diff suppressed because it is too large Load diff

BIN
dist/spritesmith5.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 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: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 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: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 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: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -84,6 +84,8 @@
"foodRottenMeat": "Rotten Meat",
"foodCottonCandyPink": "Pink Cotton Candy",
"foodCottonCandyBlue": "Blue Cotton Candy",
"foodHoney": "Honey",
"foodCakeSkeleton": "Bare Bones Cake",
"foodCakeBase": "Basic Cake",
"foodCakeCottonCandyBlue": "Candy Blue Cake",
@ -94,7 +96,17 @@
"foodCakeZombie": "Rotten Cake",
"foodCakeDesert": "Sand Cake",
"foodCakeRed": "Strawberry Cake",
"foodHoney": "Honey",
"foodCandySkeleton": "Bare Bones Candy",
"foodCandyBase": "Basic Candy",
"foodCandyCottonCandyBlue": "Sour Blue Candy",
"foodCandyCottonCandyPink": "Sour Pink Candy",
"foodCandyShade": "Chocolate Candy",
"foodCandyWhite": "Vanilla Candy",
"foodCandyGolden": "Honey Candy ",
"foodCandyZombie": "Rotten Candy",
"foodCandyDesert": "Sand Candy",
"foodCandyRed": "Cinnamon Candy",
"foodSaddleText": "Saddle",
"foodSaddleNotes": "Instantly raises one of your pets into a mount.",

View file

@ -100,6 +100,15 @@
"weaponSpecialSummerHealerText": "Wand of the Shallows",
"weaponSpecialSummerHealerNotes": "This wand, made of aquamarine and live coral, is very attractive to schools of fish. Adds <%= int %> points to Intelligence. Limited Edition 2014 Summer Gear.",
"weaponSpecialFallRogueText": "Silver Stake",
"weaponSpecialFallRogueNotes": "Dispatches undead. Also grants a bonus against werewolves, because you can never be too careful. Adds <%= str %> points to Strength. Limited Edition 2014 Autumn Gear.",
"weaponSpecialFallWarriorText": "Grabby Claw of Science",
"weaponSpecialFallWarriorNotes": "This grabby claw is at the very cutting edge of technology. Adds <%= str %> points to Strength. Limited Edition 2014 Autumn Gear.",
"weaponSpecialFallMageText": "Magic Broom",
"weaponSpecialFallMageNotes": "This enchanted broom flies faster than a dragon! Adds <%= int %> points to Intelligence and <%= per %> points to Perception. Limited Edition 2014 Autumn Gear.",
"weaponSpecialFallHealerText": "Scarab Wand",
"weaponSpecialFallHealerNotes": "The scarab on this wand protects and heals its wielder. Adds <%= int %> points to Intelligence. Limited Edition 2014 Autumn Gear.",
"armorBase0Text": "Plain Clothing",
"armorBase0Notes": "Ordinary clothing. Confers no benefit.",
@ -186,6 +195,15 @@
"armorSpecialSummerHealerText": "Seahealer Tail",
"armorSpecialSummerHealerNotes": "This garment of shimmering scales transforms its wearer into a real Seahealer! Adds <%= con %> points to Constitution. Limited Edition 2014 Summer Gear.",
"armorSpecialFallRogueText": "Bloodred Robes",
"armorSpecialFallRogueNotes": "Vivid. Velvet. Vampiric. Adds <%= per %> points to Perception. Limited Edition 2014 Autumn Gear.",
"armorSpecialFallWarriorText": "Lab-coat of Science",
"armorSpecialFallWarriorNotes": "Protects you from mysterious potion spills. Adds <%= con %> points to Constitution. Limited Edition 2014 Autumn Gear.",
"armorSpecialFallMageText": "Witchy Wizard Robes",
"armorSpecialFallMageNotes": "This robe has plenty of pockets to hold extra helpings of eye of newt and tongue of frog. Adds <%= int %> points to Intelligence. Limited Edition 2014 Autumn Gear.",
"armorSpecialFallHealerText": "Gauzy Gear",
"armorSpecialFallHealerNotes": "Charge into battle pre-bandaged! Adds <%= con %> points to Constitution. Limited Edition 2014 Autumn Gear.",
"armorMystery201402Text": "Messenger Robes",
"armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters.",
@ -287,6 +305,15 @@
"headSpecialSummerHealerText": "Coral Crown",
"headSpecialSummerHealerNotes": "Enables its wearer to heal damaged reefs. Adds <%= int %> points to Intelligence. Limited Edition 2014 Summer Gear.",
"headSpecialFallRogueText": "Bloodred Hood",
"headSpecialFallRogueNotes": "A Vampire Smiter's identity must always be hidden. Adds <%= per %> points to Perception. Limited Edition 2014 Autumn Gear.",
"headSpecialFallWarriorText": "Monster Scalp of Science",
"headSpecialFallWarriorNotes": "Graft on this helm! It's only SLIGHTLY used. Adds <%= str %> points to Strength. Limited Edition 2014 Autumn Gear.",
"headSpecialFallMageText": "Pointy Hat",
"headSpecialFallMageNotes": "Magic is woven into every thread of this hat. Adds <%= per %> points to Perception. Limited Edition 2014 Autumn Gear.",
"headSpecialFallHealerText": "Head Bandages",
"headSpecialFallHealerNotes": "Highly sanitary and very fashionable. Adds <%= int %> points to Intelligence. Limited Edition 2014 Autumn Gear.",
"headSpecialGaymerxText": "Rainbow Warrior Helm",
"headSpecialGaymerxNotes": "(Confers no benefit) In celebration of pride season and GaymerX, this special helmet is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGBTQ and gaming and is open to everyone. It takes place at the InterContinental in downtown San Francisco on July 11-13!",
@ -351,6 +378,13 @@
"shieldSpecialSummerHealerText": "Shield of the Shallows",
"shieldSpecialSummerHealerNotes": "No one will dare to attack the coral reef when faced with this shiny shield! Adds <%= con %> points to Constitution. Limited Edition 2014 Summer Gear.",
"shieldSpecialFallRogueText": "Silver Stake",
"shieldSpecialFallRogueNotes": "Dispatches undead. Also grants a bonus against werewolves, because you can never be too careful. Adds <%= str %> points to Strength. Limited Edition 2014 Autumn Gear.",
"shieldSpecialFallWarriorText": "Potent Potion of Science",
"shieldSpecialFallWarriorNotes": "Spills mysteriously on lab coats. Adds <%= con %> points to Constitution. Limited Edition 2014 Autumn Gear.",
"shieldSpecialFallHealerText": "Jeweled Shield",
"shieldSpecialFallHealerNotes": "This glittery shield was found in an ancient tomb. Adds <%= con %> points to Constitution. Limited Edition 2014 Autumn Gear.",
"backBase0Text": "No Back Accessory",
"backBase0Notes": "No Back Accessory.",

View file

@ -25,6 +25,7 @@ events =
spring: {start:'2014-03-21',end:'2014-05-01'}
summer: {start:'2014-06-20',end:'2014-08-01'}
gaymerx: {start:'2014-07-02',end:'2014-08-01'}
fall: {start:'2014-09-21',end:'2014-11-01'}
mystery =
201402: {start:'2014-02-22',end:'2014-02-28'}
@ -102,6 +103,11 @@ gear =
summerWarrior: event: events.summer, specialClass: 'warrior', text: t('weaponSpecialSummerWarriorText'), notes: t('weaponSpecialSummerWarriorNotes', {str: 15}), value: 90, str: 15
summerMage: event: events.summer, specialClass: 'wizard', twoHanded:true, text: t('weaponSpecialSummerMageText'), notes: t('weaponSpecialSummerMageNotes', {int: 15, per: 7}), value: 160, int:15, per:7
summerHealer: event: events.summer, specialClass: 'healer', text: t('weaponSpecialSummerHealerText'), notes: t('weaponSpecialSummerHealerNotes', {int: 9}), value: 90, int: 9
#Fall
fallRogue: event: events.fall, specialClass: 'rogue', text: t('weaponSpecialFallRogueText'), notes: t('weaponSpecialFallRogueNotes', {str: 8}), value: 80, str: 8
fallWarrior: event: events.fall, specialClass: 'warrior', text: t('weaponSpecialFallWarriorText'), notes: t('weaponSpecialFallWarriorNotes', {str: 15}), value: 90, str: 15
fallMage: event: events.fall, specialClass: 'wizard', twoHanded:true, text: t('weaponSpecialFallMageText'), notes: t('weaponSpecialFallMageNotes', {int: 15, per: 7}), value: 160, int:15, per:7
fallHealer: event: events.fall, specialClass: 'healer', text: t('weaponSpecialFallHealerText'), notes: t('weaponSpecialFallHealerNotes', {int: 9}), value: 90, int: 9
armor:
base:
@ -154,6 +160,11 @@ gear =
summerWarrior: event: events.summer, specialClass: 'warrior', text: t('armorSpecialSummerWarriorText'), notes: t('armorSpecialSummerWarriorNotes', {con: 9}), value: 90, con: 9
summerMage: event: events.summer, specialClass: 'wizard', text: t('armorSpecialSummerMageText'), notes: t('armorSpecialSummerMageNotes', {int: 9}), value: 90, int: 9
summerHealer: event: events.summer, specialClass: 'healer', text: t('armorSpecialSummerHealerText'), notes: t('armorSpecialSummerHealerNotes', {con: 15}), value: 90, con: 15
# Fall
fallRogue: event: events.fall, specialClass: 'rogue', text: t('armorSpecialFallRogueText'), notes: t('armorSpecialFallRogueNotes', {per: 15}), value: 90, per: 15
fallWarrior: event: events.fall, specialClass: 'warrior', text: t('armorSpecialFallWarriorText'), notes: t('armorSpecialFallWarriorNotes', {con: 9}), value: 90, con: 9
fallMage: event: events.fall, specialClass: 'wizard', text: t('armorSpecialFallMageText'), notes: t('armorSpecialFallMageNotes', {int: 9}), value: 90, int: 9
fallHealer: event: events.fall, specialClass: 'healer', text: t('armorSpecialFallHealerText'), notes: t('armorSpecialFallHealerNotes', {con: 15}), value: 90, con: 15
# Other
gaymerx: event: events.gaymerx, text: t('armorSpecialGaymerxText'), notes: t('armorSpecialGaymerxNotes'), value: 0
mystery:
@ -215,6 +226,11 @@ gear =
summerWarrior: event: events.summer, specialClass: 'warrior', text: t('headSpecialSummerWarriorText'), notes: t('headSpecialSummerWarriorNotes', {str: 9}),value: 60,str: 9
summerMage: event: events.summer, specialClass: 'wizard', text: t('headSpecialSummerMageText'), notes: t('headSpecialSummerMageNotes', {per: 7}),value: 60,per: 7
summerHealer: event: events.summer, specialClass: 'healer', text: t('headSpecialSummerHealerText'), notes: t('headSpecialSummerHealerNotes', {int: 7}), value: 60, int: 7
# Fall
fallRogue: event: events.fall, specialClass: 'rogue', text: t('headSpecialFallRogueText'), notes: t('headSpecialFallRogueNotes', {per: 9}),value: 60,per: 9
fallWarrior: event: events.fall, specialClass: 'warrior', text: t('headSpecialFallWarriorText'), notes: t('headSpecialFallWarriorNotes', {str: 9}),value: 60,str: 9
fallMage: event: events.fall, specialClass: 'wizard', text: t('headSpecialFallMageText'), notes: t('headSpecialFallMageNotes', {per: 7}),value: 60,per: 7
fallHealer: event: events.fall, specialClass: 'healer', text: t('headSpecialFallHealerText'), notes: t('headSpecialFallHealerNotes', {int: 7}), value: 60, int: 7
# Other
gaymerx: event: events.gaymerx, text: t('headSpecialGaymerxText'), notes: t('headSpecialGaymerxNotes'), value: 0
mystery:
@ -267,6 +283,10 @@ gear =
summerRogue: event: events.summer, specialClass: 'rogue', text: t('shieldSpecialSummerRogueText'), notes: t('shieldSpecialSummerRogueNotes', {str: 8}), value: 80, str: 8
summerWarrior: event: events.summer, specialClass: 'warrior', text: t('shieldSpecialSummerWarriorText'), notes: t('shieldSpecialSummerWarriorNotes', {con: 7}), value: 70, con: 7
summerHealer: event: events.summer, specialClass: 'healer', text: t('shieldSpecialSummerHealerText'), notes: t('shieldSpecialSummerHealerNotes', {con: 9}), value: 70, con: 9
#Fall
fallRogue: event: events.fall, specialClass: 'rogue', text: t('shieldSpecialFallRogueText'), notes: t('shieldSpecialFallRogueNotes', {str: 8}), value: 80, str: 8
fallWarrior: event: events.fall, specialClass: 'warrior', text: t('shieldSpecialFallWarriorText'), notes: t('shieldSpecialFallWarriorNotes', {con: 7}), value: 70, con: 7
fallHealer: event: events.fall, specialClass: 'healer', text: t('shieldSpecialFallHealerText'), notes: t('shieldSpecialFallHealerNotes', {con: 9}), value: 70, con: 9
back:
base:
@ -680,38 +700,48 @@ api.questPets = _.transform api.questEggs, (m, egg) ->
_.defaults m, _.transform api.hatchingPotions, (m2, pot) ->
m2[egg.key + "-" + pot.key] = true
#TODO after the fall event, set Base set to canBuy:true (or remove, since it's default) and set Fall set to canBuy:false
api.food =
Meat: text: t('foodMeat'), target: 'Base', article: ''
Milk: text: t('foodMilk'), target: 'White', article: ''
Potatoe: text: t('foodPotatoe'), target: 'Desert', article: 'a '
Strawberry: text: t('foodStrawberry'), target: 'Red', article: 'a '
Chocolate: text: t('foodChocolate'), target: 'Shade', article: ''
Fish: text: t('foodFish'), target: 'Skeleton', article: 'a '
RottenMeat: text: t('foodRottenMeat'), target: 'Zombie', article: ''
CottonCandyPink: text: t('foodCottonCandyPink'), target: 'CottonCandyPink', article: ''
CottonCandyBlue: text: t('foodCottonCandyBlue'), target: 'CottonCandyBlue', article: ''
# FIXME what to do with these extra items? Should we add "targets" (plural) for food instead of singular, so we don't have awkward extras?
#Cheese: text: 'Cheese', target: 'Golden'
#Watermelon: text: 'Watermelon', target: 'Golden'
#SeaWeed: text: 'SeaWeed', target: 'Golden'
# Base
Meat: canBuy:true, canDrop:false, text: t('foodMeat'), target: 'Base', article: ''
Milk: canBuy:true, canDrop:false, text: t('foodMilk'), target: 'White', article: ''
Potatoe: canBuy:true, canDrop:false, text: t('foodPotatoe'), target: 'Desert', article: 'a '
Strawberry: canBuy:true, canDrop:false, text: t('foodStrawberry'), target: 'Red', article: 'a '
Chocolate: canBuy:true, canDrop:false, text: t('foodChocolate'), target: 'Shade', article: ''
Fish: canBuy:true, canDrop:false, text: t('foodFish'), target: 'Skeleton', article: 'a '
RottenMeat: canBuy:true, canDrop:false, text: t('foodRottenMeat'), target: 'Zombie', article: ''
CottonCandyPink: canBuy:true, canDrop:false, text: t('foodCottonCandyPink'), target: 'CottonCandyPink', article: ''
CottonCandyBlue: canBuy:true, canDrop:false, text: t('foodCottonCandyBlue'), target: 'CottonCandyBlue', article: ''
Honey: canBuy:true, canDrop:false, text: t('foodHoney'), target: 'Golden', article: ''
Cake_Skeleton: canBuy: false, text: t('foodCakeSkeleton'), target: 'Skeleton', article: ''
Cake_Base: canBuy: false, text: t('foodCakeBase'), target: 'Base', article: ''
Cake_CottonCandyBlue: canBuy: false, text: t('foodCakeCottonCandyBlue'), target: 'CottonCandyBlue', article: ''
Cake_CottonCandyPink: canBuy: false, text: t('foodCakeCottonCandyPink'), target: 'CottonCandyPink', article: ''
Cake_Shade: canBuy: false, text: t('foodCakeShade'), target: 'Shade', article: ''
Cake_White: canBuy: false, text: t('foodCakeWhite'), target: 'White', article: ''
Cake_Golden: canBuy: false, text: t('foodCakeGolden'), target: 'Golden', article: ''
Cake_Zombie: canBuy: false, text: t('foodCakeZombie'), target: 'Zombie', article: ''
Cake_Desert: canBuy: false, text: t('foodCakeDesert'), target: 'Desert', article: ''
Cake_Red: canBuy: false, text: t('foodCakeRed'), target: 'Red', article: ''
Saddle: canBuy:true, canDrop:false, text: t('foodSaddleText'), value: 5, notes: t('foodSaddleNotes')
# Tests hack, put honey last so the faux random picks it up in unit tests
Honey: text: t('foodHoney'), target: 'Golden', article: ''
# Cake
Cake_Skeleton: canBuy:false, canDrop:false, text: t('foodCakeSkeleton'), target: 'Skeleton', article: ''
Cake_Base: canBuy:false, canDrop:false, text: t('foodCakeBase'), target: 'Base', article: ''
Cake_CottonCandyBlue: canBuy:false, canDrop:false, text: t('foodCakeCottonCandyBlue'), target: 'CottonCandyBlue', article: ''
Cake_CottonCandyPink: canBuy:false, canDrop:false, text: t('foodCakeCottonCandyPink'), target: 'CottonCandyPink', article: ''
Cake_Shade: canBuy:false, canDrop:false, text: t('foodCakeShade'), target: 'Shade', article: ''
Cake_White: canBuy:false, canDrop:false, text: t('foodCakeWhite'), target: 'White', article: ''
Cake_Golden: canBuy:false, canDrop:false, text: t('foodCakeGolden'), target: 'Golden', article: ''
Cake_Zombie: canBuy:false, canDrop:false, text: t('foodCakeZombie'), target: 'Zombie', article: ''
Cake_Desert: canBuy:false, canDrop:false, text: t('foodCakeDesert'), target: 'Desert', article: ''
Cake_Red: canBuy:false, canDrop:false, text: t('foodCakeRed'), target: 'Red', article: ''
# Fall
Candy_Skeleton: canBuy:true, canDrop:true, text: t('foodCandySkeleton'), target: 'Skeleton', article: ''
Candy_Base: canBuy:true, canDrop:true, text: t('foodCandyBase'), target: 'Base', article: ''
Candy_CottonCandyBlue: canBuy:true, canDrop:true, text: t('foodCandyCottonCandyBlue'), target: 'CottonCandyBlue', article: ''
Candy_CottonCandyPink: canBuy:true, canDrop:true, text: t('foodCandyCottonCandyPink'), target: 'CottonCandyPink', article: ''
Candy_Shade: canBuy:true, canDrop:true, text: t('foodCandyShade'), target: 'Shade', article: ''
Candy_White: canBuy:true, canDrop:true, text: t('foodCandyWhite'), target: 'White', article: ''
Candy_Golden: canBuy:true, canDrop:true, text: t('foodCandyGolden'), target: 'Golden', article: ''
Candy_Zombie: canBuy:true, canDrop:true, text: t('foodCandyZombie'), target: 'Zombie', article: ''
Candy_Desert: canBuy:true, canDrop:true, text: t('foodCandyDesert'), target: 'Desert', article: ''
Candy_Red: canBuy:true, canDrop:true, text: t('foodCandyRed'), target: 'Red', article: ''
Saddle: text: t('foodSaddleText'), value: 5, notes: t('foodSaddleNotes')
_.each api.food, (food,key) ->
_.defaults food, {value: 1, key, notes: t('foodNotes'), canBuy:true}
_.defaults food, {value: 1, key, notes: t('foodNotes')}
api.quests =

View file

@ -1053,7 +1053,7 @@ api.wrap = (user, main=true) ->
# Food: 40% chance
if rarity > .6
drop = user.fns.randomVal _(content.food).omit('Saddle').where({canBuy:true}).value()
drop = user.fns.randomVal _.where(content.food, {canDrop:true})
user.items.food[drop.key] ?= 0
user.items.food[drop.key]+= 1
drop.type = 'Food'