mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
Sort out conflicts from develop
This commit is contained in:
@@ -1112,6 +1112,7 @@ api.quests =
|
||||
completion: t("questDilatoryCompletion")
|
||||
value: 0
|
||||
canBuy: false
|
||||
category: 'world'
|
||||
boss:
|
||||
name: t("questDilatoryBoss")
|
||||
# We ran an average of progress{up,down} on users over 5 days: {up:805025,down:1324423}. /5*30 (we want the
|
||||
@@ -1154,6 +1155,7 @@ api.quests =
|
||||
completionChat: t("questStressbeastCompletionChat")
|
||||
value: 0
|
||||
canBuy: false
|
||||
category: 'world'
|
||||
boss:
|
||||
name: t("questStressbeastBoss")
|
||||
hp: 2750000
|
||||
@@ -1197,7 +1199,7 @@ api.quests =
|
||||
notes: t('questEvilSantaNotes')
|
||||
completion: t('questEvilSantaCompletion')
|
||||
value: 4 # Gem cost to buy, GP sell-back
|
||||
#mechanic: enum['perfectDailies', ...]
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questEvilSantaBoss') # name of the boss himself (eg, Vice)
|
||||
hp: 300
|
||||
@@ -1216,6 +1218,7 @@ api.quests =
|
||||
completion: t('questEvilSanta2Completion')
|
||||
value: 4
|
||||
previous: 'evilsanta'
|
||||
category: 'pet'
|
||||
collect:
|
||||
tracks: text: t('questEvilSanta2CollectTracks'), count: 20
|
||||
branches: text: t('questEvilSanta2CollectBranches'), count: 10
|
||||
@@ -1231,6 +1234,7 @@ api.quests =
|
||||
notes: t('questGryphonNotes')
|
||||
completion: t('questGryphonCompletion')
|
||||
value: 4 # Gem cost to buy, GP sell-back
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questGryphonBoss') # name of the boss himself (eg, Vice)
|
||||
hp: 300
|
||||
@@ -1250,6 +1254,7 @@ api.quests =
|
||||
notes: t('questHedgehogNotes')
|
||||
completion: t('questHedgehogCompletion')
|
||||
value: 4 # Gem cost to buy, GP sell-back
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questHedgehogBoss') # name of the boss himself (eg, Vice)
|
||||
hp: 400
|
||||
@@ -1269,6 +1274,7 @@ api.quests =
|
||||
notes: t('questGhostStagNotes')
|
||||
completion: t('questGhostStagCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questGhostStagBoss')
|
||||
hp: 1200
|
||||
@@ -1288,6 +1294,7 @@ api.quests =
|
||||
notes: t('questVice1Notes')
|
||||
value: 4
|
||||
lvl: 30
|
||||
category: 'unlockable'
|
||||
boss:
|
||||
name: t('questVice1Boss')
|
||||
hp: 750
|
||||
@@ -1303,7 +1310,8 @@ api.quests =
|
||||
text: t('questVice2Text')
|
||||
notes: t('questVice2Notes')
|
||||
value: 4
|
||||
lvl: 35
|
||||
lvl: 30
|
||||
category: 'unlockable'
|
||||
previous: 'vice1'
|
||||
collect:
|
||||
lightCrystal: text: t('questVice2CollectLightCrystal'), count: 45
|
||||
@@ -1320,7 +1328,8 @@ api.quests =
|
||||
completion: t('questVice3Completion')
|
||||
previous: 'vice2'
|
||||
value: 4
|
||||
lvl: 40
|
||||
lvl: 30
|
||||
category: 'unlockable'
|
||||
boss:
|
||||
name: t('questVice3Boss')
|
||||
hp: 1500
|
||||
@@ -1342,6 +1351,7 @@ api.quests =
|
||||
completion: t('questEggHuntCompletion')
|
||||
value: 1
|
||||
canBuy: false
|
||||
category: 'pet'
|
||||
collect:
|
||||
plainEgg: text: t('questEggHuntCollectPlainEgg'), count: 100
|
||||
drop:
|
||||
@@ -1365,6 +1375,7 @@ api.quests =
|
||||
notes: t('questRatNotes')
|
||||
completion: t('questRatCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questRatBoss')
|
||||
hp: 1200
|
||||
@@ -1384,6 +1395,7 @@ api.quests =
|
||||
notes: t('questOctopusNotes')
|
||||
completion: t('questOctopusCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questOctopusBoss')
|
||||
hp: 1200
|
||||
@@ -1403,6 +1415,7 @@ api.quests =
|
||||
notes: t('questSeahorseNotes')
|
||||
completion: t('questSeahorseCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questSeahorseBoss')
|
||||
hp: 300
|
||||
@@ -1422,6 +1435,7 @@ api.quests =
|
||||
notes: t('questAtom1Notes')
|
||||
value: 4
|
||||
lvl: 15
|
||||
category: 'unlockable'
|
||||
collect:
|
||||
soapBars: text: t('questAtom1CollectSoapBars'), count: 20
|
||||
drop:
|
||||
@@ -1436,6 +1450,7 @@ api.quests =
|
||||
previous: 'atom1'
|
||||
value: 4
|
||||
lvl: 15
|
||||
category: 'unlockable'
|
||||
boss:
|
||||
name: t('questAtom2Boss')
|
||||
hp: 300
|
||||
@@ -1453,6 +1468,7 @@ api.quests =
|
||||
completion: t('questAtom3Completion')
|
||||
value: 4
|
||||
lvl: 15
|
||||
category: 'unlockable'
|
||||
boss:
|
||||
name: t('questAtom3Boss')
|
||||
hp: 800
|
||||
@@ -1471,6 +1487,7 @@ api.quests =
|
||||
notes: t('questHarpyNotes')
|
||||
completion: t('questHarpyCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questHarpyBoss')
|
||||
hp: 600
|
||||
@@ -1490,6 +1507,7 @@ api.quests =
|
||||
notes: t('questRoosterNotes')
|
||||
completion: t('questRoosterCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questRoosterBoss')
|
||||
hp: 300
|
||||
@@ -1509,6 +1527,7 @@ api.quests =
|
||||
notes: t('questSpiderNotes')
|
||||
completion: t('questSpiderCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questSpiderBoss')
|
||||
hp: 400
|
||||
@@ -1528,6 +1547,7 @@ api.quests =
|
||||
notes: t('questMoonstone1Notes')
|
||||
value: 4
|
||||
lvl: 60
|
||||
category: 'unlockable'
|
||||
collect:
|
||||
moonstone: text: t('questMoonstone1CollectMoonstone'), count: 500
|
||||
drop:
|
||||
@@ -1540,8 +1560,9 @@ api.quests =
|
||||
text: t('questMoonstone2Text')
|
||||
notes: t('questMoonstone2Notes')
|
||||
value: 4
|
||||
lvl: 65
|
||||
lvl: 60
|
||||
previous: 'moonstone1'
|
||||
category: 'unlockable'
|
||||
boss:
|
||||
name: t('questMoonstone2Boss')
|
||||
hp: 1500
|
||||
@@ -1558,7 +1579,8 @@ api.quests =
|
||||
completion: t('questMoonstone3Completion')
|
||||
previous: 'moonstone2'
|
||||
value: 4
|
||||
lvl: 70
|
||||
lvl: 60
|
||||
category: 'unlockable'
|
||||
boss:
|
||||
name: t('questMoonstone3Boss')
|
||||
hp: 2000
|
||||
@@ -1583,6 +1605,7 @@ api.quests =
|
||||
notes: t('questGoldenknight1Notes')
|
||||
value: 4
|
||||
lvl: 40
|
||||
category: 'unlockable'
|
||||
collect:
|
||||
testimony: text: t('questGoldenknight1CollectTestimony'), count: 300
|
||||
drop:
|
||||
@@ -1596,7 +1619,8 @@ api.quests =
|
||||
notes: t('questGoldenknight2Notes')
|
||||
value: 4
|
||||
previous: 'goldenknight1'
|
||||
lvl: 45
|
||||
lvl: 40
|
||||
category: 'unlockable'
|
||||
boss:
|
||||
name: t('questGoldenknight2Boss')
|
||||
hp: 1000
|
||||
@@ -1613,7 +1637,8 @@ api.quests =
|
||||
completion: t('questGoldenknight3Completion')
|
||||
previous: 'goldenknight2'
|
||||
value: 4
|
||||
lvl: 50
|
||||
lvl: 40
|
||||
category: 'unlockable'
|
||||
boss:
|
||||
name: t('questGoldenknight3Boss')
|
||||
hp: 1700
|
||||
@@ -1634,8 +1659,10 @@ api.quests =
|
||||
text: t('questBasilistText')
|
||||
notes: t('questBasilistNotes')
|
||||
completion: t('questBasilistCompletion')
|
||||
canBuy: false
|
||||
value: 4
|
||||
category: 'unlockable'
|
||||
unlockCondition:
|
||||
condition: 'party invite'
|
||||
text: t('inviteFriends')
|
||||
boss:
|
||||
name: t('questBasilistBoss')
|
||||
hp: 100
|
||||
@@ -1649,6 +1676,7 @@ api.quests =
|
||||
notes: t('questOwlNotes')
|
||||
completion: t('questOwlCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questOwlBoss')
|
||||
hp: 500
|
||||
@@ -1668,6 +1696,7 @@ api.quests =
|
||||
notes: t('questPenguinNotes')
|
||||
completion: t('questPenguinCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questPenguinBoss')
|
||||
hp: 400
|
||||
@@ -1687,6 +1716,7 @@ api.quests =
|
||||
notes: t('questTRexNotes')
|
||||
completion: t('questTRexCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questTRexBoss')
|
||||
hp: 800
|
||||
@@ -1706,6 +1736,7 @@ api.quests =
|
||||
notes: t('questTRexUndeadNotes')
|
||||
completion: t('questTRexUndeadCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questTRexUndeadBoss')
|
||||
hp: 500
|
||||
@@ -1731,6 +1762,7 @@ api.quests =
|
||||
notes: t('questRockNotes')
|
||||
completion: t('questRockCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questRockBoss')
|
||||
hp: 400
|
||||
@@ -1750,6 +1782,7 @@ api.quests =
|
||||
notes: t('questBunnyNotes')
|
||||
completion: t('questBunnyCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questBunnyBoss')
|
||||
hp: 300
|
||||
@@ -1769,6 +1802,7 @@ api.quests =
|
||||
notes: t('questSlimeNotes')
|
||||
completion: t('questSlimeCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questSlimeBoss')
|
||||
hp: 400
|
||||
@@ -1788,6 +1822,7 @@ api.quests =
|
||||
notes: t('questSheepNotes')
|
||||
completion: t('questSheepCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questSheepBoss')
|
||||
hp: 300
|
||||
@@ -1807,6 +1842,7 @@ api.quests =
|
||||
notes: t('questKrakenNotes')
|
||||
completion: t('questKrakenCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questKrakenBoss')
|
||||
hp: 800
|
||||
@@ -1848,6 +1884,10 @@ _.each api.quests, (v,key) ->
|
||||
if b.rage
|
||||
_.defaults b.rage, {title:t('bossRageTitle'),description:t('bossRageDescription')}
|
||||
|
||||
api.questsByLevel =
|
||||
_.sortBy api.quests, (quest) ->
|
||||
quest.lvl || 0
|
||||
|
||||
api.backgrounds =
|
||||
backgrounds062014:
|
||||
beach:
|
||||
|
||||
@@ -883,7 +883,7 @@ api.wrap = (user, main=true) ->
|
||||
item = if key is 'potion' then content.potion
|
||||
else if key is 'armoire' then content.armoire
|
||||
else content.gear.flat[key]
|
||||
return cb?({code:404, message:"Item '#{key} not found (see https://github.com/HabitRPG/habitrpg-shared/blob/develop/script/content.coffee)"}) unless item
|
||||
return cb?({code:404, message:"Item '#{key} not found (see https://github.com/HabitRPG/habitrpg/blob/develop/common/script/content.coffee)"}) unless item
|
||||
return cb?({code:401, message: i18n.t('messageNotEnoughGold', req.language)}) if user.stats.gp < item.value
|
||||
return cb?({code:401, message: "You can't buy this item"}) if item.canOwn? and !item.canOwn(user)
|
||||
if item.key is 'potion'
|
||||
@@ -921,6 +921,17 @@ api.wrap = (user, main=true) ->
|
||||
mixpanel?.track("Acquire Item",{'itemName':key,'acquireMethod':'Gold','goldCost':item.value})
|
||||
cb? {code:200, message}, _.pick(user,$w 'items achievements stats flags')
|
||||
|
||||
buyQuest: (req, cb) ->
|
||||
{key} = req.params
|
||||
item = content.quests[key]
|
||||
return cb?({code:404, message:"Quest '#{key} not found (see https://github.com/HabitRPG/habitrpg/blob/develop/common/script/content.coffee)"}) unless item
|
||||
return cb?({code:401, message: i18n.t('messageNotEnoughGold', req.language)}) if user.stats.gp < item.value
|
||||
message = i18n.t('messageBought', {itemText: item.text(req.language)}, req.language)
|
||||
user.items.quests[item.key] ?= 0
|
||||
user.items.quests[item.key] += 1
|
||||
user.stats.gp -= item.value
|
||||
cb? {code:200, message}, user.items.quests
|
||||
|
||||
buyMysterySet: (req, cb)->
|
||||
return cb?({code:401, message:"You don't have enough Mystic Hourglasses"}) unless user.purchased.plan.consecutive.trinkets>0
|
||||
mysterySet = content.timeTravelerStore(user.items.gear.owned)?[req.params.key]
|
||||
|
||||
Reference in New Issue
Block a user