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:
Jalansh
2020-08-09 21:55:59 +05:30
committed by GitHub
parent d7d7f82723
commit c0bf2cffea
6 changed files with 72 additions and 17 deletions

View File

@@ -1,6 +1,6 @@
import each from 'lodash/each';
import t from './translation';
import { NotAuthorized } from '../libs/errors';
import { NotAuthorized, BadRequest } from '../libs/errors';
import statsComputed from '../libs/statsComputed'; // eslint-disable-line import/no-cycle
import setDebuffPotionItems from '../libs/setDebuffPotionItems'; // eslint-disable-line import/no-cycle
import crit from '../fns/crit'; // eslint-disable-line import/no-cycle
@@ -104,7 +104,10 @@ spells.wizard = {
lvl: 14,
target: 'self',
notes: t('spellWizardFrostNotes'),
cast (user) {
cast (user, target, req) {
// Check if chilling frost skill has been previously casted or not.
// See #12361 for more details.
if (user.stats.buffs.streaks === true) throw new BadRequest(t('spellAlreadyCast')(req.language));
user.stats.buffs.streaks = true;
},
},
@@ -226,8 +229,8 @@ spells.healer = {
lvl: 11,
target: 'self',
notes: t('spellHealerHealNotes'),
cast (user) {
if (user.stats.hp >= 50) throw new NotAuthorized(t('messageHealthAlreadyMax')(user.language));
cast (user, target, req) {
if (user.stats.hp >= 50) throw new NotAuthorized(t('messageHealthAlreadyMax')(req.language));
user.stats.hp += (statsComputed(user).con + statsComputed(user).int + 5) * 0.075;
if (user.stats.hp > 50) user.stats.hp = 50;
},