mirror of
https://github.com/garbagemule/MobArena.git
synced 2025-02-18 13:31:30 +01:00
Leaderboards now sort properly, and update every 100 ticks. This will be customizable later.
This commit is contained in:
parent
34d2af6c14
commit
f808b24464
BIN
MobArena.jar
BIN
MobArena.jar
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
name: MobArena
|
name: MobArena
|
||||||
main: com.garbagemule.MobArena.MobArena
|
main: com.garbagemule.MobArena.MobArena
|
||||||
version: 0.94.3.9
|
version: 0.94.3.10
|
||||||
softdepend: [Spout,Permissions,MultiVerse,XcraftGate,Towny,Heroes,MagicSpells]
|
softdepend: [Spout,Permissions,MultiVerse,XcraftGate,Towny,Heroes,MagicSpells]
|
||||||
commands:
|
commands:
|
||||||
ma:
|
ma:
|
||||||
|
@ -222,6 +222,7 @@ public class Arena
|
|||||||
|
|
||||||
// Initialize leaderboards and start displaying info.
|
// Initialize leaderboards and start displaying info.
|
||||||
leaderboard.initialize();
|
leaderboard.initialize();
|
||||||
|
leaderboard.startTracking();
|
||||||
|
|
||||||
// Announce and notify.
|
// Announce and notify.
|
||||||
MAUtils.tellAll(this, Msg.ARENA_START);
|
MAUtils.tellAll(this, Msg.ARENA_START);
|
||||||
@ -246,6 +247,7 @@ public class Arena
|
|||||||
running = false;
|
running = false;
|
||||||
|
|
||||||
// Stop tracking leaderboards
|
// Stop tracking leaderboards
|
||||||
|
leaderboard.stopTracking();
|
||||||
leaderboard.update();
|
leaderboard.update();
|
||||||
|
|
||||||
// Finish logging
|
// Finish logging
|
||||||
|
@ -34,29 +34,46 @@ public class ArenaPlayerStatistics
|
|||||||
public int compare(ArenaPlayerStatistics s1, ArenaPlayerStatistics s2)
|
public int compare(ArenaPlayerStatistics s1, ArenaPlayerStatistics s2)
|
||||||
{
|
{
|
||||||
if (s1.kills > s2.kills)
|
if (s1.kills > s2.kills)
|
||||||
return 1;
|
|
||||||
else if (s1.kills < s2.kills)
|
|
||||||
return -1;
|
return -1;
|
||||||
|
else if (s1.kills < s2.kills)
|
||||||
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static int compareKills(ArenaPlayerStatistics s1, ArenaPlayerStatistics s2)
|
||||||
|
{
|
||||||
|
if (s1.kills > s2.kills)
|
||||||
|
return -1;
|
||||||
|
else if (s1.kills < s2.kills)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
public static Comparator<ArenaPlayerStatistics> waveComparator()
|
public static Comparator<ArenaPlayerStatistics> waveComparator()
|
||||||
{
|
{
|
||||||
return new Comparator<ArenaPlayerStatistics>()
|
return new Comparator<ArenaPlayerStatistics>()
|
||||||
{
|
{
|
||||||
public int compare(ArenaPlayerStatistics s1, ArenaPlayerStatistics s2)
|
public int compare(ArenaPlayerStatistics s1, ArenaPlayerStatistics s2)
|
||||||
{
|
{
|
||||||
if (s1.lastWave > s2.lastWave)
|
int result = compareWaves(s1, s2);
|
||||||
return 1;
|
if (result != 0) return result;
|
||||||
else if (s1.lastWave < s2.lastWave)
|
|
||||||
return -1;
|
return compareKills(s1, s2);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static int compareWaves(ArenaPlayerStatistics s1, ArenaPlayerStatistics s2)
|
||||||
|
{
|
||||||
|
if (s1.lastWave > s2.lastWave)
|
||||||
|
return -1;
|
||||||
|
else if (s1.lastWave < s2.lastWave)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
public static Comparator<ArenaPlayerStatistics> dmgDoneComparator()
|
public static Comparator<ArenaPlayerStatistics> dmgDoneComparator()
|
||||||
{
|
{
|
||||||
return new Comparator<ArenaPlayerStatistics>()
|
return new Comparator<ArenaPlayerStatistics>()
|
||||||
@ -64,9 +81,9 @@ public class ArenaPlayerStatistics
|
|||||||
public int compare(ArenaPlayerStatistics s1, ArenaPlayerStatistics s2)
|
public int compare(ArenaPlayerStatistics s1, ArenaPlayerStatistics s2)
|
||||||
{
|
{
|
||||||
if (s1.dmgDone > s2.dmgDone)
|
if (s1.dmgDone > s2.dmgDone)
|
||||||
return 1;
|
|
||||||
else if (s1.dmgDone < s2.dmgDone)
|
|
||||||
return -1;
|
return -1;
|
||||||
|
else if (s1.dmgDone < s2.dmgDone)
|
||||||
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -77,6 +77,9 @@ public class MASpawnThread implements Runnable
|
|||||||
// Find the wave to spawn
|
// Find the wave to spawn
|
||||||
spawnWave(wave);
|
spawnWave(wave);
|
||||||
|
|
||||||
|
// Update stats
|
||||||
|
updateStats(wave);
|
||||||
|
|
||||||
wave++;
|
wave++;
|
||||||
if (arena.monsters.isEmpty())
|
if (arena.monsters.isEmpty())
|
||||||
arena.resetIdleTimer();
|
arena.resetIdleTimer();
|
||||||
@ -130,6 +133,13 @@ public class MASpawnThread implements Runnable
|
|||||||
w.spawn(wave);
|
w.spawn(wave);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateStats(int wave)
|
||||||
|
{
|
||||||
|
for (ArenaPlayer ap: arena.getArenaPlayerSet())
|
||||||
|
if (arena.getArenaPlayers().contains(ap.getPlayer()))
|
||||||
|
ap.getStats().lastWave++;
|
||||||
|
}
|
||||||
|
|
||||||
private SortedSet<Wave> getMatchingRecurrentWaves(int wave)
|
private SortedSet<Wave> getMatchingRecurrentWaves(int wave)
|
||||||
{
|
{
|
||||||
TreeSet<Wave> result = new TreeSet<Wave>(WaveUtils.getRecurrentComparator());
|
TreeSet<Wave> result = new TreeSet<Wave>(WaveUtils.getRecurrentComparator());
|
||||||
|
@ -99,6 +99,13 @@ public class Leaderboard
|
|||||||
|
|
||||||
initializeBoards();
|
initializeBoards();
|
||||||
initializeStats();
|
initializeStats();
|
||||||
|
clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clear()
|
||||||
|
{
|
||||||
|
for (LeaderboardColumn column : boards)
|
||||||
|
column.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update()
|
public void update()
|
||||||
|
@ -66,6 +66,17 @@ public class LeaderboardColumn
|
|||||||
catch (Exception e) { e.printStackTrace(); }
|
catch (Exception e) { e.printStackTrace(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clear()
|
||||||
|
{
|
||||||
|
for (Sign s : signs)
|
||||||
|
{
|
||||||
|
s.setLine(0, "");
|
||||||
|
s.setLine(1, "");
|
||||||
|
s.setLine(2, "");
|
||||||
|
s.setLine(3, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Sign getHeader()
|
public Sign getHeader()
|
||||||
{
|
{
|
||||||
return header;
|
return header;
|
||||||
|
Loading…
Reference in New Issue
Block a user