Push all changes

- Make sure every file is 100% up to date
- Label phases with regions so I can see where phases are in the sidebar
This commit is contained in:
RedstonewolfX 2024-07-14 16:17:36 -04:00
parent fbff640e2d
commit 2e39c15df5
3 changed files with 523 additions and 4 deletions

View File

@ -4717,7 +4717,7 @@ export class AddTypeAttr extends MoveEffectAttr {
} }
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
const types = target.getTypes().slice(0, 2).filter(t => t !== Type.UNKNOWN); // TODO: Figure out some way to actually check if another version of this effect is already applied const types = target.getTypes().slice(0, 2).filter(t => t !== Type.UNKNOWN).map(t => t as Type); // TODO: Figure out some way to actually check if another version of this effect is already applied
types.push(this.type); types.push(this.type);
target.summonData.types = types; target.summonData.types = types;
target.updateInfo(); target.updateInfo();

File diff suppressed because it is too large Load Diff

View File

@ -25,6 +25,7 @@ import { BattlerTagType } from "#app/enums/battler-tag-type.js";
import { TempBattleStat } from "#app/data/temp-battle-stat.js"; import { TempBattleStat } from "#app/data/temp-battle-stat.js";
import { StatusEffect } from "#app/data/status-effect.js"; import { StatusEffect } from "#app/data/status-effect.js";
import { BattleStat } from "#app/data/battle-stat.js"; import { BattleStat } from "#app/data/battle-stat.js";
import { PokemonMultiHitModifierType } from "#app/modifier/modifier-type.js";
export default class FightUiHandler extends UiHandler { export default class FightUiHandler extends UiHandler {
private movesContainer: Phaser.GameObjects.Container; private movesContainer: Phaser.GameObjects.Container;
@ -661,6 +662,13 @@ export default class FightUiHandler extends UiHandler {
maxHits = minHits maxHits = minHits
} }
} }
var h = user.getHeldItems()
for (var i = 0; i < h.length; i++) {
if (h[i].type instanceof PokemonMultiHitModifierType) {
minHits += h[i].getStackCount()
maxHits += h[i].getStackCount()
}
}
dmgLow = out[0] * minHits dmgLow = out[0] * minHits
dmgHigh = out[1] * maxHits dmgHigh = out[1] * maxHits
/* /*
@ -1130,8 +1138,42 @@ export function calcDamage(scene: BattleScene, user: PlayerPokemon, target: Poke
// dmgLow = (((2*user.level/5 + 2) * power * myAtk / theirDef)/50 + 2) * 0.85 * modifiers // dmgLow = (((2*user.level/5 + 2) * power * myAtk / theirDef)/50 + 2) * 0.85 * modifiers
// dmgHigh = (((2*user.level/5 + 2) * power * myAtkC / theirDefC)/50 + 2) * 1.5 * modifiers // dmgHigh = (((2*user.level/5 + 2) * power * myAtkC / theirDefC)/50 + 2) * 1.5 * modifiers
var out = this.simulateAttack(scene, user, target, move.getMove()) var out = this.simulateAttack(scene, user, target, move.getMove())
dmgLow = out[0] var minHits = 1
dmgHigh = out[1] var maxHits = 1
var mh = move.getMove().getAttrs(MoveData.MultiHitAttr)
for (var i = 0; i < mh.length; i++) {
var mh2 = mh[i] as MoveData.MultiHitAttr
switch (mh2.multiHitType) {
case MoveData.MultiHitType._2:
minHits = 2;
maxHits = 2;
case MoveData.MultiHitType._2_TO_5:
minHits = 2;
maxHits = 5;
case MoveData.MultiHitType._3:
minHits = 3;
maxHits = 3;
case MoveData.MultiHitType._10:
minHits = 10;
maxHits = 10;
case MoveData.MultiHitType.BEAT_UP:
const party = user.isPlayer() ? user.scene.getParty() : user.scene.getEnemyParty();
// No status means the ally pokemon can contribute to Beat Up
minHits = party.reduce((total, pokemon) => {
return total + (pokemon.id === user.id ? 1 : pokemon?.status && pokemon.status.effect !== StatusEffect.NONE ? 0 : 1);
}, 0);
maxHits = minHits
}
}
var h = user.getHeldItems()
for (var i = 0; i < h.length; i++) {
if (h[i].type instanceof PokemonMultiHitModifierType) {
minHits += h[i].getStackCount()
maxHits += h[i].getStackCount()
}
}
dmgLow = out[0] * minHits
dmgHigh = out[1] * maxHits
/* /*
if (user.hasAbility(Abilities.PARENTAL_BOND)) { if (user.hasAbility(Abilities.PARENTAL_BOND)) {
// Second hit deals 0.25x damage // Second hit deals 0.25x damage