feat(quests): add rooster rampage quest

This commit is contained in:
Tyler Renelle 2014-09-16 16:08:21 -06:00
parent 18a13f4972
commit fc73c0841f
49 changed files with 3928 additions and 3663 deletions

File diff suppressed because one or more lines are too long

View file

@ -11428,6 +11428,11 @@ api.questEggs = {
text: t('questEggParrotText'),
adjective: t('questEggParrotAdjective'),
canBuy: false
},
Rooster: {
text: t('questEggRoosterText'),
adjective: t('questEggRoosterAdjective'),
canBuy: false
}
};
@ -12215,6 +12220,36 @@ api.quests = {
gp: 43,
exp: 350
}
},
rooster: {
text: t('questRoosterText'),
notes: t('questRoosterNotes'),
completion: t('questRoosterCompletion'),
value: 4,
boss: {
name: t('questRoosterBoss'),
hp: 300,
str: 1.5
},
drop: {
items: [
{
type: 'eggs',
key: 'Rooster',
text: t('questRoosterDropRoosterEgg')
}, {
type: 'eggs',
key: 'Rooster',
text: t('questRoosterDropRoosterEgg')
}, {
type: 'eggs',
key: 'Rooster',
text: t('questRoosterDropRoosterEgg')
}
],
gp: 25,
exp: 125
}
}
};
@ -12438,7 +12473,7 @@ module.exports = {
strings: null,
translations: {},
t: function(stringName) {
var locale, string, stringNotFound, vars;
var e, locale, string, stringNotFound, vars;
vars = arguments[1];
if (_.isString(arguments[1])) {
vars = null;
@ -12452,12 +12487,22 @@ module.exports = {
}
string = !module.exports.strings ? module.exports.translations[locale][stringName] : module.exports.strings[stringName];
if (string) {
return _.template(string, vars || {});
try {
return _.template(string, vars || {});
} catch (_error) {
e = _error;
return 'Error processing string. Please report to http://github.com/HabitRPG/habitrpg.';
}
} else {
stringNotFound = !module.exports.strings ? module.exports.translations[locale].stringNotFound : module.exports.strings.stringNotFound;
return _.template(stringNotFound, {
string: stringName
});
try {
return _.template(stringNotFound, {
string: stringName
});
} catch (_error) {
e = _error;
return 'Error processing string. Please report to http://github.com/HabitRPG/habitrpg.';
}
}
}
};
@ -14483,5 +14528,5 @@ api.wrap = function(user, main) {
};
}).call(this,require("/vagrant/node_modules/habitrpg-shared/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"))
},{"./content.coffee":5,"./i18n.coffee":6,"/vagrant/node_modules/habitrpg-shared/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":2,"lodash":3,"moment":4}]},{},[1])
}).call(this,require("/Users/lefnire/Dropbox/Sites/habitrpg/modules/habitrpg-shared/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"))
},{"./content.coffee":5,"./i18n.coffee":6,"/Users/lefnire/Dropbox/Sites/habitrpg/modules/habitrpg-shared/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":2,"lodash":3,"moment":4}]},{},[1])

166
dist/spritesmith0.css vendored
View file

@ -1230,13 +1230,13 @@
}
.hair_mustache_1_winternight {
background-image: url(spritesmith0.png);
background-position: -565px -148px;
background-position: -1162px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_1_winternight {
background-image: url(spritesmith0.png);
background-position: -590px -163px;
background-position: -1187px -106px;
width: 60px;
height: 60px;
}
@ -1254,13 +1254,13 @@
}
.hair_mustache_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -1162px -273px;
background-position: -565px -148px;
width: 90px;
height: 90px;
}
.customize-option.hair_mustache_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -1187px -288px;
background-position: -590px -163px;
width: 60px;
height: 60px;
}
@ -2382,299 +2382,359 @@
}
.hair_base_1_brown {
background-image: url(spritesmith0.png);
background-position: -1162px -91px;
background-position: -455px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_brown {
background-image: url(spritesmith0.png);
background-position: -1187px -106px;
background-position: -480px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_candycane {
background-image: url(spritesmith0.png);
background-position: -91px -535px;
background-position: -546px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_candycane {
background-image: url(spritesmith0.png);
background-position: -116px -550px;
background-position: -571px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_frost {
background-image: url(spritesmith0.png);
background-position: 0px -535px;
background-position: -637px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_frost {
background-image: url(spritesmith0.png);
background-position: -25px -550px;
background-position: -662px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_green {
background-image: url(spritesmith0.png);
background-position: -546px -444px;
background-position: -728px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_green {
background-image: url(spritesmith0.png);
background-position: -571px -459px;
background-position: -753px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_holly {
background-image: url(spritesmith0.png);
background-position: -455px -444px;
background-position: -819px -1354px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_holly {
background-image: url(spritesmith0.png);
background-position: -480px -459px;
background-position: -844px -1369px;
width: 60px;
height: 60px;
}
.hair_base_1_pblue {
background-image: url(spritesmith0.png);
background-position: -364px -444px;
background-position: -1162px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pblue {
background-image: url(spritesmith0.png);
background-position: -389px -459px;
background-position: -1187px -288px;
width: 60px;
height: 60px;
}
.hair_base_1_pgreen {
background-image: url(spritesmith0.png);
background-position: -273px -444px;
background-position: -91px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pgreen {
background-image: url(spritesmith0.png);
background-position: -298px -459px;
background-position: -116px -550px;
width: 60px;
height: 60px;
}
.hair_base_1_porange {
background-image: url(spritesmith0.png);
background-position: -182px -444px;
background-position: 0px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_porange {
background-image: url(spritesmith0.png);
background-position: -207px -459px;
background-position: -25px -550px;
width: 60px;
height: 60px;
}
.hair_base_1_ppink {
background-image: url(spritesmith0.png);
background-position: -91px -444px;
background-position: -546px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppink {
background-image: url(spritesmith0.png);
background-position: -116px -459px;
background-position: -571px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_ppurple {
background-image: url(spritesmith0.png);
background-position: 0px -444px;
background-position: -455px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_ppurple {
background-image: url(spritesmith0.png);
background-position: -25px -459px;
background-position: -480px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_purple {
background-image: url(spritesmith0.png);
background-position: -425px -296px;
background-position: -364px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_purple {
background-image: url(spritesmith0.png);
background-position: -450px -311px;
background-position: -389px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_pyellow {
background-image: url(spritesmith0.png);
background-position: -565px -330px;
background-position: -273px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_pyellow {
background-image: url(spritesmith0.png);
background-position: -590px -345px;
background-position: -298px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_rainbow {
background-image: url(spritesmith0.png);
background-position: -565px -239px;
background-position: -182px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_rainbow {
background-image: url(spritesmith0.png);
background-position: -590px -254px;
background-position: -207px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_red {
background-image: url(spritesmith0.png);
background-position: 0px -626px;
background-position: -91px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_red {
background-image: url(spritesmith0.png);
background-position: -25px -641px;
background-position: -116px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_white {
background-image: url(spritesmith0.png);
background-position: -707px -455px;
background-position: 0px -444px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_white {
background-image: url(spritesmith0.png);
background-position: -732px -470px;
background-position: -25px -459px;
width: 60px;
height: 60px;
}
.hair_base_1_winternight {
background-image: url(spritesmith0.png);
background-position: -707px -364px;
background-position: -425px -296px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_winternight {
background-image: url(spritesmith0.png);
background-position: -732px -379px;
background-position: -450px -311px;
width: 60px;
height: 60px;
}
.hair_base_1_yellow {
background-image: url(spritesmith0.png);
background-position: -707px -273px;
background-position: -565px -330px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_1_yellow {
background-image: url(spritesmith0.png);
background-position: -732px -288px;
background-position: -590px -345px;
width: 60px;
height: 60px;
}
.hair_base_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -707px -182px;
background-position: -565px -239px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_TRUred {
background-image: url(spritesmith0.png);
background-position: -732px -197px;
background-position: -590px -254px;
width: 60px;
height: 60px;
}
.hair_base_2_black {
background-image: url(spritesmith0.png);
background-position: -707px -91px;
background-position: 0px -626px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_black {
background-image: url(spritesmith0.png);
background-position: -732px -106px;
background-position: -25px -641px;
width: 60px;
height: 60px;
}
.hair_base_2_blond {
background-image: url(spritesmith0.png);
background-position: -707px 0px;
background-position: -707px -455px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_blond {
background-image: url(spritesmith0.png);
background-position: -732px -15px;
background-position: -732px -470px;
width: 60px;
height: 60px;
}
.hair_base_2_blue {
background-image: url(spritesmith0.png);
background-position: -546px -535px;
background-position: -707px -364px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_blue {
background-image: url(spritesmith0.png);
background-position: -571px -550px;
background-position: -732px -379px;
width: 60px;
height: 60px;
}
.hair_base_2_brown {
background-image: url(spritesmith0.png);
background-position: -455px -535px;
background-position: -707px -273px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_brown {
background-image: url(spritesmith0.png);
background-position: -480px -550px;
background-position: -732px -288px;
width: 60px;
height: 60px;
}
.hair_base_2_candycane {
background-image: url(spritesmith0.png);
background-position: -364px -535px;
background-position: -707px -182px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_candycane {
background-image: url(spritesmith0.png);
background-position: -389px -550px;
background-position: -732px -197px;
width: 60px;
height: 60px;
}
.hair_base_2_frost {
background-image: url(spritesmith0.png);
background-position: -273px -535px;
background-position: -707px -91px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_frost {
background-image: url(spritesmith0.png);
background-position: -298px -550px;
background-position: -732px -106px;
width: 60px;
height: 60px;
}
.hair_base_2_green {
background-image: url(spritesmith0.png);
background-position: -182px -535px;
background-position: -707px 0px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_green {
background-image: url(spritesmith0.png);
background-position: -732px -15px;
width: 60px;
height: 60px;
}
.hair_base_2_holly {
background-image: url(spritesmith0.png);
background-position: -546px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_holly {
background-image: url(spritesmith0.png);
background-position: -571px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_pblue {
background-image: url(spritesmith0.png);
background-position: -455px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_pblue {
background-image: url(spritesmith0.png);
background-position: -480px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_pgreen {
background-image: url(spritesmith0.png);
background-position: -364px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_pgreen {
background-image: url(spritesmith0.png);
background-position: -389px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_porange {
background-image: url(spritesmith0.png);
background-position: -273px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_porange {
background-image: url(spritesmith0.png);
background-position: -298px -550px;
width: 60px;
height: 60px;
}
.hair_base_2_ppink {
background-image: url(spritesmith0.png);
background-position: -182px -535px;
width: 90px;
height: 90px;
}
.customize-option.hair_base_2_ppink {
background-image: url(spritesmith0.png);
background-position: -207px -550px;
width: 60px;

BIN
dist/spritesmith0.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 99 KiB

3382
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: 72 KiB

After

Width:  |  Height:  |  Size: 76 KiB

522
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: 83 KiB

After

Width:  |  Height:  |  Size: 84 KiB

666
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: 170 KiB

After

Width:  |  Height:  |  Size: 186 KiB

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

After

Width:  |  Height:  |  Size: 170 KiB

1034
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: 143 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -57,6 +57,9 @@
"questEggParrotText": "Parrot",
"questEggParrotAdjective": "vibrant",
"questEggRoosterText": "Rooster",
"questEggRoosterAdjective": "strutting",
"eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into a <%= eggAdjective() %> <%= eggText() %>.",
"hatchingPotionBase": "Base",

View file

@ -48,6 +48,12 @@
"questHarpyBoss": "Harpy",
"questHarpyDropParrotEgg": "Parrot (Egg)",
"questRoosterText": "Rooster Rampage",
"questRoosterNotes": "For years the farmer @extrajordinary has used Roosters as an alarm clock. But now a giant Rooster has appeared, crowing louder than any before and waking up everyone in Habitica! The sleep-deprived Habiticans struggle through their daily tasks. @Pandoro decides the time has come to put a stop to this. \"Please, is there anyone who can teach that Rooster to crow quietly?\" You volunteer, approaching the Rooster early one morning but it turns, flapping its giant wings and showing its sharp claws, and crows a battle cry.",
"questRoosterCompletion": "With finesse and strength, you have tamed the wild beast. Its ears, once filled with feathers and half-remembered tasks, are now clear as day. It crows at you quietly, snuggling its beak into your shoulder. The next day youre set to take your leave, but @EmeraldOx runs up to you with a covered basket. “Wait! When I went into the farmhouse this morning, the Rooster had pushed these against the door where you slept. I think he wants you to have them.” You uncover the basket to see three delicate eggs.",
"questRoosterBoss": "Rooster",
"questRoosterDropRoosterEgg": "Rooster (Egg)",
"questVice1Text": "Free Yourself of the Dragon's Influence",
"questVice1Notes": "<p>They say there lies a terrible evil in the caverns of Mt. Habitica. A monster whose presence twists the wills of the strong heroes of the land, turning them towards bad habits and laziness! The beast is a grand dragon of immense power and comprised of the shadows themselves: Vice, the treacherous Shadow Wyrm. Brave Habiteers, stand up and defeat this foul beast once and for all, but only if you believe you can stand against its immense power. </p><h3>Vice Part 1: </h3><p>How can you expect to fight the beast if it already has control over you? Don't fall victim to laziness and vice! Work hard to fight against the dragon's dark influence and dispel his hold on you! </p>",
"questVice1Boss": "Vice's Shade",

View file

@ -632,6 +632,7 @@ api.questEggs =
Octopus: text: t('questEggOctopusText'), adjective: t('questEggOctopusAdjective'), canBuy: false
Seahorse: text: t('questEggSeahorseText'), adjective: t('questEggSeahorseAdjective'), canBuy: false
Parrot: text: t('questEggParrotText'), adjective: t('questEggParrotAdjective'), canBuy: false
Rooster: text: t('questEggRoosterText'), adjective: t('questEggRoosterAdjective'), canBuy: false
_.each api.questEggs, (egg,key) ->
_.defaults egg,
@ -1044,6 +1045,24 @@ api.quests =
gp: 43
exp: 350
rooster:
text: t('questRoosterText')
notes: t('questRoosterNotes')
completion: t('questRoosterCompletion')
value: 4
boss:
name: t('questRoosterBoss')
hp: 300
str: 1.5
drop:
items: [
{type: 'eggs', key: 'Rooster', text: t('questRoosterDropRoosterEgg')}
{type: 'eggs', key: 'Rooster', text: t('questRoosterDropRoosterEgg')}
{type: 'eggs', key: 'Rooster', text: t('questRoosterDropRoosterEgg')}
]
gp: 25
exp: 125
_.each api.quests, (v,key) ->
_.defaults v, {key,canBuy:true}
b = v.boss