Update Feint move logic
parent
be122f4f08
commit
00d985c9cf
|
@ -1518,7 +1518,7 @@ export class AddBattlerTagAttr extends MoveEffectAttr {
|
||||||
: null;
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
getTagTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||||
switch (this.tagType) {
|
switch (this.tagType) {
|
||||||
case BattlerTagType.RECHARGING:
|
case BattlerTagType.RECHARGING:
|
||||||
return -16;
|
return -16;
|
||||||
|
@ -1566,12 +1566,19 @@ export class AddBattlerTagAttr extends MoveEffectAttr {
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||||
|
let chance = this.getTagChance(user, target, move);
|
||||||
|
if (chance < 0)
|
||||||
|
chance = 100;
|
||||||
|
return Math.floor(this.getTagTargetBenefitScore(user, target, move) * (chance / 100));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class LapseBattlerTagAttr extends MoveEffectAttr {
|
export class LapseBattlerTagAttr extends MoveEffectAttr {
|
||||||
public tagTypes: BattlerTagType[];
|
public tagTypes: BattlerTagType[];
|
||||||
|
|
||||||
constructor(tagTypes: BattlerTagType[], selfTarget?: boolean) {
|
constructor(tagTypes: BattlerTagType[], selfTarget: boolean = false) {
|
||||||
super(selfTarget);
|
super(selfTarget);
|
||||||
|
|
||||||
this.tagTypes = tagTypes;
|
this.tagTypes = tagTypes;
|
||||||
|
@ -1588,6 +1595,27 @@ export class LapseBattlerTagAttr extends MoveEffectAttr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export class RemoveBattlerTagAttr extends MoveEffectAttr {
|
||||||
|
public tagTypes: BattlerTagType[];
|
||||||
|
|
||||||
|
constructor(tagTypes: BattlerTagType[], selfTarget: boolean = false) {
|
||||||
|
super(selfTarget);
|
||||||
|
|
||||||
|
this.tagTypes = tagTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||||
|
if (!super.apply(user, target, move, args))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
for (let tagType of this.tagTypes)
|
||||||
|
(this.selfTarget ? user : target).removeTag(tagType);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class FlinchAttr extends AddBattlerTagAttr {
|
export class FlinchAttr extends AddBattlerTagAttr {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(BattlerTagType.FLINCHED, false);
|
super(BattlerTagType.FLINCHED, false);
|
||||||
|
@ -3064,7 +3092,7 @@ export function initMoves() {
|
||||||
new AttackMove(Moves.NATURAL_GIFT, "Natural Gift (N)", Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 15, -1, "The user draws power to attack by using its held Berry. The Berry determines the move's type and power.", -1, 0, 4)
|
new AttackMove(Moves.NATURAL_GIFT, "Natural Gift (N)", Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 15, -1, "The user draws power to attack by using its held Berry. The Berry determines the move's type and power.", -1, 0, 4)
|
||||||
.makesContact(false),
|
.makesContact(false),
|
||||||
new AttackMove(Moves.FEINT, "Feint", Type.NORMAL, MoveCategory.PHYSICAL, 30, 100, 10, -1, "This attack hits a target using a move such as Protect or Detect. This also lifts the effects of those moves.", -1, 2, 4)
|
new AttackMove(Moves.FEINT, "Feint", Type.NORMAL, MoveCategory.PHYSICAL, 30, 100, 10, -1, "This attack hits a target using a move such as Protect or Detect. This also lifts the effects of those moves.", -1, 2, 4)
|
||||||
.condition((user, target, move) => !!target.getTag(BattlerTagType.PROTECTED))
|
.attr(RemoveBattlerTagAttr, [ BattlerTagType.PROTECTED ])
|
||||||
.makesContact(false)
|
.makesContact(false)
|
||||||
.ignoresProtect(),
|
.ignoresProtect(),
|
||||||
new AttackMove(Moves.PLUCK, "Pluck (N)", Type.FLYING, MoveCategory.PHYSICAL, 60, 100, 20, -1, "The user pecks the target. If the target is holding a Berry, the user eats it and gains its effect.", -1, 0, 4),
|
new AttackMove(Moves.PLUCK, "Pluck (N)", Type.FLYING, MoveCategory.PHYSICAL, 60, 100, 20, -1, "The user pecks the target. If the target is holding a Berry, the user eats it and gains its effect.", -1, 0, 4),
|
||||||
|
|
|
@ -1262,6 +1262,17 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
removeTag(tagType: BattlerTagType): boolean {
|
||||||
|
const tags = this.summonData.tags;
|
||||||
|
const tag = tags.find(t => t.tagType === tagType);
|
||||||
|
if (tag) {
|
||||||
|
tag.turnCount = 0;
|
||||||
|
tag.onRemove(this);
|
||||||
|
tags.splice(tags.indexOf(tag), 1);
|
||||||
|
}
|
||||||
|
return !!tag;
|
||||||
|
}
|
||||||
|
|
||||||
removeTagsBySourceId(sourceId: integer): void {
|
removeTagsBySourceId(sourceId: integer): void {
|
||||||
const tags = this.summonData.tags;
|
const tags = this.summonData.tags;
|
||||||
tags.filter(t => t.sourceId === sourceId).forEach(t => {
|
tags.filter(t => t.sourceId === sourceId).forEach(t => {
|
||||||
|
|
Loading…
Reference in New Issue