mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-17 22:02:18 +02:00
Made proc chance a parameter rather than hard coding
This commit is contained in:
parent
3e79bb3fe7
commit
3da8b65777
@ -1135,19 +1135,19 @@ export class PostAttackAbAttr extends AbAttr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class PostAttackStealHeldItemAbAttr extends PostAttackAbAttr {
|
export class PostAttackStealHeldItemAbAttr extends PostAttackAbAttr {
|
||||||
private condition: PokemonAttackCondition;
|
private chance: integer;
|
||||||
|
|
||||||
constructor(condition?: PokemonAttackCondition) {
|
constructor(chance?: integer) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.condition = condition;
|
this.chance = chance;
|
||||||
}
|
}
|
||||||
|
|
||||||
applyPostAttack(pokemon: Pokemon, passive: boolean, defender: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): Promise<boolean> {
|
applyPostAttack(pokemon: Pokemon, passive: boolean, defender: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): Promise<boolean> {
|
||||||
return new Promise<boolean>(resolve => {
|
return new Promise<boolean>(resolve => {
|
||||||
if (hitResult < HitResult.NO_EFFECT && (!this.condition || this.condition(pokemon, defender, move.getMove()))) {
|
if (hitResult < HitResult.NO_EFFECT) {
|
||||||
const heldItems = this.getTargetHeldItems(defender).filter(i => i.getTransferrable(false));
|
const heldItems = this.getTargetHeldItems(defender).filter(i => i.getTransferrable(false));
|
||||||
if (heldItems.length && !Utils.randSeedInt(3)) {
|
if (heldItems.length && Utils.randSeedInt(100) < this.chance) {
|
||||||
const stolenItem = heldItems[pokemon.randSeedInt(heldItems.length)];
|
const stolenItem = heldItems[pokemon.randSeedInt(heldItems.length)];
|
||||||
pokemon.scene.tryTransferHeldItemModifier(stolenItem, pokemon, false, false).then(success => {
|
pokemon.scene.tryTransferHeldItemModifier(stolenItem, pokemon, false, false).then(success => {
|
||||||
if (success)
|
if (success)
|
||||||
@ -1224,18 +1224,20 @@ export class PostAttackApplyBattlerTagAbAttr extends PostAttackAbAttr {
|
|||||||
|
|
||||||
export class PostDefendStealHeldItemAbAttr extends PostDefendAbAttr {
|
export class PostDefendStealHeldItemAbAttr extends PostDefendAbAttr {
|
||||||
private condition: PokemonDefendCondition;
|
private condition: PokemonDefendCondition;
|
||||||
|
private chance: integer; //Proc chance out of 100
|
||||||
|
|
||||||
constructor(condition?: PokemonDefendCondition) {
|
constructor(condition?: PokemonDefendCondition, chance?: integer) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.condition = condition;
|
this.condition = condition;
|
||||||
|
this.chance = chance;
|
||||||
}
|
}
|
||||||
|
|
||||||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): Promise<boolean> {
|
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): Promise<boolean> {
|
||||||
return new Promise<boolean>(resolve => {
|
return new Promise<boolean>(resolve => {
|
||||||
if (hitResult < HitResult.NO_EFFECT && (!this.condition || this.condition(pokemon, attacker, move.getMove()))) {
|
if (hitResult < HitResult.NO_EFFECT && (!this.condition || this.condition(pokemon, attacker, move.getMove()))) {
|
||||||
const heldItems = this.getTargetHeldItems(attacker).filter(i => i.getTransferrable(false));
|
const heldItems = this.getTargetHeldItems(attacker).filter(i => i.getTransferrable(false));
|
||||||
if (heldItems.length && Utils.randSeedInt(2)) {
|
if (heldItems.length && Utils.randSeedInt(100) < this.chance) {
|
||||||
const stolenItem = heldItems[pokemon.randSeedInt(heldItems.length)];
|
const stolenItem = heldItems[pokemon.randSeedInt(heldItems.length)];
|
||||||
pokemon.scene.tryTransferHeldItemModifier(stolenItem, pokemon, false, false).then(success => {
|
pokemon.scene.tryTransferHeldItemModifier(stolenItem, pokemon, false, false).then(success => {
|
||||||
if (success)
|
if (success)
|
||||||
@ -3357,7 +3359,7 @@ export function initAbilities() {
|
|||||||
new Ability(Abilities.BAD_DREAMS, 4)
|
new Ability(Abilities.BAD_DREAMS, 4)
|
||||||
.attr(PostTurnHurtIfSleepingAbAttr),
|
.attr(PostTurnHurtIfSleepingAbAttr),
|
||||||
new Ability(Abilities.PICKPOCKET, 5)
|
new Ability(Abilities.PICKPOCKET, 5)
|
||||||
.attr(PostDefendStealHeldItemAbAttr, (target, user, move) => move.hasFlag(MoveFlags.MAKES_CONTACT)),
|
.attr(PostDefendStealHeldItemAbAttr, (target, user, move) => move.hasFlag(MoveFlags.MAKES_CONTACT), 50),
|
||||||
new Ability(Abilities.SHEER_FORCE, 5)
|
new Ability(Abilities.SHEER_FORCE, 5)
|
||||||
.unimplemented(),
|
.unimplemented(),
|
||||||
new Ability(Abilities.CONTRARY, 5)
|
new Ability(Abilities.CONTRARY, 5)
|
||||||
@ -3490,7 +3492,7 @@ export function initAbilities() {
|
|||||||
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.category === MoveCategory.PHYSICAL, 0.5)
|
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.category === MoveCategory.PHYSICAL, 0.5)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
new Ability(Abilities.MAGICIAN, 6)
|
new Ability(Abilities.MAGICIAN, 6)
|
||||||
.attr(PostAttackStealHeldItemAbAttr),
|
.attr(PostAttackStealHeldItemAbAttr, 30),
|
||||||
new Ability(Abilities.BULLETPROOF, 6)
|
new Ability(Abilities.BULLETPROOF, 6)
|
||||||
.attr(MoveImmunityAbAttr, (pokemon, attacker, move) => pokemon !== attacker && move.getMove().hasFlag(MoveFlags.BALLBOMB_MOVE))
|
.attr(MoveImmunityAbAttr, (pokemon, attacker, move) => pokemon !== attacker && move.getMove().hasFlag(MoveFlags.BALLBOMB_MOVE))
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
|
Loading…
Reference in New Issue
Block a user