mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
Casting Chilling Frost and Stealth skill again will not be processed and return an error instead. Fixes #12361. (#12404)
* Added logic for a repeating Chilling Frost skill. Added test case for redundant chilling frost skill cast. Added comments for the logic of repeating Stealth skill because of an error. * Added logic for a repeating Stealth skill. Avoiding MP reduction still pending because of console error. Test cases pending. * Completed the logic for a repeated Stealth skill. Added repeated frost skill cast check in common. Removed exclusive test. Test cases are pending. * Added test case for Stealth skill recast. Fixed lint errors. Fixed a flaw in if statement which led to test case failure. * Fixed lint errors in test case. * Added a common JSON entry for skil recasts in three files. Other files remaining. Added Chilling Frost recast check in common code. Modified test cases. * Added spellDisabled condition in client code. * Reverted JSON messages for three languages. Added spellAlreadyCast attribute to JSON file in locales/en. Made changes for showing appropriate message in client code. * Added an import for throwing BadRequest in common code. Modified test case accordingly. * Update website/common/script/content/spells.js Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com> * Added target and req attributes in cast() method arguments. * Changed common code test case because of increased function parameters. Moved chilling frost test casse to common tests instead of server tests. * Changed the test case format in common tests. * Added a missing done statement. * Fixed a minor error which led to failing test case. Removed the exclusive test which led to lint error. * Fixed lint errors. * Added a class named 'disabled' for the frontend change. * fix(skills): style cleanup * fix(skills): unfix Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com> Co-authored-by: Sabe Jones <sabrecat@gmail.com>
This commit is contained in:
@@ -163,6 +163,20 @@ async function castSpell (req, res, { isV3 = false }) {
|
||||
task: results[1],
|
||||
});
|
||||
} else if (targetType === 'self') {
|
||||
const spellName = spell.key;
|
||||
// Check if stealth skill has been previously casted or not.
|
||||
// See #12361 for more details.
|
||||
if (spellName === 'stealth') {
|
||||
const incompleteDailiesDue = await Tasks.Task.countDocuments({
|
||||
userId: user._id,
|
||||
type: 'daily',
|
||||
completed: false,
|
||||
isDue: true,
|
||||
}).exec();
|
||||
if (user.stats.buffs.stealth >= incompleteDailiesDue) {
|
||||
throw new BadRequest(res.t('spellAlreadyCast'));
|
||||
}
|
||||
}
|
||||
await castSelfSpell(req, user, spell, quantity);
|
||||
|
||||
let userToJson = user;
|
||||
|
||||
Reference in New Issue
Block a user