classes: fixes to buying special-gear & regular gear habitrpg-shared#ee4777d

This commit is contained in:
Tyler Renelle
2013-12-05 15:48:50 -07:00
parent e5c34af7fd
commit b9845aec4a
5 changed files with 26 additions and 10 deletions

View File

@@ -7,6 +7,8 @@
db.users.find().forEach(function(user){
user.stats.class = 'warrior';
// grant backer/contrib gear, rather than using js logic
// migrate current owned items

View File

@@ -106,17 +106,30 @@ habitrpg.controller("TasksCtrl", ['$scope', '$rootScope', '$location', 'User', '
var updateStore = function(){
var updated = window.habitrpgShared.items.updateStore(User.user);
// Figure out whether we wanna put this in habitrpg-shared
var sorted = [updated.weapon, updated.armor, updated.head, updated.shield, updated.potion, updated.reroll];
// Do we wanna put this in habitrpg-shared?
var sorted = _.chain(updated)
.toArray()
.sortBy(function(item){
switch (item.type) {
case 'weapon': return 1;
case 'armor': return 2;
case 'head': return 3;
case 'shield': return 4;
case 'potion': return 5;
case 'reroll': return 6;
default: return 7;
}
})
.value();
$scope.itemStore = sorted;
}
updateStore();
$scope.buy = function(type) {
var hasEnough = window.habitrpgShared.items.buyItem(User.user, type);
$scope.buy = function(item) {
var hasEnough = window.habitrpgShared.items.buyItem(User.user, item);
if (hasEnough) {
User.log({op: "buy", type: type});
User.log({op: "buy", key: item.key});
Notification.text("Item purchased.");
updateStore();
} else {

View File

@@ -204,11 +204,11 @@ api.clearCompleted = function(req, res, next) {
*/
api.buy = function(req, res, next) {
var user = res.locals.user;
var type = req.params.type;
if (!type.match(/potion|weapon|armor|head|shield/)) { // if (item !== 'potion' && !items.items.gear.flat[item])
var key = req.params.key;
if (key !== 'potion' && !items.items.gear.flat[key]) {
return res.json(400, {err: ":item must be a supported key, see https://github.com/HabitRPG/habitrpg-shared/blob/master/script/items.coffee"});
}
var hasEnough = items.buyItem(user, type);
var hasEnough = items.buyItem(user, items.items.gear.flat[key]);
if (hasEnough) {
return user.save(function(err, saved) {
if (err) return res.json(500, {err: err});
@@ -565,6 +565,7 @@ api.batchUpdate = function(req, res, next) {
req.params.id = action.data && action.data.id;
req.params.direction = action.dir;
req.params.type = action.type;
req.params.key = action.key;
req.body = action.data;
res.send = res.json = function(code, data) {
if (_.isNumber(code) && code >= 400) {

View File

@@ -48,7 +48,7 @@ if (nconf.get('NODE_ENV') == 'development') {
}
/* Items*/
router.post('/user/buy/:type', auth.auth, cron, user.buy);
router.post('/user/buy/:key', auth.auth, cron, user.buy);
/* User*/
router.get('/user', auth.auth, cron, user.getUser);

View File

@@ -55,7 +55,7 @@ script(id='templates/habitrpg-tasks.html', type="text/ng-template")
.task-controls
a.task-action-btn.btn-reroll(bo-if='item.type=="reroll"', ng-click='modals.reroll = true')
i.icon-repeat
a.money.btn-buy.item-btn(bo-if='item.type!="reroll"', ng-click='buy(item.type)')
a.money.btn-buy.item-btn(bo-if='item.type!="reroll"', ng-click='buy(item)')
span.reward-cost {{item.value}}
span.shop_gold
// main content