mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 07:37:25 +01:00
83 lines
2.9 KiB
JavaScript
83 lines
2.9 KiB
JavaScript
habitrpg.controller("InventoryCtrl", ['$scope', 'User',
|
|
function($scope, User) {
|
|
|
|
// convenience vars since these are accessed frequently
|
|
$scope.userEggs = User.user.items.eggs;
|
|
$scope.userHatchingPotions = User.user.items.hatchingPotions;
|
|
|
|
$scope.selectedEgg = null; // {index: 1, name: "Tiger", value: 5}
|
|
$scope.selectedPotion = null; // {index: 5, name: "Red", value: 3}
|
|
|
|
$scope.chooseEgg = function(egg, $index){
|
|
var eggData = _.defaults({index:$index}, egg);
|
|
if (!$scope.selectedPotion) {
|
|
$scope.selectedEgg = eggData;
|
|
} else {
|
|
$scope.hatch(eggData, $scope.selectedPotion);
|
|
}
|
|
}
|
|
|
|
$scope.choosePotion = function(potion, $index){
|
|
// we really didn't think through the way these things are stored and getting passed around...
|
|
var potionData = _.findWhere(window.habitrpgShared.items.items.hatchingPotions, {name:potion});
|
|
potionData = _.defaults({index:$index}, potionData);
|
|
if (!$scope.selectedEgg) {
|
|
$scope.selectedPotion = potionData;
|
|
} else {
|
|
$scope.hatch($scope.selectedEgg, potionData);
|
|
}
|
|
}
|
|
|
|
$scope.sellInventory = function() {
|
|
if ($scope.selectedEgg) {
|
|
User.user.stats.gp += $scope.selectedEgg.value;
|
|
$scope.userEggs.splice($scope.selectedEgg.index, 1);
|
|
User.log([
|
|
{ op: 'set', data: {'items.eggs': $scope.userEggs} }
|
|
]);
|
|
$scope.selectedEgg = null;
|
|
} else if ($scope.selectedPotion) {
|
|
User.user.stats.gp += $scope.selectedPotion.value;
|
|
$scope.userHatchingPotions.splice($scope.selectedPotion.index, 1);
|
|
User.log([
|
|
{ op: 'set', data: {'items.hatchingPotions': $scope.selectedPotion} }
|
|
]);
|
|
$scope.selectedPotion = null;
|
|
}
|
|
}
|
|
|
|
$scope.ownsPet = function(egg, potion){
|
|
if (!egg || !potion) return;
|
|
var pet = egg.name + '-' + potion;
|
|
return User.user.items.pets && ~User.user.items.pets.indexOf(pet)
|
|
}
|
|
|
|
$scope.selectableInventory = function(egg, potion) {
|
|
if (!egg || !potion) return;
|
|
if (!$scope.ownsPet(egg, potion)) return 'selectableInventory';
|
|
}
|
|
|
|
$scope.hatch = function(egg, potion){
|
|
if ($scope.ownsPet(egg.name, potion.name)){
|
|
return alert("You already have that pet, hatch a different combo.")
|
|
}
|
|
var pet = egg.name + '-' + potion.name;
|
|
$scope.userEggs.splice(egg.index, 1);
|
|
$scope.userHatchingPotions.splice(potion.index, 1);
|
|
|
|
if(!User.user.items.pets) User.user.items.pets = [];
|
|
User.user.items.pets.push(pet);
|
|
|
|
User.log([
|
|
{ op: 'set', data: {'items.pets': User.user.items.pets} },
|
|
{ op: 'set', data: {'items.eggs': $scope.userEggs} },
|
|
{ op: 'set', data: {'items.hatchingPotions': $scope.userHatchingPotions} }
|
|
]);
|
|
|
|
alert("Your egg hatched! Visit your stable to equip your pet.");
|
|
|
|
$scope.selectedEgg = null;
|
|
$scope.selectedPotion = null;
|
|
}
|
|
|
|
}]); |