mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-04 09:39:23 +00:00
Merge branch 'develop' into challenges
Conflicts: src/app/misc.coffee src/app/party.coffee
This commit is contained in:
commit
1063a0e223
7 changed files with 63 additions and 78 deletions
|
|
@ -1,70 +0,0 @@
|
|||
browser = require './browser'
|
||||
items = require './items'
|
||||
algos = require 'habitrpg-shared/script/algos'
|
||||
misc = require './misc'
|
||||
helpers = require 'habitrpg-shared/script/helpers'
|
||||
|
||||
moment = require 'moment'
|
||||
_ = require 'lodash'
|
||||
derby = require 'derby'
|
||||
|
||||
module.exports.app = (appExports, model) ->
|
||||
user = model.at '_user'
|
||||
|
||||
appExports.revive = ->
|
||||
# Reset stats
|
||||
user.set 'stats.hp', 50
|
||||
user.set 'stats.exp', 0
|
||||
user.set 'stats.gp', 0
|
||||
user.incr 'stats.lvl', -1 if user.get('stats.lvl') > 1
|
||||
|
||||
## Lose a random item
|
||||
loseThisItem = false
|
||||
owned = user.get('items')
|
||||
# unless they're already at 0-everything
|
||||
if parseInt(owned.armor)>0 or parseInt(owned.head)>0 or parseInt(owned.shield)>0 or parseInt(owned.weapon)>0
|
||||
# find a random item to lose
|
||||
until loseThisItem
|
||||
#candidate = {0:'items.armor', 1:'items.head', 2:'items.shield', 3:'items.weapon', 4:'stats.gp'}[Math.random()*5|0]
|
||||
candidate = {0:'armor', 1:'head', 2:'shield', 3:'weapon'}[Math.random()*4|0]
|
||||
loseThisItem = candidate if owned[candidate] > 0
|
||||
user.set "items.#{loseThisItem}", 0
|
||||
|
||||
items.updateStore(model)
|
||||
|
||||
appExports.reset = (e, el) ->
|
||||
misc.batchTxn model, (uObj, paths, batch) ->
|
||||
batch.set 'tasks', {}
|
||||
['habit', 'daily', 'todo', 'reward'].forEach (type) -> batch.set("#{type}Ids", [])
|
||||
_.each {hp:50, lvl:1, gp:0, exp:0}, (v,k) -> batch.set("stats.#{k}",v)
|
||||
_.each {armor:0, weapon:0, head:0, shield:0}, (v,k) -> batch.set("items.#{k}",v)
|
||||
items.updateStore(model)
|
||||
browser.resetDom(model)
|
||||
|
||||
appExports.closeNewStuff = (e, el) ->
|
||||
user.set('flags.newStuff', 'hide')
|
||||
|
||||
appExports.customizeGender = (e, el) ->
|
||||
user.set 'preferences.gender', $(el).attr('data-value')
|
||||
|
||||
appExports.customizeHair = (e, el) ->
|
||||
user.set 'preferences.hair', $(el).attr('data-value')
|
||||
|
||||
appExports.customizeSkin = (e, el) ->
|
||||
user.set 'preferences.skin', $(el).attr('data-value')
|
||||
|
||||
appExports.customizeArmorSet = (e, el) ->
|
||||
user.set 'preferences.armorSet', $(el).attr('data-value')
|
||||
|
||||
appExports.restoreSave = ->
|
||||
misc.batchTxn model, (uObj, paths, batch) ->
|
||||
$('#restore-form input').each ->
|
||||
[path, val] = [$(this).attr('data-for'), parseInt($(this).val() || 1)]
|
||||
batch.set(path,val)
|
||||
|
||||
appExports.toggleHeader = (e, el) ->
|
||||
user.set 'preferences.hideHeader', !user.get('preferences.hideHeader')
|
||||
|
||||
appExports.deleteAccount = (e, el) ->
|
||||
model.del "users.#{user.get('id')}", ->
|
||||
location.href = "/logout"
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
_ = require 'lodash'
|
||||
browser = require './browser'
|
||||
|
||||
module.exports.app = (appExports, model) ->
|
||||
user = model.at('_user')
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ _ = require('lodash')
|
|||
helpers = require('habitrpg-shared/script/helpers')
|
||||
|
||||
module.exports.app = (appExports, model, app) ->
|
||||
character = require './character'
|
||||
browser = require './browser'
|
||||
|
||||
_currentTime = model.at '_currentTime'
|
||||
|
|
|
|||
|
|
@ -132,9 +132,7 @@ get '/', (page, model, params, next) ->
|
|||
ready (model) ->
|
||||
user = model.at('_user')
|
||||
browser = require './browser'
|
||||
character = require './character'
|
||||
|
||||
require('./character').app(exports, model)
|
||||
require('./tasks').app(exports, model)
|
||||
require('./items').app(exports, model)
|
||||
require('./groups').app(exports, model, app)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ _ = require 'lodash'
|
|||
algos = require 'habitrpg-shared/script/algos'
|
||||
items = require('habitrpg-shared/script/items').items
|
||||
helpers = require('habitrpg-shared/script/helpers')
|
||||
character = require('./character')
|
||||
|
||||
module.exports.batchTxn = batchTxn = (model, cb, options) ->
|
||||
user = model.at("_user")
|
||||
|
|
|
|||
|
|
@ -1,10 +1,71 @@
|
|||
character = require './character'
|
||||
browser = require './browser'
|
||||
helpers = require 'habitrpg-shared/script/helpers'
|
||||
algos = require 'habitrpg-shared/script/algos'
|
||||
browser = require './browser'
|
||||
items = require './items'
|
||||
misc = require './misc'
|
||||
_ = require 'lodash'
|
||||
|
||||
module.exports.app = (appExports, model) ->
|
||||
user = model.at('_user')
|
||||
|
||||
appExports.revive = ->
|
||||
# Reset stats
|
||||
user.set 'stats.hp', 50
|
||||
user.set 'stats.exp', 0
|
||||
user.set 'stats.gp', 0
|
||||
user.incr 'stats.lvl', -1 if user.get('stats.lvl') > 1
|
||||
|
||||
## Lose a random item
|
||||
loseThisItem = false
|
||||
owned = user.get('items')
|
||||
# unless they're already at 0-everything
|
||||
if parseInt(owned.armor)>0 or parseInt(owned.head)>0 or parseInt(owned.shield)>0 or parseInt(owned.weapon)>0
|
||||
# find a random item to lose
|
||||
until loseThisItem
|
||||
#candidate = {0:'items.armor', 1:'items.head', 2:'items.shield', 3:'items.weapon', 4:'stats.gp'}[Math.random()*5|0]
|
||||
candidate = {0:'armor', 1:'head', 2:'shield', 3:'weapon'}[Math.random()*4|0]
|
||||
loseThisItem = candidate if owned[candidate] > 0
|
||||
user.set "items.#{loseThisItem}", 0
|
||||
|
||||
items.updateStore(model)
|
||||
|
||||
appExports.reset = (e, el) ->
|
||||
misc.batchTxn model, (uObj, paths, batch) ->
|
||||
batch.set 'tasks', {}
|
||||
['habit', 'daily', 'todo', 'reward'].forEach (type) -> batch.set("#{type}Ids", [])
|
||||
_.each {hp:50, lvl:1, gp:0, exp:0}, (v,k) -> batch.set("stats.#{k}",v)
|
||||
_.each {armor:0, weapon:0, head:0, shield:0}, (v,k) -> batch.set("items.#{k}",v)
|
||||
items.updateStore(model)
|
||||
browser.resetDom(model)
|
||||
|
||||
appExports.closeNewStuff = (e, el) ->
|
||||
user.set('flags.newStuff', 'hide')
|
||||
|
||||
appExports.customizeGender = (e, el) ->
|
||||
user.set 'preferences.gender', $(el).attr('data-value')
|
||||
|
||||
appExports.customizeHair = (e, el) ->
|
||||
user.set 'preferences.hair', $(el).attr('data-value')
|
||||
|
||||
appExports.customizeSkin = (e, el) ->
|
||||
user.set 'preferences.skin', $(el).attr('data-value')
|
||||
|
||||
appExports.customizeArmorSet = (e, el) ->
|
||||
user.set 'preferences.armorSet', $(el).attr('data-value')
|
||||
|
||||
appExports.restoreSave = ->
|
||||
misc.batchTxn model, (uObj, paths, batch) ->
|
||||
$('#restore-form input').each ->
|
||||
[path, val] = [$(this).attr('data-for'), parseInt($(this).val() || 1)]
|
||||
batch.set(path,val)
|
||||
|
||||
appExports.toggleHeader = (e, el) ->
|
||||
user.set 'preferences.hideHeader', !user.get('preferences.hideHeader')
|
||||
|
||||
appExports.deleteAccount = (e, el) ->
|
||||
model.del "users.#{user.get('id')}", ->
|
||||
location.href = "/logout"
|
||||
|
||||
appExports.profileAddWebsite = (e, el) ->
|
||||
newWebsite = model.get('_newProfileWebsite')
|
||||
return if /^(\s)*$/.test(newWebsite)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ misc = require './misc'
|
|||
Make scoring functionality available to the app
|
||||
###
|
||||
module.exports.app = (appExports, model) ->
|
||||
character = require './character'
|
||||
user = model.at('_user')
|
||||
|
||||
appExports.addTask = (e, el) ->
|
||||
|
|
|
|||
Loading…
Reference in a new issue