summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortom-overton <tom.overton@outlook.com>2022-05-23 00:28:21 -0700
committerrafa_99 <raroma09@gmail.com>2022-05-23 22:14:34 +0100
commit1bde8497b6c921e034f90c5ca11b96944e19798c (patch)
tree05dcc4cca96d6672e0f0eb78aed5b3ed86e78ee5
parentbb4869ba672f0f57609ba79283c3ae91e5092769 (diff)
Read charge/recharge info from moves
-rw-r--r--src/com/sneed/pkrandom/constants/Gen1Constants.java11
-rw-r--r--src/com/sneed/pkrandom/constants/Gen2Constants.java22
-rw-r--r--src/com/sneed/pkrandom/constants/Gen3Constants.java30
-rw-r--r--src/com/sneed/pkrandom/constants/Gen4Constants.java21
-rwxr-xr-xsrc/com/sneed/pkrandom/pokemon/Move.java2
-rwxr-xr-xsrc/com/sneed/pkrandom/romhandlers/Gen1RomHandler.java9
-rwxr-xr-xsrc/com/sneed/pkrandom/romhandlers/Gen2RomHandler.java12
-rwxr-xr-xsrc/com/sneed/pkrandom/romhandlers/Gen3RomHandler.java21
-rwxr-xr-xsrc/com/sneed/pkrandom/romhandlers/Gen4RomHandler.java31
-rwxr-xr-xsrc/com/sneed/pkrandom/romhandlers/Gen5RomHandler.java2
-rw-r--r--src/com/sneed/pkrandom/romhandlers/Gen6RomHandler.java2
-rw-r--r--src/com/sneed/pkrandom/romhandlers/Gen7RomHandler.java2
12 files changed, 117 insertions, 48 deletions
diff --git a/src/com/sneed/pkrandom/constants/Gen1Constants.java b/src/com/sneed/pkrandom/constants/Gen1Constants.java
index 8b09c6d..3476103 100644
--- a/src/com/sneed/pkrandom/constants/Gen1Constants.java
+++ b/src/com/sneed/pkrandom/constants/Gen1Constants.java
@@ -74,11 +74,12 @@ public class Gen1Constants {
noDamageSpeMinusOneEffect = 20, noDamageAccuracyMinusOneEffect = 22, flinch10PercentEffect = 31,
noDamageSleepEffect = 32, damagePoison40PercentEffect = 33, damageBurn30PercentEffect = 34,
damageFreeze30PercentEffect = 35, damageParalyze30PercentEffect = 36, flinch30PercentEffect = 37,
- damageRecoilEffect = 48, noDamageConfusionEffect = 49, noDamageAtkPlusTwoEffect = 50,
- noDamageDefPlusTwoEffect = 51, noDamageSpePlusTwoEffect = 52, noDamageSpecialPlusTwoEffect = 53,
- noDamageDefMinusTwoEffect = 59, noDamagePoisonEffect = 66, noDamageParalyzeEffect = 67,
- damageAtkMinusOneEffect = 68, damageDefMinusOneEffect = 69, damageSpeMinusOneEffect = 70,
- damageSpecialMinusOneEffect = 71, damageConfusionEffect = 76, twineedleEffect = 77;
+ chargeEffect = 39, flyEffect = 43, damageRecoilEffect = 48, noDamageConfusionEffect = 49,
+ noDamageAtkPlusTwoEffect = 50, noDamageDefPlusTwoEffect = 51, noDamageSpePlusTwoEffect = 52,
+ noDamageSpecialPlusTwoEffect = 53, noDamageDefMinusTwoEffect = 59, noDamagePoisonEffect = 66,
+ noDamageParalyzeEffect = 67, damageAtkMinusOneEffect = 68, damageDefMinusOneEffect = 69,
+ damageSpeMinusOneEffect = 70, damageSpecialMinusOneEffect = 71, damageConfusionEffect = 76,
+ twineedleEffect = 77, hyperBeamEffect = 80;
// Taken from critical_hit_moves.asm; we could read this from the ROM, but it's easier to hardcode it.
public static final List<Integer> increasedCritMoves = Arrays.asList(Moves.karateChop, Moves.razorLeaf, Moves.crabhammer, Moves.slash);
diff --git a/src/com/sneed/pkrandom/constants/Gen2Constants.java b/src/com/sneed/pkrandom/constants/Gen2Constants.java
index 1f7aa71..4dde2bf 100644
--- a/src/com/sneed/pkrandom/constants/Gen2Constants.java
+++ b/src/com/sneed/pkrandom/constants/Gen2Constants.java
@@ -77,16 +77,18 @@ public class Gen2Constants {
noDamageDefPlusOneEffect = 11, noDamageSpAtkPlusOneEffect = 13, noDamageEvasionPlusOneEffect = 16,
noDamageAtkMinusOneEffect = 18, noDamageDefMinusOneEffect = 19, noDamageSpeMinusOneEffect = 20,
noDamageAccuracyMinusOneEffect = 23, noDamageEvasionMinusOneEffect = 24, flinchEffect = 31, toxicEffect = 33,
- bindingEffect = 42, damageRecoilEffect = 48, noDamageConfusionEffect = 49, noDamageAtkPlusTwoEffect = 50,
- noDamageDefPlusTwoEffect = 51, noDamageSpePlusTwoEffect = 52, noDamageSpDefPlusTwoEffect = 54,
- noDamageAtkMinusTwoEffect = 58, noDamageDefMinusTwoEffect = 59, noDamageSpeMinusTwoEffect = 60,
- noDamageSpDefMinusTwoEffect = 62, noDamagePoisonEffect = 66, noDamageParalyzeEffect = 67,
- damageAtkMinusOneEffect = 68, damageDefMinusOneEffect = 69, damageSpeMinusOneEffect = 70,
- damageSpDefMinusOneEffect = 72, damageAccuracyMinusOneEffect = 73, damageConfusionEffect = 76,
- twineedleEffect = 77, snoreEffect = 92, flailAndReversalEffect = 102, trappingEffect = 106,
- swaggerEffect = 118, damageBurnAndThawUserEffect = 125, damageUserDefPlusOneEffect = 138,
- damageUserAtkPlusOneEffect = 139, damageUserAllPlusOneEffect = 140, twisterEffect = 146,
- futureSightEffect = 148, stompEffect = 150, thunderEffect = 152, defenseCurlEffect = 156;
+ razorWindEffect = 39, bindingEffect = 42, damageRecoilEffect = 48, noDamageConfusionEffect = 49,
+ noDamageAtkPlusTwoEffect = 50, noDamageDefPlusTwoEffect = 51, noDamageSpePlusTwoEffect = 52,
+ noDamageSpDefPlusTwoEffect = 54, noDamageAtkMinusTwoEffect = 58, noDamageDefMinusTwoEffect = 59,
+ noDamageSpeMinusTwoEffect = 60, noDamageSpDefMinusTwoEffect = 62, noDamagePoisonEffect = 66,
+ noDamageParalyzeEffect = 67, damageAtkMinusOneEffect = 68, damageDefMinusOneEffect = 69,
+ damageSpeMinusOneEffect = 70, damageSpDefMinusOneEffect = 72, damageAccuracyMinusOneEffect = 73,
+ skyAttackEffect = 75, damageConfusionEffect = 76, twineedleEffect = 77, hyperBeamEffect = 80,
+ snoreEffect = 92, flailAndReversalEffect = 102, trappingEffect = 106, swaggerEffect = 118,
+ damageBurnAndThawUserEffect = 125, damageUserDefPlusOneEffect = 138, damageUserAtkPlusOneEffect = 139,
+ damageUserAllPlusOneEffect = 140, skullBashEffect = 145, twisterEffect = 146, futureSightEffect = 148,
+ stompEffect = 150, solarbeamEffect = 151, thunderEffect = 152, semiInvulnerableEffect = 155,
+ defenseCurlEffect = 156;
// Taken from critical_hit_moves.asm; we could read this from the ROM, but it's easier to hardcode it.
public static final List<Integer> increasedCritMoves = Arrays.asList(Moves.karateChop, Moves.razorWind, Moves.razorLeaf,
diff --git a/src/com/sneed/pkrandom/constants/Gen3Constants.java b/src/com/sneed/pkrandom/constants/Gen3Constants.java
index 20af00d..c56a206 100644
--- a/src/com/sneed/pkrandom/constants/Gen3Constants.java
+++ b/src/com/sneed/pkrandom/constants/Gen3Constants.java
@@ -190,20 +190,22 @@ public class Gen3Constants {
noDamageDefPlusOneEffect = 11, noDamageSpAtkPlusOneEffect = 13, noDamageEvasionPlusOneEffect = 16,
noDamageAtkMinusOneEffect = 18, noDamageDefMinusOneEffect = 19, noDamageSpeMinusOneEffect = 20,
noDamageAccuracyMinusOneEffect = 23, noDamageEvasionMinusOneEffect = 24, flinchEffect = 31, toxicEffect = 33,
- bindingEffect = 42, increasedCritEffect = 43, damageRecoil25PercentEffect = 48, noDamageConfusionEffect = 49,
- noDamageAtkPlusTwoEffect = 50, noDamageDefPlusTwoEffect = 51, noDamageSpePlusTwoEffect = 52,
- noDamageSpAtkPlusTwoEffect = 53, noDamageSpDefPlusTwoEffect = 54, noDamageAtkMinusTwoEffect = 58,
- noDamageDefMinusTwoEffect = 59, noDamageSpeMinusTwoEffect = 60, noDamageSpDefMinusTwoEffect = 62,
- noDamagePoisonEffect = 66, noDamageParalyzeEffect = 67, damageAtkMinusOneEffect = 68,
- damageDefMinusOneEffect = 69, damageSpeMinusOneEffect = 70, damageSpAtkMinusOneEffect = 71,
- damageSpDefMinusOneEffect = 72, damageAccuracyMinusOneEffect = 73, skyAttackEffect = 75,
- damageConfusionEffect = 76, twineedleEffect = 77, snoreEffect = 92, trappingEffect = 106,
- minimizeEffect = 108, swaggerEffect = 118, damageBurnAndThawUserEffect = 125,
- damageUserDefPlusOneEffect = 138, damageUserAtkPlusOneEffect = 139, damageUserAllPlusOneEffect = 140,
- twisterEffect = 146, futureSightAndDoomDesireEffect = 148, flinchWithMinimizeBonusEffect = 150, thunderEffect = 152,
- defenseCurlEffect = 156, fakeOutEffect = 158, spitUpEffect = 161, flatterEffect = 166, noDamageBurnEffect = 167,
- chargeEffect = 174, damageUserAtkAndDefMinusOneEffect = 182, damageRecoil33PercentEffect = 198,
- teeterDanceEffect = 199, blazeKickEffect = 200, poisonFangEffect = 202, damageUserSpAtkMinusTwoEffect = 204,
+ razorWindEffect = 39, bindingEffect = 42, increasedCritEffect = 43, damageRecoil25PercentEffect = 48,
+ noDamageConfusionEffect = 49, noDamageAtkPlusTwoEffect = 50, noDamageDefPlusTwoEffect = 51,
+ noDamageSpePlusTwoEffect = 52, noDamageSpAtkPlusTwoEffect = 53, noDamageSpDefPlusTwoEffect = 54,
+ noDamageAtkMinusTwoEffect = 58, noDamageDefMinusTwoEffect = 59, noDamageSpeMinusTwoEffect = 60,
+ noDamageSpDefMinusTwoEffect = 62, noDamagePoisonEffect = 66, noDamageParalyzeEffect = 67,
+ damageAtkMinusOneEffect = 68, damageDefMinusOneEffect = 69, damageSpeMinusOneEffect = 70,
+ damageSpAtkMinusOneEffect = 71, damageSpDefMinusOneEffect = 72, damageAccuracyMinusOneEffect = 73,
+ skyAttackEffect = 75, damageConfusionEffect = 76, twineedleEffect = 77, rechargeEffect = 80,
+ snoreEffect = 92, trappingEffect = 106, minimizeEffect = 108, swaggerEffect = 118,
+ damageBurnAndThawUserEffect = 125, damageUserDefPlusOneEffect = 138, damageUserAtkPlusOneEffect = 139,
+ damageUserAllPlusOneEffect = 140, skullBashEffect = 145, twisterEffect = 146,
+ futureSightAndDoomDesireEffect = 148, flinchWithMinimizeBonusEffect = 150, solarbeamEffect = 151,
+ thunderEffect = 152, semiInvulnerableEffect = 155, defenseCurlEffect = 156, fakeOutEffect = 158,
+ spitUpEffect = 161, flatterEffect = 166, noDamageBurnEffect = 167, chargeEffect = 174,
+ damageUserAtkAndDefMinusOneEffect = 182, damageRecoil33PercentEffect = 198, teeterDanceEffect = 199,
+ blazeKickEffect = 200, poisonFangEffect = 202, damageUserSpAtkMinusTwoEffect = 204,
noDamageAtkAndDefMinusOneEffect = 205, noDamageDefAndSpDefPlusOneEffect = 206,
noDamageAtkAndDefPlusOneEffect = 208, poisonTailEffect = 209, noDamageSpAtkAndSpDefPlusOneEffect = 211,
noDamageAtkAndSpePlusOneEffect = 212;
diff --git a/src/com/sneed/pkrandom/constants/Gen4Constants.java b/src/com/sneed/pkrandom/constants/Gen4Constants.java
index e62af6d..b79c068 100644
--- a/src/com/sneed/pkrandom/constants/Gen4Constants.java
+++ b/src/com/sneed/pkrandom/constants/Gen4Constants.java
@@ -693,18 +693,21 @@ public class Gen4Constants {
noDamageSpDefMinusTwoEffect = 62, noDamagePoisonEffect = 66, noDamageParalyzeEffect = 67,
damageAtkMinusOneEffect = 68, damageDefMinusOneEffect = 69, damageSpeMinusOneEffect = 70,
damageSpAtkMinusOneEffect = 71, damageSpDefMinusOneEffect = 72, damageAccuracyMinusOneEffect = 73,
- skyAttackEffect = 75, damageConfusionEffect = 76, twineedleEffect = 77, snoreEffect = 92,
+ skyAttackEffect = 75, damageConfusionEffect = 76, twineedleEffect = 77, rechargeEffect = 80, snoreEffect = 92,
trappingEffect = 106, minimizeEffect = 108, swaggerEffect = 118, damageBurnAndThawUserEffect = 125,
damageUserDefPlusOneEffect = 138, damageUserAtkPlusOneEffect = 139, damageUserAllPlusOneEffect = 140,
- twisterEffect = 146, futureSightAndDoomDesireEffect = 148, stompEffect = 150, thunderEffect = 152,
- defenseCurlEffect = 156, fakeOutEffect = 158, flatterEffect = 166, noDamageBurnEffect = 167,
- chargeEffect = 174, damageUserAtkAndDefMinusOneEffect = 182, damageRecoil33PercentEffect = 198,
- teeterDanceEffect = 199, blazeKickEffect = 200, poisonFangEffect = 202, damageUserSpAtkMinusTwoEffect = 204,
- noDamageAtkAndDefMinusOneEffect = 205, noDamageDefAndSpDefPlusOneEffect = 206, noDamageAtkAndDefPlusOneEffect = 208,
- damagePoisonWithIncreasedCritEffect = 209, noDamageSpAtkAndSpDefPlusOneEffect = 211, noDamageAtkAndSpePlusOneEffect = 212,
+ skullBashEffect = 145, twisterEffect = 146, futureSightAndDoomDesireEffect = 148, stompEffect = 150,
+ solarbeamEffect = 151, thunderEffect = 152, flyEffect = 155, defenseCurlEffect = 156,
+ fakeOutEffect = 158, flatterEffect = 166, noDamageBurnEffect = 167, chargeEffect = 174,
+ damageUserAtkAndDefMinusOneEffect = 182, damageRecoil33PercentEffect = 198, teeterDanceEffect = 199,
+ blazeKickEffect = 200, poisonFangEffect = 202, damageUserSpAtkMinusTwoEffect = 204,
+ noDamageAtkAndDefMinusOneEffect = 205, noDamageDefAndSpDefPlusOneEffect = 206,
+ noDamageAtkAndDefPlusOneEffect = 208, damagePoisonWithIncreasedCritEffect = 209,
+ noDamageSpAtkAndSpDefPlusOneEffect = 211, noDamageAtkAndSpePlusOneEffect = 212,
damageUserSpeMinusOneEffect = 218, damageUserDefAndSpDefMinusOneEffect = 229, flareBlitzEffect = 253,
- blizzardEffect = 260, voltTackleEffect = 262, bounceEffect = 263, noDamageSpAtkMinusTwoEffect = 265, chatterEffect = 267,
- damageRecoil50PercentEffect = 269, damageSpDefMinusTwoEffect = 271, fireFangEffect = 273, iceFangEffect = 274,
+ diveEffect = 255, digEffect = 256, blizzardEffect = 260, voltTackleEffect = 262, bounceEffect = 263,
+ noDamageSpAtkMinusTwoEffect = 265, chatterEffect = 267, damageRecoil50PercentEffect = 269,
+ damageSpDefMinusTwoEffect = 271, shadowForceEffect = 272, fireFangEffect = 273, iceFangEffect = 274,
thunderFangEffect = 275, damageUserSpAtkPlusOneEffect = 276;
public static final List<Integer> soundMoves = Arrays.asList(Moves.growl, Moves.roar, Moves.sing, Moves.supersonic,
diff --git a/src/com/sneed/pkrandom/pokemon/Move.java b/src/com/sneed/pkrandom/pokemon/Move.java
index 944d607..930440f 100755
--- a/src/com/sneed/pkrandom/pokemon/Move.java
+++ b/src/com/sneed/pkrandom/pokemon/Move.java
@@ -50,6 +50,8 @@ public class Move {
public int absorbPercent;
public int priority;
public boolean makesContact;
+ public boolean isChargeMove;
+ public boolean isRechargeMove;
public boolean isPunchMove;
public boolean isSoundMove;
public boolean isTrapMove; // True for both binding moves (like Wrap) and trapping moves (like Mean Look)
diff --git a/src/com/sneed/pkrandom/romhandlers/Gen1RomHandler.java b/src/com/sneed/pkrandom/romhandlers/Gen1RomHandler.java
index bc59cce..33845c5 100755
--- a/src/com/sneed/pkrandom/romhandlers/Gen1RomHandler.java
+++ b/src/com/sneed/pkrandom/romhandlers/Gen1RomHandler.java
@@ -676,6 +676,15 @@ public class Gen1RomHandler extends AbstractGBCRomHandler {
case Gen1Constants.damageRecoilEffect:
move.recoilPercent = 25;
break;
+
+ case Gen1Constants.chargeEffect:
+ case Gen1Constants.flyEffect:
+ move.isChargeMove = true;
+ break;
+
+ case Gen1Constants.hyperBeamEffect:
+ move.isRechargeMove = true;
+ break;
}
if (Gen1Constants.increasedCritMoves.contains(move.number)) {
diff --git a/src/com/sneed/pkrandom/romhandlers/Gen2RomHandler.java b/src/com/sneed/pkrandom/romhandlers/Gen2RomHandler.java
index 88046e5..e0ac1d9 100755
--- a/src/com/sneed/pkrandom/romhandlers/Gen2RomHandler.java
+++ b/src/com/sneed/pkrandom/romhandlers/Gen2RomHandler.java
@@ -687,6 +687,18 @@ public class Gen2RomHandler extends AbstractGBCRomHandler {
case Gen2Constants.trappingEffect:
move.isTrapMove = true;
break;
+
+ case Gen2Constants.razorWindEffect:
+ case Gen2Constants.skyAttackEffect:
+ case Gen2Constants.skullBashEffect:
+ case Gen2Constants.solarbeamEffect:
+ case Gen2Constants.semiInvulnerableEffect:
+ move.isChargeMove = true;
+ break;
+
+ case Gen2Constants.hyperBeamEffect:
+ move.isRechargeMove = true;
+ break;
}
if (Gen2Constants.increasedCritMoves.contains(move.number)) {
diff --git a/src/com/sneed/pkrandom/romhandlers/Gen3RomHandler.java b/src/com/sneed/pkrandom/romhandlers/Gen3RomHandler.java
index 78e1dc7..de9cf1c 100755
--- a/src/com/sneed/pkrandom/romhandlers/Gen3RomHandler.java
+++ b/src/com/sneed/pkrandom/romhandlers/Gen3RomHandler.java
@@ -1166,10 +1166,6 @@ public class Gen3RomHandler extends AbstractGBRomHandler {
move.flinchPercentChance = secondaryEffectChance;
break;
- case Gen3Constants.skyAttackEffect:
- move.criticalChance = CriticalChance.INCREASED;
- move.flinchPercentChance = secondaryEffectChance;
-
case Gen3Constants.damageAbsorbEffect:
case Gen3Constants.dreamEaterEffect:
move.absorbPercent = 50;
@@ -1187,6 +1183,23 @@ public class Gen3RomHandler extends AbstractGBRomHandler {
case Gen3Constants.trappingEffect:
move.isTrapMove = true;
break;
+
+ case Gen3Constants.razorWindEffect:
+ case Gen3Constants.skullBashEffect:
+ case Gen3Constants.solarbeamEffect:
+ case Gen3Constants.semiInvulnerableEffect:
+ move.isChargeMove = true;
+ break;
+
+ case Gen3Constants.rechargeEffect:
+ move.isRechargeMove = true;
+ break;
+
+ case Gen3Constants.skyAttackEffect:
+ move.criticalChance = CriticalChance.INCREASED;
+ move.flinchPercentChance = secondaryEffectChance;
+ move.isChargeMove = true;
+ break;
}
}
diff --git a/src/com/sneed/pkrandom/romhandlers/Gen4RomHandler.java b/src/com/sneed/pkrandom/romhandlers/Gen4RomHandler.java
index ca3a2c1..88950fe 100755
--- a/src/com/sneed/pkrandom/romhandlers/Gen4RomHandler.java
+++ b/src/com/sneed/pkrandom/romhandlers/Gen4RomHandler.java
@@ -924,7 +924,6 @@ public class Gen4RomHandler extends AbstractDSRomHandler {
private void loadMiscMoveInfoFromEffect(Move move, int secondaryEffectChance) {
switch (move.effectIndex) {
- case Gen4Constants.razorWindEffect:
case Gen4Constants.increasedCritEffect:
case Gen4Constants.blazeKickEffect:
case Gen4Constants.damagePoisonWithIncreasedCritEffect:
@@ -945,11 +944,6 @@ public class Gen4RomHandler extends AbstractDSRomHandler {
move.flinchPercentChance = secondaryEffectChance;
break;
- case Gen4Constants.skyAttackEffect:
- move.criticalChance = CriticalChance.INCREASED;
- move.flinchPercentChance = secondaryEffectChance;
- break;
-
case Gen4Constants.damageAbsorbEffect:
case Gen4Constants.dreamEaterEffect:
move.absorbPercent = 50;
@@ -973,6 +967,31 @@ public class Gen4RomHandler extends AbstractDSRomHandler {
case Gen4Constants.trappingEffect:
move.isTrapMove = true;
break;
+
+ case Gen4Constants.skullBashEffect:
+ case Gen4Constants.solarbeamEffect:
+ case Gen4Constants.flyEffect:
+ case Gen4Constants.diveEffect:
+ case Gen4Constants.digEffect:
+ case Gen4Constants.bounceEffect:
+ case Gen4Constants.shadowForceEffect:
+ move.isChargeMove = true;
+ break;
+
+ case Gen3Constants.rechargeEffect:
+ move.isRechargeMove = true;
+ break;
+
+ case Gen4Constants.razorWindEffect:
+ move.criticalChance = CriticalChance.INCREASED;
+ move.isChargeMove = true;
+ break;
+
+ case Gen4Constants.skyAttackEffect:
+ move.criticalChance = CriticalChance.INCREASED;
+ move.flinchPercentChance = secondaryEffectChance;
+ move.isChargeMove = true;
+ break;
}
}
diff --git a/src/com/sneed/pkrandom/romhandlers/Gen5RomHandler.java b/src/com/sneed/pkrandom/romhandlers/Gen5RomHandler.java
index c12ff86..c08700b 100755
--- a/src/com/sneed/pkrandom/romhandlers/Gen5RomHandler.java
+++ b/src/com/sneed/pkrandom/romhandlers/Gen5RomHandler.java
@@ -571,6 +571,8 @@ public class Gen5RomHandler extends AbstractDSRomHandler {
int internalStatusType = readWord(moveData, 8);
int flags = FileFunctions.readFullInt(moveData, 32);
moves[i].makesContact = (flags & 0x001) != 0;
+ moves[i].isChargeMove = (flags & 0x002) != 0;
+ moves[i].isRechargeMove = (flags & 0x004) != 0;
moves[i].isPunchMove = (flags & 0x080) != 0;
moves[i].isSoundMove = (flags & 0x100) != 0;
moves[i].isTrapMove = (moves[i].effectIndex == Gen5Constants.trappingEffect || internalStatusType == 8);
diff --git a/src/com/sneed/pkrandom/romhandlers/Gen6RomHandler.java b/src/com/sneed/pkrandom/romhandlers/Gen6RomHandler.java
index 361ed76..37a54b3 100644
--- a/src/com/sneed/pkrandom/romhandlers/Gen6RomHandler.java
+++ b/src/com/sneed/pkrandom/romhandlers/Gen6RomHandler.java
@@ -622,6 +622,8 @@ public class Gen6RomHandler extends Abstract3DSRomHandler {
int internalStatusType = readWord(moveData, 8);
int flags = FileFunctions.readFullInt(moveData, 32);
moves[i].makesContact = (flags & 0x001) != 0;
+ moves[i].isChargeMove = (flags & 0x002) != 0;
+ moves[i].isRechargeMove = (flags & 0x004) != 0;
moves[i].isPunchMove = (flags & 0x080) != 0;
moves[i].isSoundMove = (flags & 0x100) != 0;
moves[i].isTrapMove = internalStatusType == 8;
diff --git a/src/com/sneed/pkrandom/romhandlers/Gen7RomHandler.java b/src/com/sneed/pkrandom/romhandlers/Gen7RomHandler.java
index f56345c..06ca05f 100644
--- a/src/com/sneed/pkrandom/romhandlers/Gen7RomHandler.java
+++ b/src/com/sneed/pkrandom/romhandlers/Gen7RomHandler.java
@@ -694,6 +694,8 @@ public class Gen7RomHandler extends Abstract3DSRomHandler {
int internalStatusType = readWord(moveData, 8);
int flags = FileFunctions.readFullInt(moveData, 36);
moves[i].makesContact = (flags & 0x001) != 0;
+ moves[i].isChargeMove = (flags & 0x002) != 0;
+ moves[i].isRechargeMove = (flags & 0x004) != 0;
moves[i].isPunchMove = (flags & 0x080) != 0;
moves[i].isSoundMove = (flags & 0x100) != 0;
moves[i].isTrapMove = internalStatusType == 8;