Add new rank system #303
Besitzer
Keine Beschreibung angegeben.
YoyoNow
hat 1 Commit 2022-03-09 15:32:56 +01:00 hinzugefügt
![yoyosource](/devlabs/assets/img/avatar_default.png)
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
Details
SteamWar/SpigotCore#181 - Add ranked rework
YoyoNow
hat 1 Commit 2022-03-09 20:43:11 +01:00 hinzugefügt
![yoyosource](/devlabs/assets/img/avatar_default.png)
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
Details
Autor
Besitzer
```java
private void calculateEloIfNeeded(Integer blueSchemRank, Integer redSchemRank, double blueResult, String gameMode) {
if (!Config.RankedEnabled) {
return;
}
if (blueSchemRank == null || redSchemRank == null) { // Schematics are not ranked
return;
}
if (blueSchemRank != redSchemRank) { // Different schematics ranks are not worth elo change
return;
}
Collection<FightPlayer> bluePlayers = Fight.getBlueTeam().getPlayers();
Collection<FightPlayer> redPlayers = Fight.getRedTeam().getPlayers();
double playerDiff = 1 - (Math.min(bluePlayers.size(), redPlayers.size()) / (double) Math.max(bluePlayers.size(), redPlayers.size()));
if (playerDiff >= 0.4) { // Too many players, not worth elo change
return;
}
int blueElo = 0;
int redElo = 0;
Map<FightPlayer, Integer> blueElos = new HashMap<>();
Map<FightPlayer, Integer> redElos = new HashMap<>();
for (FightPlayer fp : bluePlayers) {
int elo = Elo.getElo(SteamwarUser.get(fp.getPlayer()).getId(), gameMode);
blueElo += elo;
blueElos.put(fp, elo);
}
for (FightPlayer fp : redPlayers) {
int elo = Elo.getElo(SteamwarUser.get(fp.getPlayer()).getId(), gameMode);
redElo += elo;
redElos.put(fp, elo);
}
double redWinExpectation = 1 / (1 + Math.pow(10, (blueElo - redElo) / 600f));
double blueWinExpectation = 1 / (1 + Math.pow(10, (redElo - blueElo) / 600f));
double diffBlueElo = K * (blueResult - blueWinExpectation);
double diffRedElo = K * (1 - blueResult - redWinExpectation);
for (FightPlayer fp : bluePlayers) {
int nElo = (int) Math.round(blueElos.get(fp) + diffBlueElo / bluePlayers.size());
Elo.setElo(SteamwarUser.get(fp.getPlayer()).getId(), gameMode, nElo);
FightSystem.getMessage().send("UI_ELO_PLAYER", fp.getPlayer(), redElos.get(fp), nElo);
}
for (FightPlayer fp : redPlayers) {
int nElo = (int) Math.round(redElos.get(fp) + diffRedElo / redPlayers.size());
Elo.setElo(SteamwarUser.get(fp.getPlayer()).getId(), gameMode, nElo);
FightSystem.getMessage().send("UI_ELO_PLAYER", fp.getPlayer(), redElos.get(fp), nElo);
}
}
```
YoyoNow
hat 1 Commit 2022-03-09 20:56:06 +01:00 hinzugefügt
![yoyosource](/devlabs/assets/img/avatar_default.png)
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
Details
SteamWar/SpigotCore#181 - Add ranked rework
Merge pull request 'Add new rank system' (#303) from Ranked into master
Keine Reviewer
Label
Kein Label
Bug
Codeverbesserung
Einsteiger Freundlich
Idee
In Arbeit
Neues Feature
Prio A
Security Breach
Überprüfung notwendig
Verbesserung
Zu Beobachten
Kein Meilenstein
Niemand zuständig
2 Beteiligte
Nachrichten
Fällig am
Kein Fälligkeitsdatum gesetzt.
Abhängigkeiten
Keine Abhängigkeiten gesetzt.
Referenz: SteamWar/BungeeCore#303
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren
Keine Beschreibung angegeben.
Branch "Ranked" löschen
Das Löschen eines Branches ist permanent. Obwohl der Branch für eine kurze Zeit weiter existieren könnte, kann diese Aktion in den meisten Fällen NICHT rückgängig gemacht werden. Fortfahren?