mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
feat(quests): Invite party button
This commit is contained in:
@@ -512,12 +512,14 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', '
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
.controller("PartyCtrl", ['$rootScope','$scope', 'Groups', 'Chat', 'User', 'Challenges', '$state', '$compile', 'Analytics',
|
.controller("PartyCtrl", ['$rootScope','$scope','Groups','Chat','User','Challenges','$state','$compile','Analytics','Quests',
|
||||||
function($rootScope,$scope, Groups, Chat, User, Challenges, $state, $compile, Analytics) {
|
function($rootScope,$scope,Groups,Chat,User,Challenges,$state,$compile,Analytics,Quests) {
|
||||||
$scope.type = 'party';
|
$scope.type = 'party';
|
||||||
$scope.text = window.env.t('party');
|
$scope.text = window.env.t('party');
|
||||||
$scope.group = $rootScope.party = Groups.party();
|
$scope.group = $rootScope.party = Groups.party();
|
||||||
$scope.newGroup = new Groups.Group({type:'party'});
|
$scope.newGroup = new Groups.Group({type:'party'});
|
||||||
|
$scope.inviteOrStartParty = Groups.inviteOrStartParty;
|
||||||
|
$scope.questInit = Quests.questInit;
|
||||||
|
|
||||||
if ($state.is('options.social.party')) {
|
if ($state.is('options.social.party')) {
|
||||||
$scope.group.$syncParty(); // Sync party automatically when navigating to party page
|
$scope.group.$syncParty(); // Sync party automatically when navigating to party page
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ habitrpg.controller("InventoryCtrl",
|
|||||||
$scope.questPopover = Quests.questPopover;
|
$scope.questPopover = Quests.questPopover;
|
||||||
$scope.showQuest = Quests.showQuest;
|
$scope.showQuest = Quests.showQuest;
|
||||||
$scope.closeQuest = Quests.closeQuest;
|
$scope.closeQuest = Quests.closeQuest;
|
||||||
|
$scope.questInit = Quests.questInit;
|
||||||
|
|
||||||
// count egg, food, hatchingPotion stack totals
|
// count egg, food, hatchingPotion stack totals
|
||||||
var countStacks = function(items) { return _.reduce(items,function(m,v){return m+v;},0);}
|
var countStacks = function(items) { return _.reduce(items,function(m,v){return m+v;},0);}
|
||||||
@@ -146,14 +147,6 @@ habitrpg.controller("InventoryCtrl",
|
|||||||
User.user.ops.equip({params:{type: 'mount', key: egg + '-' + potion}});
|
User.user.ops.equip({params:{type: 'mount', key: egg + '-' + potion}});
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.questInit = function(){
|
|
||||||
Analytics.track({'hitType':'event','eventCategory':'behavior','eventAction':'quest','owner':true,'response':'accept','questName':$scope.selectedQuest.key});
|
|
||||||
$rootScope.party.$questAccept({key:$scope.selectedQuest.key}, function(){
|
|
||||||
$rootScope.party.$get();
|
|
||||||
});
|
|
||||||
$scope.closeQuest();
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.getSeasonalShopArray = function(set){
|
$scope.getSeasonalShopArray = function(set){
|
||||||
var flatGearArray = _.toArray(Content.gear.flat);
|
var flatGearArray = _.toArray(Content.gear.flat);
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,9 @@ habitrpg.controller('NotificationCtrl',
|
|||||||
type = 'food';
|
type = 'food';
|
||||||
} else if (after.type === 'HatchingPotion') {
|
} else if (after.type === 'HatchingPotion') {
|
||||||
type = 'hatchingPotions';
|
type = 'hatchingPotions';
|
||||||
} else type = after.type.toLowerCase() + 's';
|
} else {
|
||||||
|
type = after.type.toLowerCase() + 's';
|
||||||
|
}
|
||||||
if(!User.user.items[type][after.key]){
|
if(!User.user.items[type][after.key]){
|
||||||
User.user.items[type][after.key] = 0;
|
User.user.items[type][after.key] = 0;
|
||||||
}
|
}
|
||||||
@@ -88,7 +90,7 @@ habitrpg.controller('NotificationCtrl',
|
|||||||
Notification.drop(env.t('messageDropFood', {dropArticle: after.article, dropText: text, dropNotes: notes}), after);
|
Notification.drop(env.t('messageDropFood', {dropArticle: after.article, dropText: text, dropNotes: notes}), after);
|
||||||
} else if (after.type === 'Quest') {
|
} else if (after.type === 'Quest') {
|
||||||
$rootScope.selectedQuest = Content.quests[after.key];
|
$rootScope.selectedQuest = Content.quests[after.key];
|
||||||
$rootScope.openModal('questDrop');
|
$rootScope.openModal('questDrop', {controller:'PartyCtrl'});
|
||||||
} else {
|
} else {
|
||||||
// Keep support for another type of drops that might be added
|
// Keep support for another type of drops that might be added
|
||||||
Notification.drop(User.user._tmp.drop.dialog);
|
Notification.drop(User.user._tmp.drop.dialog);
|
||||||
|
|||||||
@@ -10,10 +10,11 @@
|
|||||||
'$rootScope',
|
'$rootScope',
|
||||||
'Content',
|
'Content',
|
||||||
'Groups',
|
'Groups',
|
||||||
'User'
|
'User',
|
||||||
|
'Analytics'
|
||||||
];
|
];
|
||||||
|
|
||||||
function questsFactory($rootScope,Content,Groups,User) {
|
function questsFactory($rootScope,Content,Groups,User,Analytics) {
|
||||||
|
|
||||||
var user = User.user;
|
var user = User.user;
|
||||||
|
|
||||||
@@ -84,12 +85,22 @@
|
|||||||
$rootScope.selectedQuest = undefined;
|
$rootScope.selectedQuest = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function questInit(){
|
||||||
|
Analytics.track({'hitType':'event','eventCategory':'behavior','eventAction':'quest','owner':true,'response':'accept','questName':$rootScope.selectedQuest.key});
|
||||||
|
$rootScope.party.$questAccept({key:$rootScope.selectedQuest.key}, function(){
|
||||||
|
$rootScope.party.$get();
|
||||||
|
});
|
||||||
|
$rootScope.$state.go('options.social.party');
|
||||||
|
closeQuest();
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
lockQuest: lockQuest,
|
lockQuest: lockQuest,
|
||||||
buyQuest: buyQuest,
|
buyQuest: buyQuest,
|
||||||
questPopover: questPopover,
|
questPopover: questPopover,
|
||||||
showQuest: showQuest,
|
showQuest: showQuest,
|
||||||
closeQuest: closeQuest
|
closeQuest: closeQuest,
|
||||||
|
questInit: questInit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}());
|
}());
|
||||||
|
|||||||
@@ -90,4 +90,5 @@ script(type='text/ng-template', id='modals/questDrop.html')
|
|||||||
p=env.t('dropQuestCongrats')
|
p=env.t('dropQuestCongrats')
|
||||||
.modal-footer
|
.modal-footer
|
||||||
button.btn.btn-default(ng-click='closeQuest(); $close()')=env.t('questLater')
|
button.btn.btn-default(ng-click='closeQuest(); $close()')=env.t('questLater')
|
||||||
button.btn.btn-primary(ng-click='questInit(); $close()')=env.t('inviteParty')
|
button.btn.btn-primary(ng-click='inviteOrStartParty(group); $close()', ng-if='!party.members')=env.t('startAParty')
|
||||||
|
button.btn.btn-primary(ng-click='questInit(); $close()', ng-if='party.members')=env.t('inviteParty')
|
||||||
|
|||||||
Reference in New Issue
Block a user