@robsonbittencourt/calc 0.11.16 → 0.11.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/items.d.ts CHANGED
@@ -2,9 +2,9 @@ import type { Generation, TypeName, StatID, GenerationNum } from './data/interfa
2
2
  export declare const SEED_BOOSTED_STAT: {
3
3
  [item: string]: StatID;
4
4
  };
5
- export declare function getItemBoostType(item: string | undefined): "Normal" | "Fighting" | "Flying" | "Poison" | "Ground" | "Rock" | "Bug" | "Ghost" | "Steel" | "Fire" | "Water" | "Grass" | "Electric" | "Psychic" | "Ice" | "Dragon" | "Dark" | "Fairy" | undefined;
6
- export declare function getBerryResistType(berry: string | undefined): "Normal" | "Fighting" | "Flying" | "Poison" | "Ground" | "Rock" | "Bug" | "Ghost" | "Steel" | "Fire" | "Water" | "Grass" | "Electric" | "Psychic" | "Ice" | "Dragon" | "Dark" | "Fairy" | undefined;
7
- export declare function getFlingPower(item?: string, gen?: GenerationNum): 10 | 100 | 0 | 50 | 30 | 20 | 40 | 80 | 60 | 130 | 85 | 110 | 95 | 90 | 70;
5
+ export declare function getItemBoostType(item: string | undefined): "Normal" | "Fire" | "Water" | "Electric" | "Grass" | "Ice" | "Fighting" | "Poison" | "Ground" | "Flying" | "Psychic" | "Bug" | "Rock" | "Ghost" | "Dragon" | "Dark" | "Steel" | "Fairy" | undefined;
6
+ export declare function getBerryResistType(berry: string | undefined): "Normal" | "Fire" | "Water" | "Electric" | "Grass" | "Ice" | "Fighting" | "Poison" | "Ground" | "Flying" | "Psychic" | "Bug" | "Rock" | "Ghost" | "Dragon" | "Dark" | "Steel" | "Fairy" | undefined;
7
+ export declare function getFlingPower(item?: string, gen?: GenerationNum): 0 | 100 | 10 | 20 | 50 | 30 | 80 | 90 | 40 | 60 | 85 | 130 | 110 | 95 | 70;
8
8
  export declare function getNaturalGift(gen: Generation, item: string): {
9
9
  t: TypeName;
10
10
  p: number;
@@ -49,7 +49,7 @@ function calculateChampions(gen, attacker, defender, move, field) {
49
49
  result.damage = damage_1;
50
50
  return result;
51
51
  }
52
- var defenderAbilityIgnored = defender.hasAbility('Armor Tail', 'Aroma Veil', 'Battle Armor', 'Big Pecks', 'Bulletproof', 'Clear Body', 'Contrary', 'Damp', 'Disguise', 'Dry Skin', 'Earth Eater', 'Filter', 'Flash Fire', 'Flower Veil', 'Friend Guard', 'Fur Coat', 'Heatproof', 'Heavy Metal', 'Hyper Cutter', 'Illuminate', 'Immunity', 'Inner Focus', 'Insomnia', 'Keen Eye', 'Leaf Guard', 'Levitate', 'Light Metal', 'Lightning Rod', 'Limber', 'Magic Bounce', 'Magma Armor', 'Marvel Scale', 'Mirror Armor', 'Motor Drive', 'Multiscale', 'Oblivious', 'Overcoat', 'Own Tempo', 'Purifying Salt', 'Queenly Majesty', 'Sand Veil', 'Sap Sipper', 'Shell Armor', 'Shield Dust', 'Snow Cloak', 'Solid Rock', 'Soundproof', 'Sticky Hold', 'Storm Drain', 'Sturdy', 'Sweet Veil', 'Tangled Feet', 'Telepathy', 'Thick Fat', 'Unaware', 'Vital Spirit', 'Volt Absorb', 'Water Absorb', 'Water Bubble', 'Water Veil', 'White Smoke');
52
+ var defenderAbilityIgnored = defender.hasAbility('Armor Tail', 'Aroma Veil', 'Battle Armor', 'Big Pecks', 'Bulletproof', 'Clear Body', 'Contrary', 'Damp', 'Disguise', 'Dry Skin', 'Earth Eater', 'Filter', 'Flash Fire', 'Flower Veil', 'Fluffy', 'Friend Guard', 'Fur Coat', 'Heatproof', 'Heavy Metal', 'Hyper Cutter', 'Illuminate', 'Immunity', 'Inner Focus', 'Insomnia', 'Keen Eye', 'Leaf Guard', 'Levitate', 'Light Metal', 'Lightning Rod', 'Limber', 'Magic Bounce', 'Magma Armor', 'Marvel Scale', 'Mirror Armor', 'Motor Drive', 'Multiscale', 'Oblivious', 'Overcoat', 'Own Tempo', 'Purifying Salt', 'Queenly Majesty', 'Sand Veil', 'Sap Sipper', 'Shell Armor', 'Shield Dust', 'Snow Cloak', 'Solid Rock', 'Soundproof', 'Sticky Hold', 'Storm Drain', 'Sturdy', 'Sweet Veil', 'Tangled Feet', 'Telepathy', 'Thick Fat', 'Unaware', 'Vital Spirit', 'Volt Absorb', 'Water Absorb', 'Water Bubble', 'Water Veil', 'White Smoke');
53
53
  var attackerIgnoresAbility = attacker.hasAbility('Mold Breaker');
54
54
  if (defenderAbilityIgnored && attackerIgnoresAbility) {
55
55
  if (attackerIgnoresAbility)
@@ -724,6 +724,10 @@ function calculateFinalModsChampions(gen, attacker, defender, move, field, desc,
724
724
  finalMods.push(2048);
725
725
  desc.defenderAbility = defender.ability;
726
726
  }
727
+ if (defender.hasAbility('Fluffy') && move.flags.contact && !attacker.hasAbility('Long Reach')) {
728
+ finalMods.push(2048);
729
+ desc.defenderAbility = defender.ability;
730
+ }
727
731
  if (defender.hasAbility('Solid Rock', 'Filter') && typeEffectiveness > 1) {
728
732
  finalMods.push(3072);
729
733
  desc.defenderAbility = defender.ability;
@@ -732,6 +736,10 @@ function calculateFinalModsChampions(gen, attacker, defender, move, field, desc,
732
736
  finalMods.push(3072);
733
737
  desc.isFriendGuard = true;
734
738
  }
739
+ if (defender.hasAbility('Fluffy') && move.hasType('Fire')) {
740
+ finalMods.push(8192);
741
+ desc.defenderAbility = defender.ability;
742
+ }
735
743
  if (attacker.hasItem('Expert Belt') && typeEffectiveness > 1) {
736
744
  finalMods.push(4915);
737
745
  desc.attackerItem = attacker.item;
@@ -1 +1 @@
1
- {"version":3,"file":"champions.js","sourceRoot":"","sources":["../../src/mechanics/champions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"champions.js","sourceRoot":"","sources":["../../src/mechanics/champions.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,13 @@ export declare class MultiResult {
36
36
  desc(): string;
37
37
  maxDamage(): number;
38
38
  damageWithRemainingUntilTurn(turn: number, rollIndex?: number): number;
39
+ private hasStaminaDefender;
40
+ private initialDefBoost;
41
+ private recomputeDamageCache;
42
+ private consumesTypeBerry;
43
+ private recomputeDamageAtBoost;
44
+ private staminaTurnDamages;
45
+ private staminaHitDamages;
39
46
  private mergeBulkStats;
40
47
  private modifyStat;
41
48
  private boostByStat;
@@ -40,8 +40,12 @@ exports.MultiResult = void 0;
40
40
  var result_1 = require("./result");
41
41
  var desc_1 = require("./desc");
42
42
  var move_1 = require("./move");
43
+ var calc_1 = require("./calc");
44
+ var util_1 = require("./mechanics/util");
45
+ var items_1 = require("./items");
43
46
  var MultiResult = (function () {
44
47
  function MultiResult(defender, results, koChance, eot) {
48
+ this.recomputeDamageCache = new Map();
45
49
  this.defender = defender;
46
50
  this.results = results;
47
51
  this.koChance = koChance;
@@ -89,11 +93,23 @@ var MultiResult = (function () {
89
93
  return withoutBerry !== undefined ? sumDamage(withoutBerry) : null;
90
94
  });
91
95
  var hasTypeBerry = damagesWithoutBerryAtIndex.some(function (d) { return d !== null; });
96
+ var hasStamina = this.hasStaminaDefender();
97
+ var staminaBoost = hasStamina ? this.initialDefBoost() : 0;
98
+ var staminaTypeBerryAvailable = true;
92
99
  for (var i = 1; i <= 10; i++) {
93
100
  var turnValue = 0;
94
- var turnDamages = i === 1 || !hasTypeBerry
95
- ? damagesAtIndex
96
- : damagesWithoutBerryAtIndex.map(function (d, idx) { return d !== null && d !== void 0 ? d : damagesAtIndex[idx]; });
101
+ var turnDamages = void 0;
102
+ if (hasStamina) {
103
+ var turn = this.staminaTurnDamages(staminaBoost, rollIndex, staminaTypeBerryAvailable);
104
+ turnDamages = turn.damages;
105
+ staminaBoost = turn.nextBoost;
106
+ staminaTypeBerryAvailable = turn.typeBerryAvailable;
107
+ }
108
+ else {
109
+ turnDamages = i === 1 || !hasTypeBerry
110
+ ? damagesAtIndex
111
+ : damagesWithoutBerryAtIndex.map(function (d, idx) { return d !== null && d !== void 0 ? d : damagesAtIndex[idx]; });
112
+ }
97
113
  try {
98
114
  for (var turnDamages_1 = (e_2 = void 0, __values(turnDamages)), turnDamages_1_1 = turnDamages_1.next(); !turnDamages_1_1.done; turnDamages_1_1 = turnDamages_1.next()) {
99
115
  var dmg = turnDamages_1_1.value;
@@ -163,15 +179,23 @@ var MultiResult = (function () {
163
179
  }
164
180
  var rowsPerTurn = baseDamages.length;
165
181
  var toxicCounter = target.status === 'tox' ? target.toxicCounter : 0;
182
+ var hasStamina = this.hasStaminaDefender();
183
+ var allStaminaDamages = hasStamina ? this.staminaHitDamages(9) : [];
166
184
  for (var i = 1; i <= 9; i++) {
167
- var currentDamages = [];
168
185
  var currentBerryRecovery = [];
169
186
  var currentBerryThreshold = [];
170
187
  for (var j = 0; j < i; j++) {
171
- currentDamages.push.apply(currentDamages, __spreadArray([], __read(baseDamages), false));
172
188
  currentBerryRecovery.push.apply(currentBerryRecovery, __spreadArray([], __read(baseBerryRecovery), false));
173
189
  currentBerryThreshold.push.apply(currentBerryThreshold, __spreadArray([], __read(baseBerryThreshold), false));
174
190
  }
191
+ var currentDamages = hasStamina
192
+ ? allStaminaDamages.slice(0, i * rowsPerTurn)
193
+ : [];
194
+ if (!hasStamina) {
195
+ for (var j = 0; j < i; j++) {
196
+ currentDamages.push.apply(currentDamages, __spreadArray([], __read(baseDamages), false));
197
+ }
198
+ }
175
199
  var result = (0, desc_1.computeMultiHitKOChance)(currentDamages, target.curHP(), this.eot.damage, target.maxHP(), currentBerryRecovery, currentBerryThreshold, rowsPerTurn, toxicCounter);
176
200
  if (result.chance > 0) {
177
201
  var hkoText = i === 1 ? 'OHKO' : "".concat(i, "HKO");
@@ -249,7 +273,11 @@ var MultiResult = (function () {
249
273
  var defenderNameAndDamageString = defenderDescription.substring(defenderDescription.indexOf(resultOne.defender.name));
250
274
  var _b = this.range(), totalMin = _b.min, totalMax = _b.max;
251
275
  var _c = this.rangePercentage(), minPercent = _c.min, maxPercent = _c.max;
252
- var defenderNameAndDamage = this.updateDefenderDamageText(defenderNameAndDamageString, totalMin, totalMax, minPercent, maxPercent);
276
+ var staminaText = this.hasStaminaDefender()
277
+ ? ' (Stamina considered)'
278
+ : '';
279
+ var defenderNameAndDamageWithNote = defenderNameAndDamageString.replace("".concat(resultOne.defender.name, ":"), "".concat(resultOne.defender.name).concat(staminaText, ":"));
280
+ var defenderNameAndDamage = this.updateDefenderDamageText(defenderNameAndDamageWithNote, totalMin, totalMax, minPercent, maxPercent);
253
281
  var koChanceText = this.getHKO();
254
282
  if (koChanceText) {
255
283
  var baseText = defenderNameAndDamage.includes(' -- ')
@@ -259,7 +287,7 @@ var MultiResult = (function () {
259
287
  " vs. ".concat(defenderBulk, " ").concat(tera).concat(baseText, " -- ").concat(koChanceText));
260
288
  }
261
289
  return ("".concat(attackerDescription, " AND ").concat(secondAttackerDescritption) +
262
- " vs. ".concat(defenderBulk, " ").concat(tera).concat(defenderNameAndDamage));
290
+ " vs. ".concat(defenderBulk, " ").concat(tera).concat(defenderNameAndDamage).concat(staminaText));
263
291
  }
264
292
  catch (e) {
265
293
  return ("".concat(resultOne.attacker.name, " ").concat(resultOne.move.name) +
@@ -276,6 +304,70 @@ var MultiResult = (function () {
276
304
  var remainingHp = this.afterTurn(rollIndex).remainingHpUntilTurn(turn);
277
305
  return hp - remainingHp;
278
306
  };
307
+ MultiResult.prototype.hasStaminaDefender = function () {
308
+ return this.defender.hasAbility('Stamina');
309
+ };
310
+ MultiResult.prototype.initialDefBoost = function () {
311
+ var _a;
312
+ return (_a = this.defender.boosts.def) !== null && _a !== void 0 ? _a : 0;
313
+ };
314
+ MultiResult.prototype.consumesTypeBerry = function (result) {
315
+ var berryType = (0, items_1.getBerryResistType)(this.defender.item);
316
+ return berryType !== undefined && result.move.hasType(berryType);
317
+ };
318
+ MultiResult.prototype.recomputeDamageAtBoost = function (resultIndex, defBoost, typeBerryAvailable) {
319
+ if (typeBerryAvailable === void 0) { typeBerryAvailable = true; }
320
+ var result = this.results[resultIndex];
321
+ var boost = Math.max(-6, Math.min(defBoost, 6));
322
+ var cacheKey = "".concat(resultIndex, ":").concat(boost, ":").concat(typeBerryAvailable ? 1 : 0);
323
+ var cached = this.recomputeDamageCache.get(cacheKey);
324
+ if (cached)
325
+ return cached;
326
+ var defender = this.defender.clone();
327
+ defender.boosts.def = boost;
328
+ defender.stats.def = (0, util_1.getModifiedStat)(defender.rawStats.def, defender.boosts.def, result.gen);
329
+ if (!typeBerryAvailable) {
330
+ defender.item = undefined;
331
+ }
332
+ var recomputed = (0, calc_1.calculate)(result.gen, result.attacker, defender, result.move, result.field);
333
+ var subArrays = (0, result_1.extractDamageSubArrays)(recomputed.damage);
334
+ this.recomputeDamageCache.set(cacheKey, subArrays);
335
+ return subArrays;
336
+ };
337
+ MultiResult.prototype.staminaTurnDamages = function (startBoost, rollIndex, typeBerryAvailable) {
338
+ var damages = [];
339
+ var boost = startBoost;
340
+ var berryAvailable = typeBerryAvailable;
341
+ for (var idx = 0; idx < this.results.length; idx++) {
342
+ var subArrays = this.recomputeDamageAtBoost(idx, boost, berryAvailable);
343
+ var summed = subArrays.reduce(function (acc, sub) { return acc + sub[Math.min(rollIndex, sub.length - 1)]; }, 0);
344
+ damages.push(summed);
345
+ boost = Math.min(boost + subArrays.length, 6);
346
+ if (berryAvailable && this.consumesTypeBerry(this.results[idx])) {
347
+ berryAvailable = false;
348
+ }
349
+ }
350
+ return { damages: damages, nextBoost: boost, typeBerryAvailable: berryAvailable };
351
+ };
352
+ MultiResult.prototype.staminaHitDamages = function (turns) {
353
+ var damages = [];
354
+ var boost = this.initialDefBoost();
355
+ var berryAvailable = true;
356
+ for (var turn = 0; turn < turns; turn++) {
357
+ for (var idx = 0; idx < this.results.length; idx++) {
358
+ var subArrays = this.recomputeDamageAtBoost(idx, boost, berryAvailable);
359
+ var consumesBerry = berryAvailable && this.consumesTypeBerry(this.results[idx]);
360
+ subArrays.forEach(function (sub) {
361
+ damages.push(sub);
362
+ boost = Math.min(boost + 1, 6);
363
+ });
364
+ if (consumesBerry) {
365
+ berryAvailable = false;
366
+ }
367
+ }
368
+ }
369
+ return damages;
370
+ };
279
371
  MultiResult.prototype.mergeBulkStats = function (resultOne, resultTwo, defender) {
280
372
  var resultOneDefenderDesc = resultOne
281
373
  .desc()
@@ -1 +1 @@
1
- {"version":3,"file":"multi-result.js","sourceRoot":"","sources":["../src/multi-result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-result.js","sourceRoot":"","sources":["../src/multi-result.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ import type { Move } from './move';
3
3
  import type { Field } from './field';
4
4
  import type { Generation } from './data/interface';
5
5
  import { MultiResult } from './multi-result';
6
+ export declare function applyStaminaAfterHit(defender: Pokemon, gen: Generation): void;
6
7
  export declare function calculateMulti(gen: Generation, attackers: Pokemon[], defender: Pokemon, moves: Move[], field: Field): MultiResult;
package/dist/multicalc.js CHANGED
@@ -1,13 +1,21 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- exports.calculateMulti = void 0;
3
+ exports.calculateMulti = exports.applyStaminaAfterHit = void 0;
4
4
  var calc_1 = require("./calc");
5
5
  var desc_1 = require("./desc");
6
+ var util_1 = require("./mechanics/util");
6
7
  var multi_result_1 = require("./multi-result");
7
8
  function updateDefenderHP(defender, nextHP, maxHP) {
8
9
  var percentage = (nextHP / maxHP) * 100;
9
10
  defender.originalCurHP = Math.round((defender.maxHP(true) * percentage) / 100);
10
11
  }
12
+ function applyStaminaAfterHit(defender, gen) {
13
+ if (!defender.hasAbility('Stamina'))
14
+ return;
15
+ defender.boosts.def = Math.min(defender.boosts.def + 1, 6);
16
+ defender.stats.def = (0, util_1.getModifiedStat)(defender.rawStats.def, defender.boosts.def, gen);
17
+ }
18
+ exports.applyStaminaAfterHit = applyStaminaAfterHit;
11
19
  function calculateMulti(gen, attackers, defender, moves, field) {
12
20
  var results = [];
13
21
  var currentDefender = defender.clone();
@@ -76,6 +84,7 @@ function calculateMulti(gen, attackers, defender, moves, field) {
76
84
  berryRecoveries.push(initialBerryData.recovery);
77
85
  berryThresholds.push(initialBerryData.threshold);
78
86
  }
87
+ applyStaminaAfterHit(currentDefender, gen);
79
88
  }
80
89
  var koChance = { chance: 0, n: 0, text: '', berryConsumed: false };
81
90
  for (var i = 1; i <= attackers.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"multicalc.js","sourceRoot":"","sources":["../src/multicalc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multicalc.js","sourceRoot":"","sources":["../src/multicalc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var index_1 = require("../index");
4
+ describe('Stamina combined damage', function () {
5
+ var gen = index_1.Generations.get(9);
6
+ var field = function () { return new index_1.Field({ gameType: 'Doubles' }); };
7
+ var garchomp = function () {
8
+ return new index_1.Pokemon(gen, 'Garchomp', { level: 50, nature: 'Adamant', evs: { atk: 252, spe: 252 } });
9
+ };
10
+ var arcanine = function () {
11
+ return new index_1.Pokemon(gen, 'Arcanine', { level: 50, nature: 'Adamant', evs: { atk: 252, spe: 252 } });
12
+ };
13
+ var earthquakeAndRockSlide = function () { return [new index_1.Move(gen, 'Earthquake'), new index_1.Move(gen, 'Rock Slide')]; };
14
+ test('second attacker hits the Stamina defender at Def +1 in a single turn', function () {
15
+ var archaludon = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina' });
16
+ var multiResult = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
17
+ expect(multiResult.results[0].damage).toEqual([114, 114, 116, 116, 120, 120, 120, 122, 122, 126, 126, 128, 128, 132, 132, 134]);
18
+ expect(multiResult.results[1].damage).toEqual([8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10]);
19
+ expect(multiResult.desc()).toBe('252+ Atk Garchomp Earthquake AND 252+ Atk Arcanine Rock Slide vs. 0 HP / 0 Def Archaludon (Stamina considered): 122-144 (73.9 - 87.2%) -- guaranteed 2HKO');
20
+ });
21
+ test('does not add the Stamina note when the defender does not have Stamina', function () {
22
+ var archaludon = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Sturdy' });
23
+ var multiResult = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
24
+ expect(multiResult.desc()).not.toContain('Stamina considered');
25
+ });
26
+ test('does not raise Def beyond +6', function () {
27
+ var archaludon = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina' });
28
+ archaludon.boosts.def = 6;
29
+ var multiResult = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
30
+ expect(multiResult.results[0].damage).toEqual([30, 30, 30, 30, 30, 30, 30, 32, 32, 32, 32, 32, 32, 32, 32, 36]);
31
+ expect(multiResult.results[1].damage).toEqual([3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4]);
32
+ });
33
+ test('Unaware attacker ignores the boost for its own hit but still raises it for the next attacker', function () {
34
+ var clodsire = new index_1.Pokemon(gen, 'Clodsire', { level: 50, ability: 'Unaware', nature: 'Adamant', evs: { atk: 252 } });
35
+ var archaludon = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina' });
36
+ archaludon.boosts.def = 3;
37
+ var multiResult = (0, index_1.calculateMulti)(gen, [clodsire, arcanine()], archaludon, [new index_1.Move(gen, 'Earthquake'), new index_1.Move(gen, 'Rock Slide')], field());
38
+ expect(multiResult.results[0].damage).toEqual([78, 78, 78, 80, 80, 80, 84, 84, 84, 86, 86, 86, 90, 90, 90, 92]);
39
+ expect(multiResult.results[1].damage).toEqual([4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]);
40
+ });
41
+ test('a non-Unaware first attacker is reduced by the pre-existing boost (control for the Unaware case)', function () {
42
+ var clodsire = new index_1.Pokemon(gen, 'Clodsire', { level: 50, ability: 'Water Absorb', nature: 'Adamant', evs: { atk: 252 } });
43
+ var archaludon = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina' });
44
+ archaludon.boosts.def = 3;
45
+ var multiResult = (0, index_1.calculateMulti)(gen, [clodsire, arcanine()], archaludon, [new index_1.Move(gen, 'Earthquake'), new index_1.Move(gen, 'Rock Slide')], field());
46
+ expect(multiResult.results[0].damage).toEqual([32, 32, 32, 32, 32, 32, 32, 32, 36, 36, 36, 36, 36, 36, 36, 38]);
47
+ expect(multiResult.results[1].damage).toEqual([4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]);
48
+ });
49
+ describe('KO chance accounts for the rising boost across turns', function () {
50
+ var bulkyEvs = { hp: 252, def: 252, spd: 4 };
51
+ test('Stamina survives longer than the same bulk without Stamina', function () {
52
+ var stamina = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina', evs: bulkyEvs });
53
+ var sturdy = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Sturdy', evs: bulkyEvs });
54
+ var withStamina = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], stamina, earthquakeAndRockSlide(), field());
55
+ var withoutStamina = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], sturdy, earthquakeAndRockSlide(), field());
56
+ expect(withStamina.getHKO()).toBe('70.8% chance to 3HKO');
57
+ expect(withoutStamina.getHKO()).toBe('guaranteed 2HKO');
58
+ });
59
+ test('cumulative damage per turn decreases as the boost rises', function () {
60
+ var stamina = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina', evs: bulkyEvs });
61
+ var multiResult = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], stamina, earthquakeAndRockSlide(), field());
62
+ var cumulative = [1, 2, 3, 4].map(function (turn) { return multiResult.damageWithRemainingUntilTurn(turn, 15); });
63
+ expect(cumulative).toEqual([118, 179, 197, 197]);
64
+ });
65
+ test('a pre-existing Def boost shifts the whole Stamina sequence upward', function () {
66
+ var at1 = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina', evs: bulkyEvs });
67
+ at1.boosts.def = 1;
68
+ var multiResult = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], at1, earthquakeAndRockSlide(), field());
69
+ expect(multiResult.getHKO()).toBe('0.1% chance to 4HKO');
70
+ expect([1, 2, 3, 4].map(function (turn) { return multiResult.damageWithRemainingUntilTurn(turn, 15); })).toEqual([80, 132, 167, 197]);
71
+ });
72
+ test('a pre-existing Def debuff makes the defender frailer', function () {
73
+ var atNeg = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina', evs: bulkyEvs });
74
+ atNeg.boosts.def = -1;
75
+ var multiResult = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], atNeg, earthquakeAndRockSlide(), field());
76
+ expect(multiResult.getHKO()).toBe('guaranteed 2HKO');
77
+ });
78
+ test('the simulated turn-1 damage matches the single-turn combined calc when starting boosted', function () {
79
+ var at1 = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina', evs: bulkyEvs });
80
+ at1.boosts.def = 1;
81
+ var multiResult = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], at1, earthquakeAndRockSlide(), field());
82
+ var singleTurnMax = multiResult.results[0].damage[15] +
83
+ multiResult.results[1].damage[15];
84
+ expect(multiResult.damageWithRemainingUntilTurn(1, 15)).toBe(singleTurnMax);
85
+ });
86
+ });
87
+ describe('type-resist berry is only consumed on the first matching hit', function () {
88
+ var bulkyEvs = { hp: 252, def: 252, spd: 4 };
89
+ test('Shuca Berry halves the Ground hit only on turn 1, full damage afterward', function () {
90
+ var archaludon = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina', item: 'Shuca Berry', evs: bulkyEvs });
91
+ var multiResult = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
92
+ expect([1, 2, 3, 4].map(function (turn) { return multiResult.damageWithRemainingUntilTurn(turn, 15); })).toEqual([63, 124, 166, 197]);
93
+ expect(multiResult.getHKO()).toBe('0.1% chance to 4HKO');
94
+ });
95
+ test('Shuca Berry deals more cumulative damage than if it kept resisting every turn', function () {
96
+ var archaludon = new index_1.Pokemon(gen, 'Archaludon', { level: 50, ability: 'Stamina', item: 'Shuca Berry', evs: bulkyEvs });
97
+ var multiResult = (0, index_1.calculateMulti)(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
98
+ var turn2 = multiResult.damageWithRemainingUntilTurn(2, 15) - multiResult.damageWithRemainingUntilTurn(1, 15);
99
+ var turn1Ground = multiResult.results[0].damage[15];
100
+ expect(turn2).toBeGreaterThan(turn1Ground);
101
+ });
102
+ });
103
+ });
104
+ //# sourceMappingURL=stamina-multicalc.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stamina-multicalc.test.js","sourceRoot":"","sources":["../../src/test/stamina-multicalc.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robsonbittencourt/calc",
3
- "version": "0.11.16",
3
+ "version": "0.11.18",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "unpkg": "dist/production.min.js",
@@ -104,7 +104,7 @@ export function calculateChampions(
104
104
  'Armor Tail', 'Aroma Veil', 'Battle Armor', 'Big Pecks',
105
105
  'Bulletproof', 'Clear Body', 'Contrary', 'Damp',
106
106
  'Disguise', 'Dry Skin', 'Earth Eater', 'Filter',
107
- 'Flash Fire', 'Flower Veil', 'Friend Guard', 'Fur Coat',
107
+ 'Flash Fire', 'Flower Veil', 'Fluffy', 'Friend Guard', 'Fur Coat',
108
108
  'Heatproof', 'Heavy Metal', 'Hyper Cutter', 'Illuminate',
109
109
  'Immunity', 'Inner Focus', 'Insomnia', 'Keen Eye',
110
110
  'Leaf Guard', 'Levitate', 'Light Metal', 'Lightning Rod',
@@ -1095,6 +1095,11 @@ export function calculateFinalModsChampions(
1095
1095
  desc.defenderAbility = defender.ability;
1096
1096
  }
1097
1097
 
1098
+ if (defender.hasAbility('Fluffy') && move.flags.contact && !attacker.hasAbility('Long Reach')) {
1099
+ finalMods.push(2048);
1100
+ desc.defenderAbility = defender.ability;
1101
+ }
1102
+
1098
1103
  if (defender.hasAbility('Solid Rock', 'Filter') && typeEffectiveness > 1) {
1099
1104
  finalMods.push(3072);
1100
1105
  desc.defenderAbility = defender.ability;
@@ -1105,6 +1110,11 @@ export function calculateFinalModsChampions(
1105
1110
  desc.isFriendGuard = true;
1106
1111
  }
1107
1112
 
1113
+ if (defender.hasAbility('Fluffy') && move.hasType('Fire')) {
1114
+ finalMods.push(8192);
1115
+ desc.defenderAbility = defender.ability;
1116
+ }
1117
+
1108
1118
  if (attacker.hasItem('Expert Belt') && typeEffectiveness > 1) {
1109
1119
  finalMods.push(4915);
1110
1120
  desc.attackerItem = attacker.item;
@@ -15,6 +15,9 @@ import {
15
15
  serializeEndOfTurnTexts,
16
16
  } from './desc';
17
17
  import {Move} from './move';
18
+ import {calculate} from './calc';
19
+ import {getModifiedStat} from './mechanics/util';
20
+ import {getBerryResistType} from './items';
18
21
 
19
22
  export class MultiResult {
20
23
  defender: Pokemon;
@@ -97,12 +100,24 @@ export class MultiResult {
97
100
  return withoutBerry !== undefined ? sumDamage(withoutBerry) : null;
98
101
  });
99
102
  const hasTypeBerry = damagesWithoutBerryAtIndex.some(d => d !== null);
103
+ const hasStamina = this.hasStaminaDefender();
104
+ let staminaBoost = hasStamina ? this.initialDefBoost() : 0;
105
+ let staminaTypeBerryAvailable = true;
100
106
 
101
107
  for (let i = 1; i <= 10; i++) {
102
108
  let turnValue = 0;
103
- const turnDamages = i === 1 || !hasTypeBerry
104
- ? damagesAtIndex
105
- : damagesWithoutBerryAtIndex.map((d, idx) => d ?? damagesAtIndex[idx]);
109
+ let turnDamages: number[];
110
+
111
+ if (hasStamina) {
112
+ const turn = this.staminaTurnDamages(staminaBoost, rollIndex, staminaTypeBerryAvailable);
113
+ turnDamages = turn.damages;
114
+ staminaBoost = turn.nextBoost;
115
+ staminaTypeBerryAvailable = turn.typeBerryAvailable;
116
+ } else {
117
+ turnDamages = i === 1 || !hasTypeBerry
118
+ ? damagesAtIndex
119
+ : damagesWithoutBerryAtIndex.map((d, idx) => d ?? damagesAtIndex[idx]);
120
+ }
106
121
 
107
122
  for (const dmg of turnDamages) {
108
123
  currentHP -= dmg;
@@ -163,18 +178,28 @@ export class MultiResult {
163
178
 
164
179
  const rowsPerTurn = baseDamages.length;
165
180
  const toxicCounter = target.status === 'tox' ? target.toxicCounter : 0;
181
+ const hasStamina = this.hasStaminaDefender();
182
+ const allStaminaDamages = hasStamina ? this.staminaHitDamages(9) : [];
166
183
 
167
184
  for (let i = 1; i <= 9; i++) {
168
- const currentDamages: number[][] = [];
169
185
  const currentBerryRecovery: number[] = [];
170
186
  const currentBerryThreshold: number[] = [];
171
187
 
172
188
  for (let j = 0; j < i; j++) {
173
- currentDamages.push(...baseDamages);
174
189
  currentBerryRecovery.push(...baseBerryRecovery);
175
190
  currentBerryThreshold.push(...baseBerryThreshold);
176
191
  }
177
192
 
193
+ const currentDamages: number[][] = hasStamina
194
+ ? allStaminaDamages.slice(0, i * rowsPerTurn)
195
+ : [];
196
+
197
+ if (!hasStamina) {
198
+ for (let j = 0; j < i; j++) {
199
+ currentDamages.push(...baseDamages);
200
+ }
201
+ }
202
+
178
203
  const result = computeMultiHitKOChance(
179
204
  currentDamages,
180
205
  target.curHP(),
@@ -269,8 +294,16 @@ export class MultiResult {
269
294
  const {min: totalMin, max: totalMax} = this.range();
270
295
  const {min: minPercent, max: maxPercent} = this.rangePercentage();
271
296
 
297
+ const staminaText = this.hasStaminaDefender()
298
+ ? ' (Stamina considered)'
299
+ : '';
300
+ const defenderNameAndDamageWithNote = defenderNameAndDamageString.replace(
301
+ `${resultOne.defender.name}:`,
302
+ `${resultOne.defender.name}${staminaText}:`,
303
+ );
304
+
272
305
  const defenderNameAndDamage = this.updateDefenderDamageText(
273
- defenderNameAndDamageString,
306
+ defenderNameAndDamageWithNote,
274
307
  totalMin,
275
308
  totalMax,
276
309
  minPercent,
@@ -295,7 +328,7 @@ export class MultiResult {
295
328
 
296
329
  return (
297
330
  `${attackerDescription} AND ${secondAttackerDescritption}` +
298
- ` vs. ${defenderBulk} ${tera}${defenderNameAndDamage}`
331
+ ` vs. ${defenderBulk} ${tera}${defenderNameAndDamage}${staminaText}`
299
332
  );
300
333
  } catch (e) {
301
334
  return (
@@ -317,6 +350,111 @@ export class MultiResult {
317
350
  return hp - remainingHp;
318
351
  }
319
352
 
353
+ private hasStaminaDefender(): boolean {
354
+ return this.defender.hasAbility('Stamina');
355
+ }
356
+
357
+ private initialDefBoost(): number {
358
+ return this.defender.boosts.def ?? 0;
359
+ }
360
+
361
+ private recomputeDamageCache = new Map<string, number[][]>();
362
+
363
+ private consumesTypeBerry(result: Result): boolean {
364
+ const berryType = getBerryResistType(this.defender.item);
365
+
366
+ return berryType !== undefined && result.move.hasType(berryType);
367
+ }
368
+
369
+ private recomputeDamageAtBoost(
370
+ resultIndex: number,
371
+ defBoost: number,
372
+ typeBerryAvailable = true,
373
+ ): number[][] {
374
+ const result = this.results[resultIndex];
375
+ const boost = Math.max(-6, Math.min(defBoost, 6));
376
+ const cacheKey = `${resultIndex}:${boost}:${typeBerryAvailable ? 1 : 0}`;
377
+ const cached = this.recomputeDamageCache.get(cacheKey);
378
+
379
+ if (cached) return cached;
380
+
381
+ const defender = this.defender.clone();
382
+ defender.boosts.def = boost;
383
+ defender.stats.def = getModifiedStat(
384
+ defender.rawStats.def,
385
+ defender.boosts.def,
386
+ result.gen,
387
+ );
388
+
389
+ if (!typeBerryAvailable) {
390
+ defender.item = undefined;
391
+ }
392
+
393
+ const recomputed = calculate(
394
+ result.gen,
395
+ result.attacker,
396
+ defender,
397
+ result.move,
398
+ result.field,
399
+ );
400
+
401
+ const subArrays = extractDamageSubArrays(recomputed.damage);
402
+ this.recomputeDamageCache.set(cacheKey, subArrays);
403
+
404
+ return subArrays;
405
+ }
406
+
407
+ private staminaTurnDamages(
408
+ startBoost: number,
409
+ rollIndex: number,
410
+ typeBerryAvailable: boolean,
411
+ ): {damages: number[]; nextBoost: number; typeBerryAvailable: boolean} {
412
+ const damages: number[] = [];
413
+ let boost = startBoost;
414
+ let berryAvailable = typeBerryAvailable;
415
+
416
+ for (let idx = 0; idx < this.results.length; idx++) {
417
+ const subArrays = this.recomputeDamageAtBoost(idx, boost, berryAvailable);
418
+
419
+ const summed = subArrays.reduce(
420
+ (acc, sub) => acc + sub[Math.min(rollIndex, sub.length - 1)],
421
+ 0,
422
+ );
423
+ damages.push(summed);
424
+ boost = Math.min(boost + subArrays.length, 6);
425
+
426
+ if (berryAvailable && this.consumesTypeBerry(this.results[idx])) {
427
+ berryAvailable = false;
428
+ }
429
+ }
430
+
431
+ return {damages, nextBoost: boost, typeBerryAvailable: berryAvailable};
432
+ }
433
+
434
+ private staminaHitDamages(turns: number): number[][] {
435
+ const damages: number[][] = [];
436
+ let boost = this.initialDefBoost();
437
+ let berryAvailable = true;
438
+
439
+ for (let turn = 0; turn < turns; turn++) {
440
+ for (let idx = 0; idx < this.results.length; idx++) {
441
+ const subArrays = this.recomputeDamageAtBoost(idx, boost, berryAvailable);
442
+ const consumesBerry = berryAvailable && this.consumesTypeBerry(this.results[idx]);
443
+
444
+ subArrays.forEach((sub) => {
445
+ damages.push(sub);
446
+ boost = Math.min(boost + 1, 6);
447
+ });
448
+
449
+ if (consumesBerry) {
450
+ berryAvailable = false;
451
+ }
452
+ }
453
+ }
454
+
455
+ return damages;
456
+ }
457
+
320
458
  private mergeBulkStats(
321
459
  resultOne: Result,
322
460
  resultTwo: Result,
package/src/multicalc.ts CHANGED
@@ -9,6 +9,7 @@ import {
9
9
  getBerryRecovery,
10
10
  getEndOfTurn,
11
11
  } from './desc';
12
+ import {getModifiedStat} from './mechanics/util';
12
13
 
13
14
  import {MultiResult} from './multi-result';
14
15
 
@@ -19,6 +20,17 @@ function updateDefenderHP(defender: Pokemon, nextHP: number, maxHP: number) {
19
20
  );
20
21
  }
21
22
 
23
+ export function applyStaminaAfterHit(defender: Pokemon, gen: Generation) {
24
+ if (!defender.hasAbility('Stamina')) return;
25
+
26
+ defender.boosts.def = Math.min(defender.boosts.def + 1, 6);
27
+ defender.stats.def = getModifiedStat(
28
+ defender.rawStats.def,
29
+ defender.boosts.def,
30
+ gen,
31
+ );
32
+ }
33
+
22
34
  export function calculateMulti(
23
35
  gen: Generation,
24
36
  attackers: Pokemon[],
@@ -115,6 +127,8 @@ export function calculateMulti(
115
127
  berryRecoveries.push(initialBerryData.recovery);
116
128
  berryThresholds.push(initialBerryData.threshold);
117
129
  }
130
+
131
+ applyStaminaAfterHit(currentDefender, gen);
118
132
  }
119
133
 
120
134
  let koChance = {chance: 0, n: 0, text: '', berryConsumed: false};
@@ -0,0 +1,147 @@
1
+ /* eslint-disable max-len */
2
+ import {Generations, calculateMulti, Pokemon, Move, Field} from '../index';
3
+
4
+ describe('Stamina combined damage', () => {
5
+ const gen = Generations.get(9);
6
+ const field = () => new Field({gameType: 'Doubles'});
7
+
8
+ const garchomp = () =>
9
+ new Pokemon(gen, 'Garchomp', {level: 50, nature: 'Adamant', evs: {atk: 252, spe: 252}});
10
+ const arcanine = () =>
11
+ new Pokemon(gen, 'Arcanine', {level: 50, nature: 'Adamant', evs: {atk: 252, spe: 252}});
12
+
13
+ const earthquakeAndRockSlide = () => [new Move(gen, 'Earthquake'), new Move(gen, 'Rock Slide')];
14
+
15
+ test('second attacker hits the Stamina defender at Def +1 in a single turn', () => {
16
+ const archaludon = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina'});
17
+
18
+ const multiResult = calculateMulti(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
19
+
20
+ expect(multiResult.results[0].damage).toEqual([114, 114, 116, 116, 120, 120, 120, 122, 122, 126, 126, 128, 128, 132, 132, 134]);
21
+ expect(multiResult.results[1].damage).toEqual([8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10]);
22
+ expect(multiResult.desc()).toBe('252+ Atk Garchomp Earthquake AND 252+ Atk Arcanine Rock Slide vs. 0 HP / 0 Def Archaludon (Stamina considered): 122-144 (73.9 - 87.2%) -- guaranteed 2HKO');
23
+ });
24
+
25
+ test('does not add the Stamina note when the defender does not have Stamina', () => {
26
+ const archaludon = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Sturdy'});
27
+
28
+ const multiResult = calculateMulti(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
29
+
30
+ expect(multiResult.desc()).not.toContain('Stamina considered');
31
+ });
32
+
33
+ test('does not raise Def beyond +6', () => {
34
+ const archaludon = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina'});
35
+ archaludon.boosts.def = 6;
36
+
37
+ const multiResult = calculateMulti(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
38
+
39
+ expect(multiResult.results[0].damage).toEqual([30, 30, 30, 30, 30, 30, 30, 32, 32, 32, 32, 32, 32, 32, 32, 36]);
40
+ expect(multiResult.results[1].damage).toEqual([3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4]);
41
+ });
42
+
43
+ test('Unaware attacker ignores the boost for its own hit but still raises it for the next attacker', () => {
44
+ const clodsire = new Pokemon(gen, 'Clodsire', {level: 50, ability: 'Unaware', nature: 'Adamant', evs: {atk: 252}});
45
+
46
+ const archaludon = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina'});
47
+ archaludon.boosts.def = 3;
48
+
49
+ const multiResult = calculateMulti(gen, [clodsire, arcanine()], archaludon, [new Move(gen, 'Earthquake'), new Move(gen, 'Rock Slide')], field());
50
+
51
+ expect(multiResult.results[0].damage).toEqual([78, 78, 78, 80, 80, 80, 84, 84, 84, 86, 86, 86, 90, 90, 90, 92]);
52
+ expect(multiResult.results[1].damage).toEqual([4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]);
53
+ });
54
+
55
+ test('a non-Unaware first attacker is reduced by the pre-existing boost (control for the Unaware case)', () => {
56
+ const clodsire = new Pokemon(gen, 'Clodsire', {level: 50, ability: 'Water Absorb', nature: 'Adamant', evs: {atk: 252}});
57
+
58
+ const archaludon = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina'});
59
+ archaludon.boosts.def = 3;
60
+
61
+ const multiResult = calculateMulti(gen, [clodsire, arcanine()], archaludon, [new Move(gen, 'Earthquake'), new Move(gen, 'Rock Slide')], field());
62
+
63
+ expect(multiResult.results[0].damage).toEqual([32, 32, 32, 32, 32, 32, 32, 32, 36, 36, 36, 36, 36, 36, 36, 38]);
64
+ expect(multiResult.results[1].damage).toEqual([4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]);
65
+ });
66
+
67
+ describe('KO chance accounts for the rising boost across turns', () => {
68
+ const bulkyEvs = {hp: 252, def: 252, spd: 4};
69
+
70
+ test('Stamina survives longer than the same bulk without Stamina', () => {
71
+ const stamina = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina', evs: bulkyEvs});
72
+ const sturdy = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Sturdy', evs: bulkyEvs});
73
+
74
+ const withStamina = calculateMulti(gen, [garchomp(), arcanine()], stamina, earthquakeAndRockSlide(), field());
75
+ const withoutStamina = calculateMulti(gen, [garchomp(), arcanine()], sturdy, earthquakeAndRockSlide(), field());
76
+
77
+ expect(withStamina.getHKO()).toBe('70.8% chance to 3HKO');
78
+ expect(withoutStamina.getHKO()).toBe('guaranteed 2HKO');
79
+ });
80
+
81
+ test('cumulative damage per turn decreases as the boost rises', () => {
82
+ const stamina = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina', evs: bulkyEvs});
83
+
84
+ const multiResult = calculateMulti(gen, [garchomp(), arcanine()], stamina, earthquakeAndRockSlide(), field());
85
+
86
+ const cumulative = [1, 2, 3, 4].map(turn => multiResult.damageWithRemainingUntilTurn(turn, 15));
87
+
88
+ expect(cumulative).toEqual([118, 179, 197, 197]);
89
+ });
90
+
91
+ test('a pre-existing Def boost shifts the whole Stamina sequence upward', () => {
92
+ const at1 = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina', evs: bulkyEvs});
93
+ at1.boosts.def = 1;
94
+
95
+ const multiResult = calculateMulti(gen, [garchomp(), arcanine()], at1, earthquakeAndRockSlide(), field());
96
+
97
+ expect(multiResult.getHKO()).toBe('0.1% chance to 4HKO');
98
+ expect([1, 2, 3, 4].map(turn => multiResult.damageWithRemainingUntilTurn(turn, 15))).toEqual([80, 132, 167, 197]);
99
+ });
100
+
101
+ test('a pre-existing Def debuff makes the defender frailer', () => {
102
+ const atNeg = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina', evs: bulkyEvs});
103
+ atNeg.boosts.def = -1;
104
+
105
+ const multiResult = calculateMulti(gen, [garchomp(), arcanine()], atNeg, earthquakeAndRockSlide(), field());
106
+
107
+ expect(multiResult.getHKO()).toBe('guaranteed 2HKO');
108
+ });
109
+
110
+ test('the simulated turn-1 damage matches the single-turn combined calc when starting boosted', () => {
111
+ const at1 = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina', evs: bulkyEvs});
112
+ at1.boosts.def = 1;
113
+
114
+ const multiResult = calculateMulti(gen, [garchomp(), arcanine()], at1, earthquakeAndRockSlide(), field());
115
+
116
+ const singleTurnMax =
117
+ (multiResult.results[0].damage as number[])[15] +
118
+ (multiResult.results[1].damage as number[])[15];
119
+
120
+ expect(multiResult.damageWithRemainingUntilTurn(1, 15)).toBe(singleTurnMax);
121
+ });
122
+ });
123
+
124
+ describe('type-resist berry is only consumed on the first matching hit', () => {
125
+ const bulkyEvs = {hp: 252, def: 252, spd: 4};
126
+
127
+ test('Shuca Berry halves the Ground hit only on turn 1, full damage afterward', () => {
128
+ const archaludon = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina', item: 'Shuca Berry', evs: bulkyEvs});
129
+
130
+ const multiResult = calculateMulti(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
131
+
132
+ expect([1, 2, 3, 4].map(turn => multiResult.damageWithRemainingUntilTurn(turn, 15))).toEqual([63, 124, 166, 197]);
133
+ expect(multiResult.getHKO()).toBe('0.1% chance to 4HKO');
134
+ });
135
+
136
+ test('Shuca Berry deals more cumulative damage than if it kept resisting every turn', () => {
137
+ const archaludon = new Pokemon(gen, 'Archaludon', {level: 50, ability: 'Stamina', item: 'Shuca Berry', evs: bulkyEvs});
138
+
139
+ const multiResult = calculateMulti(gen, [garchomp(), arcanine()], archaludon, earthquakeAndRockSlide(), field());
140
+
141
+ const turn2 = multiResult.damageWithRemainingUntilTurn(2, 15) - multiResult.damageWithRemainingUntilTurn(1, 15);
142
+ const turn1Ground = (multiResult.results[0].damage as number[])[15];
143
+
144
+ expect(turn2).toBeGreaterThan(turn1Ground);
145
+ });
146
+ });
147
+ });