mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 23:27:26 +01:00
v3: more fixes for spells
This commit is contained in:
@@ -313,7 +313,7 @@ const partyMembersFields = 'profile.name stats achievements items.special';
|
|||||||
* @apiParam {string} spellId The spell to cast.
|
* @apiParam {string} spellId The spell to cast.
|
||||||
* @apiParam {UUID} targetId Optional query parameter, the id of the target when casting a spell on a party member or a task.
|
* @apiParam {UUID} targetId Optional query parameter, the id of the target when casting a spell on a party member or a task.
|
||||||
*
|
*
|
||||||
* @apiSuccess data Will return the modified targets. For party members only the necessary fields will be populated.
|
* @apiSuccess data Will return the modified targets. For party members only the necessary fields will be populated. The user is always returned.
|
||||||
*/
|
*/
|
||||||
api.castSpell = {
|
api.castSpell = {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@@ -357,11 +357,14 @@ api.castSpell = {
|
|||||||
task.save(),
|
task.save(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
res.respond(200, results[0]);
|
res.respond(200, {
|
||||||
|
user: results[0],
|
||||||
|
task: results[1],
|
||||||
|
});
|
||||||
} else if (targetType === 'self') {
|
} else if (targetType === 'self') {
|
||||||
spell.cast(user, null, req);
|
spell.cast(user, null, req);
|
||||||
await user.save();
|
await user.save();
|
||||||
res.respond(200, user);
|
res.respond(200, { user });
|
||||||
} else if (targetType === 'tasks') { // new target type in v3: when all the user's tasks are necessary
|
} else if (targetType === 'tasks') { // new target type in v3: when all the user's tasks are necessary
|
||||||
let tasks = await Tasks.Task.find({
|
let tasks = await Tasks.Task.find({
|
||||||
userId: user._id,
|
userId: user._id,
|
||||||
@@ -425,7 +428,10 @@ api.castSpell = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res.respond(200, partyMembers);
|
res.respond(200, {
|
||||||
|
partyMembers: Array.isArray(partyMembers) ? partyMembers : [partyMembers],
|
||||||
|
user,
|
||||||
|
});
|
||||||
|
|
||||||
if (party && !spell.silent) {
|
if (party && !spell.silent) {
|
||||||
let message = `\`${user.profile.name} casts ${spell.text()}${targetType === 'user' ? ` on ${partyMembers.profile.name}` : ' for the party'}.\``;
|
let message = `\`${user.profile.name} casts ${spell.text()}${targetType === 'user' ? ` on ${partyMembers.profile.name}` : ' for the party'}.\``;
|
||||||
|
|||||||
Reference in New Issue
Block a user