raids plugin: fix rotation solver

This commit is contained in:
15987632
2019-11-10 22:20:24 -05:00
parent 639006997c
commit e3edc16f86
3 changed files with 30 additions and 1 deletions

View File

@@ -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();

View File

@@ -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())

View File

@@ -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);
}
}