mirror of
https://github.com/sudoxnym/habitica-self-host.git
synced 2026-08-03 12:40:00 +00:00
cap items to maximum in their array, in case the user manually entered
a number larger than the max allowed item in the "restore" modal
This commit is contained in:
parent
a5eb64f771
commit
dab72e5865
3 changed files with 38 additions and 19 deletions
|
|
@ -184,9 +184,8 @@ obj.score = (user, task, direction, options={}) ->
|
|||
delta += nextDelta
|
||||
|
||||
addPoints = ->
|
||||
level = user.stats.lvl
|
||||
weaponStrength = items.items.weapon[user.items.weapon].strength
|
||||
exp += obj.expModifier(delta, weaponStrength, level, priority) / 2 # /2 hack for now, people leveling too fast
|
||||
weaponStr = items.getItem('weapon', user.items.weapon).strength
|
||||
exp += obj.expModifier(delta, weaponStr, user.stats.lvl, priority) / 2 # /2 hack for now, people leveling too fast
|
||||
if streak
|
||||
gp += obj.gpModifier(delta, 1, priority, streak, user)
|
||||
else
|
||||
|
|
@ -194,11 +193,10 @@ obj.score = (user, task, direction, options={}) ->
|
|||
|
||||
|
||||
subtractPoints = ->
|
||||
level = user.stats.lvl
|
||||
armorDefense = items.items.armor[user.items.armor].defense
|
||||
helmDefense = items.items.head[user.items.head].defense
|
||||
shieldDefense = items.items.shield[user.items.shield].defense
|
||||
hp += obj.hpModifier(delta, armorDefense, helmDefense, shieldDefense, level, priority)
|
||||
armorDef = items.getItem('armor', user.items.armor).defense
|
||||
headDef = items.getItem('head', user.items.head).defense
|
||||
shieldDef = items.getItem('shield', user.items.shield).defense
|
||||
hp += obj.hpModifier(delta, armorDef, headDef, shieldDef, user.stats.lvl, priority)
|
||||
|
||||
switch type
|
||||
when 'habit'
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ items = require('./items.coffee')
|
|||
|
||||
sod = (timestamp, dayStart=0) ->
|
||||
#sanity-check reset-time (is it 24h time?)
|
||||
dayStart = 0 unless (dayStart = parseInt(dayStart)) and (0 <= dayStart <= 24)
|
||||
dayStart = 0 unless (dayStart = +dayStart) and (0 <= dayStart <= 24)
|
||||
moment(timestamp).startOf('day').add('h', dayStart)
|
||||
|
||||
dayMapping = {0:'su',1:'m',2:'t',3:'w',4:'th',5:'f',6:'s'}
|
||||
|
|
@ -173,8 +173,8 @@ module.exports =
|
|||
###
|
||||
equipped: (type, item=0, preferences={gender:'m', armorSet:'v1'}, backerTier=0) ->
|
||||
{gender, armorSet} = preferences
|
||||
item = parseInt(item)
|
||||
backerTier = parseInt(backerTier)
|
||||
item = ~~item
|
||||
backerTier = ~~backerTier
|
||||
|
||||
switch type
|
||||
when'armor'
|
||||
|
|
@ -310,13 +310,27 @@ module.exports =
|
|||
User stats
|
||||
###
|
||||
|
||||
userStr: (level) -> str = (level-1) / 2
|
||||
userStr: (level) ->
|
||||
(level-1) / 2
|
||||
|
||||
totalStr: (level, weapon=0) ->
|
||||
str = (level-1) / 2
|
||||
totalStr = (str + items.items.weapon[weapon].strength)
|
||||
userDef: (level) -> def = (level-1) / 2
|
||||
totalDef: (level, armor=0, helm=0, shield=0) ->
|
||||
def = (level-1) / 2
|
||||
totalDef = (def + items.items.armor[armor].defense + items.items.head[helm].defense + items.items.shield[shield].defense)
|
||||
itemText: (type, item=0) -> items.items[type][parseInt(item)].text
|
||||
itemStat: (type, item=0) -> if type is 'weapon' then items.items[type][parseInt(item)].strength else items.items[type][parseInt(item)].defense
|
||||
(str + items.getItem('weapon', weapon).strength)
|
||||
|
||||
userDef: (level) ->
|
||||
(level-1) / 2
|
||||
|
||||
totalDef: (level, armor=0, head=0, shield=0) ->
|
||||
totalDef =
|
||||
(level - 1) / 2 + # defense
|
||||
items.getItem('armor', armor).defense +
|
||||
items.getItem('head', head).defense +
|
||||
items.getItem('shield', shield).defense
|
||||
return totalDef
|
||||
|
||||
itemText: (type, item=0) ->
|
||||
items.getItem(type, item).text
|
||||
|
||||
itemStat: (type, item=0) ->
|
||||
i = items.getItem(type, item)
|
||||
if type is 'weapon' then i.strength else i.defense
|
||||
|
|
@ -107,3 +107,10 @@ module.exports.updateStore = (user) ->
|
|||
showNext = false
|
||||
changes[type] = if showNext then items[type][i] else {hide:true}
|
||||
return changes
|
||||
|
||||
###
|
||||
Gets an itme, and caps max to the last item in its array
|
||||
###
|
||||
module.exports.getItem = (type, index=0) ->
|
||||
i = if (~~index > items[type].length - 1) then items[type].length - 1 else ~~index
|
||||
items[type][i]
|
||||
Loading…
Reference in a new issue