From 727b3cd711860d20786e2a4c8e08f754f149a400 Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 7 Dec 2018 16:39:16 -0800 Subject: [PATCH] check stab move count instead of ignoring setting thanks @sora10pls --- pkNX.Randomization/Randomizers/MoveRandomizer.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkNX.Randomization/Randomizers/MoveRandomizer.cs b/pkNX.Randomization/Randomizers/MoveRandomizer.cs index 37766e57..84b7b866 100644 --- a/pkNX.Randomization/Randomizers/MoveRandomizer.cs +++ b/pkNX.Randomization/Randomizers/MoveRandomizer.cs @@ -64,7 +64,7 @@ public int[] GetRandomMoveset(int[] Types, int movecount = 4) int[] moves; do { moves = GetRandomMoves(Types, movecount); } - while (!IsMovesetMeetingRequirements(moves, movecount) && loopctr++ <= maxLoop); + while (!IsMovesetMeetingRequirements(moves, Types, movecount) && loopctr++ <= maxLoop); return moves; } @@ -92,11 +92,14 @@ private int GetRandomSTABMove(int[] types) return move; } - private bool IsMovesetMeetingRequirements(int[] moves, int count) + private bool IsMovesetMeetingRequirements(int[] moves, int[] types, int count) { if (Settings.DMG && Settings.DMGCount > moves.Count(move => MoveData[move].Category != 0)) return false; + if (Settings.STAB && Settings.STABCount > moves.Count(move => types.Contains(MoveData[move].Type))) + return false; + if (moves.Any(Settings.BannedMoves.Contains)) return false;