Merge branch 'develop' into challenges

Conflicts:
	src/app/misc.coffee
	src/app/party.coffee
This commit is contained in:
Tyler Renelle 2013-05-29 15:54:59 +01:00
commit 1063a0e223
7 changed files with 63 additions and 78 deletions

View file

@ -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"

View file

@ -1,5 +1,4 @@
_ = require 'lodash'
browser = require './browser'
module.exports.app = (appExports, model) ->
user = model.at('_user')

View file

@ -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'

View file

@ -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)

View file

@ -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")

View file

@ -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)

View file

@ -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) ->