Add RankingManager and integrate RR system
Introduce a new RankingManager that implements a per-round Rank Rating (RR) system (placement + kill-based scoring, placement games, kill caps and RR interpolation). Wire the manager into the plugin (SpeedHG): add field + initialization. Integrate into GameManager: call startRound at game start, registerRoundKill on kills, and onPlayerResult for eliminated players and the winner; adjust some stats calls (addLoss/addWin kept alongside ranking updates). Add corresponding English language messages for placement progress and result notifications.
This commit is contained in:
@@ -205,6 +205,8 @@ class GameManager(
|
||||
player.sendMsg( "game.started" )
|
||||
}
|
||||
|
||||
plugin.rankingManager.startRound( Bukkit.getOnlinePlayers() )
|
||||
|
||||
Bukkit.getOnlinePlayers().forEach { player ->
|
||||
player.sendMsg( "game.invincibility-start", "time" to invincibilityTime.toString() )
|
||||
}
|
||||
@@ -247,13 +249,14 @@ class GameManager(
|
||||
player.gameMode = GameMode.SPECTATOR
|
||||
|
||||
plugin.statsManager.addDeath( player.uniqueId )
|
||||
plugin.statsManager.adjustScrimScore( player.uniqueId, -25 ) // Elo-Verlust
|
||||
plugin.statsManager.addLoss( player.uniqueId )
|
||||
plugin.rankingManager.onPlayerResult( player, isWinner = false )
|
||||
|
||||
if ( killer != null )
|
||||
{
|
||||
killer.exp += 0.5f
|
||||
plugin.statsManager.addKill( killer.uniqueId )
|
||||
plugin.statsManager.adjustScrimScore( killer.uniqueId, +15 ) // Elo-Gewinn
|
||||
plugin.rankingManager.registerRoundKill( killer.uniqueId )
|
||||
}
|
||||
|
||||
player.inventory.contents.filterNotNull().forEach {
|
||||
@@ -296,7 +299,7 @@ class GameManager(
|
||||
if ( p.uniqueId == winnerUUID )
|
||||
{
|
||||
plugin.statsManager.addWin( p.uniqueId )
|
||||
plugin.statsManager.adjustScrimScore( p.uniqueId, +50 ) // Elo-Bonus für Win
|
||||
plugin.rankingManager.onPlayerResult( p, isWinner = true )
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user