feat(fall): Add candy drops. Add canDrop & canBuy to food, handled separately for this

event and future events
This commit is contained in:
Tyler Renelle 2014-09-16 16:44:30 -06:00
parent fc73c0841f
commit 2790ee1bab
27 changed files with 2450 additions and 2267 deletions

File diff suppressed because one or more lines are too long

View file

@ -11533,119 +11533,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 +11755,7 @@ _.each(api.food, function(food, key) {
return _.defaults(food, {
value: 1,
key: key,
notes: t('foodNotes'),
canBuy: true
notes: t('foodNotes')
});
});
@ -14107,9 +14208,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;
}

130
dist/spritesmith0.css vendored
View file

@ -1254,25 +1254,25 @@
}
.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;
}
.hair_mustache_2_black {
background-image: url(spritesmith0.png);
background-position: -1162px -364px;
background-position: -565px -148px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_2_black {
background-image: url(spritesmith0.png);
background-position: -1187px -379px;
background-position: -590px -163px;
width: 60px;
height: 60px;
}
@ -2442,299 +2442,323 @@
}
.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: -1162px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_porange {
background-image: url(spritesmith0.png);
background-position: -25px -550px;
background-position: -1187px -379px;
width: 60px;
height: 60px;
}
.hair_base_1_ppink {
background-image: url(spritesmith0.png);
background-position: -546px -444px;
background-position: -91px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppink {
background-image: url(spritesmith0.png);
background-position: -571px -459px;
background-position: -116px -550px;
width: 60px;
height: 60px;
}
.hair_base_1_ppurple {
background-image: url(spritesmith0.png);
background-position: -455px -444px;
background-position: 0px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppurple {
background-image: url(spritesmith0.png);
background-position: -480px -459px;
background-position: -25px -550px;
width: 60px;
height: 60px;
}
.hair_base_1_purple {
background-image: url(spritesmith0.png);
background-position: -364px -444px;
background-position: -546px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_purple {
background-image: url(spritesmith0.png);
background-position: -389px -459px;
background-position: -571px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_pyellow {
background-image: url(spritesmith0.png);
background-position: -273px -444px;
background-position: -455px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pyellow {
background-image: url(spritesmith0.png);
background-position: -298px -459px;
background-position: -480px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_rainbow {
background-image: url(spritesmith0.png);
background-position: -182px -444px;
background-position: -364px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_rainbow {
background-image: url(spritesmith0.png);
background-position: -207px -459px;
background-position: -389px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_red {
background-image: url(spritesmith0.png);
background-position: -91px -444px;
background-position: -273px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_red {
background-image: url(spritesmith0.png);
background-position: -116px -459px;
background-position: -298px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_white {
background-image: url(spritesmith0.png);
background-position: 0px -444px;
background-position: -182px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_white {
background-image: url(spritesmith0.png);
background-position: -25px -459px;
background-position: -207px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_winternight {
background-image: url(spritesmith0.png);
background-position: -425px -296px;
background-position: -91px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_winternight {
background-image: url(spritesmith0.png);
background-position: -450px -311px;
background-position: -116px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_yellow {
background-image: url(spritesmith0.png);
background-position: -565px -330px;
background-position: 0px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_yellow {
background-image: url(spritesmith0.png);
background-position: -590px -345px;
background-position: -25px -459px;
width: 60px;
height: 60px;
}
.hair_base_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -565px -239px;
background-position: -425px -296px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -590px -254px;
background-position: -450px -311px;
width: 60px;
height: 60px;
}
.hair_base_2_black {
background-image: url(spritesmith0.png);
background-position: 0px -626px;
background-position: -565px -330px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_black {
background-image: url(spritesmith0.png);
background-position: -25px -641px;
background-position: -590px -345px;
width: 60px;
height: 60px;
}
.hair_base_2_blond {
background-image: url(spritesmith0.png);
background-position: -707px -455px;
background-position: -565px -239px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_blond {
background-image: url(spritesmith0.png);
background-position: -732px -470px;
background-position: -590px -254px;
width: 60px;
height: 60px;
}
.hair_base_2_blue {
background-image: url(spritesmith0.png);
background-position: -707px -364px;
background-position: 0px -626px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_blue {
background-image: url(spritesmith0.png);
background-position: -732px -379px;
background-position: -25px -641px;
width: 60px;
height: 60px;
}
.hair_base_2_brown {
background-image: url(spritesmith0.png);
background-position: -707px -273px;
background-position: -707px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_brown {
background-image: url(spritesmith0.png);
background-position: -732px -288px;
background-position: -732px -470px;
width: 60px;
height: 60px;
}
.hair_base_2_candycane {
background-image: url(spritesmith0.png);
background-position: -707px -182px;
background-position: -707px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_candycane {
background-image: url(spritesmith0.png);
background-position: -732px -197px;
background-position: -732px -379px;
width: 60px;
height: 60px;
}
.hair_base_2_frost {
background-image: url(spritesmith0.png);
background-position: -707px -91px;
background-position: -707px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_frost {
background-image: url(spritesmith0.png);
background-position: -732px -106px;
background-position: -732px -288px;
width: 60px;
height: 60px;
}
.hair_base_2_green {
background-image: url(spritesmith0.png);
background-position: -707px 0px;
background-position: -707px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_green {
background-image: url(spritesmith0.png);
background-position: -732px -15px;
background-position: -732px -197px;
width: 60px;
height: 60px;
}
.hair_base_2_holly {
background-image: url(spritesmith0.png);
background-position: -546px -535px;
background-position: -707px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_holly {
background-image: url(spritesmith0.png);
background-position: -571px -550px;
background-position: -732px -106px;
width: 60px;
height: 60px;
}
.hair_base_2_pblue {
background-image: url(spritesmith0.png);
background-position: -455px -535px;
background-position: -707px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_pblue {
background-image: url(spritesmith0.png);
background-position: -480px -550px;
background-position: -732px -15px;
width: 60px;
height: 60px;
}
.hair_base_2_pgreen {
background-image: url(spritesmith0.png);
background-position: -364px -535px;
background-position: -546px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_pgreen {
background-image: url(spritesmith0.png);
background-position: -389px -550px;
background-position: -571px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_porange {
background-image: url(spritesmith0.png);
background-position: -273px -535px;
background-position: -455px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_porange {
background-image: url(spritesmith0.png);
background-position: -298px -550px;
background-position: -480px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_ppink {
background-image: url(spritesmith0.png);
background-position: -182px -535px;
background-position: -364px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_ppink {
background-image: url(spritesmith0.png);
background-position: -389px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_ppurple {
background-image: url(spritesmith0.png);
background-position: -273px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_ppurple {
background-image: url(spritesmith0.png);
background-position: -298px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_purple {
background-image: url(spritesmith0.png);
background-position: -182px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_purple {
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: 99 KiB

954
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: 76 KiB

340
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: 85 KiB

562
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: 185 KiB

1756
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: 171 KiB

770
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: 152 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

@ -680,38 +680,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'