From e3edc16f869efd0f81fc39ddb02547267587ed7b Mon Sep 17 00:00:00 2001 From: 15987632 Date: Sun, 10 Nov 2019 22:20:24 -0500 Subject: [PATCH] raids plugin: fix rotation solver --- .../runelite/client/plugins/raids/Raid.java | 19 +++++++++++++++++++ .../client/plugins/raids/RaidsPlugin.java | 4 +++- .../plugins/raids/RotationSolverTest.java | 8 ++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java index a237fc03cd..87181b4085 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java @@ -98,6 +98,25 @@ public class Raid return combatRooms.toArray(new RaidRoom[0]); } + void setCombatRooms(RaidRoom[] combatRooms) + { + int index = 0; + + for (Room room : layout.getRooms()) + { + if (room == null) + { + continue; + } + + if (rooms[room.getPosition()].getType() == RoomType.COMBAT) + { + rooms[room.getPosition()] = combatRooms[index]; + index++; + } + } + } + public String toCode() { StringBuilder builder = new StringBuilder(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index 5047c4e625..f25ba51534 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -320,7 +320,9 @@ public class RaidsPlugin extends Plugin } raid.updateLayout(layout); - RotationSolver.solve(raid.getCombatRooms()); + RaidRoom[] rooms = raid.getCombatRooms(); + RotationSolver.solve(rooms); + raid.setCombatRooms(rooms); overlay.setScoutOverlayShown(true); if (config.layoutMessage()) diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java index 5c2bba30e6..38039ca832 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java @@ -69,4 +69,12 @@ public class RotationSolverTest RotationSolver.solve(rooms); assertArrayEquals(new RaidRoom[]{VASA, SHAMANS, VESPULA, GUARDIANS}, rooms); } + + @Test + public void testSolve5() + { + RaidRoom[] rooms = new RaidRoom[]{GUARDIANS, UNKNOWN_COMBAT, SHAMANS, VASA}; + RotationSolver.solve(rooms); + assertArrayEquals(new RaidRoom[]{GUARDIANS, VESPULA, SHAMANS, VASA}, rooms); + } } \ No newline at end of file