in rare cases a guy in top 5% and the next guy right outside of it have the same time. in those cases give them the same boost. also for last guy in 1% and first guy in 5%
This commit is contained in:
parent
50cff40f7c
commit
2d28912e3d
@ -229,7 +229,7 @@ public class Facade {
|
|||||||
}
|
}
|
||||||
return new PlayerDTO(playerCache.get(steamid));
|
return new PlayerDTO(playerCache.get(steamid));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Collection<PlayerDTO> getleaderBoard(int iterator) {
|
public Collection<PlayerDTO> getleaderBoard(int iterator) {
|
||||||
int playerAddiditionCap = 99;
|
int playerAddiditionCap = 99;
|
||||||
Collection<Player> playerAvatarsCaching = new ArrayList();
|
Collection<Player> playerAvatarsCaching = new ArrayList();
|
||||||
@ -418,8 +418,7 @@ public class Facade {
|
|||||||
for (MapBoard mapboard : mapboards) {
|
for (MapBoard mapboard : mapboards) {
|
||||||
//System.out.println("mapName: " + mapboard.getMapName());
|
//System.out.println("mapName: " + mapboard.getMapName());
|
||||||
List<MapValues> mapvalues = new ArrayList();
|
List<MapValues> mapvalues = new ArrayList();
|
||||||
for (MapValues mv : mapboard.getMapvalues())
|
for (MapValues mv : mapboard.getMapvalues()) {
|
||||||
{
|
|
||||||
mapvalues.add(mv);
|
mapvalues.add(mv);
|
||||||
}
|
}
|
||||||
mapvalues.sort(Comparator.comparing(MapValues::getTime));
|
mapvalues.sort(Comparator.comparing(MapValues::getTime));
|
||||||
@ -431,28 +430,43 @@ public class Facade {
|
|||||||
for (MapBoard mapboard : mapBoardCache.values()) {
|
for (MapBoard mapboard : mapBoardCache.values()) {
|
||||||
List<MapValues> mapvalues = mapboard.getMapvalues();
|
List<MapValues> mapvalues = mapboard.getMapvalues();
|
||||||
int playerCount = mapvalues.size();
|
int playerCount = mapvalues.size();
|
||||||
//2024 edit, its been a damn long time ago this all was made
|
//2024 edit, its been a damn long time ago this all was made
|
||||||
//editing so top 5% and top 1% of finisher each get an extra boost.
|
//editing so top 5% and top 1% of finisher each get an extra boost.
|
||||||
int FivePercent = 0;
|
int FivePercent = 0;
|
||||||
int OnePercent = 0;
|
int OnePercent = 0;
|
||||||
if (playerCount >= 100){
|
if (playerCount >= 100) {
|
||||||
FivePercent = (int) Math.floor(playerCount * 0.05);
|
FivePercent = (int) Math.floor(playerCount * 0.05);
|
||||||
OnePercent = (int) Math.floor(playerCount * 0.01);
|
OnePercent = (int) Math.floor(playerCount * 0.01);
|
||||||
}
|
}
|
||||||
int position = 1;
|
int position = 1;
|
||||||
|
|
||||||
|
//suggested by roko. cause in rare cases a guy in top 1% or 5% has the same time as a guy right behind him not getting the percentage boost.
|
||||||
|
//if rank 10 and rank 11 both have a time of 10.546 maybe only rank 10 gets the 1% boost but not rank 11. this is meant to give rank 11 the boost too.
|
||||||
|
float previousTimeOnePercent = 0.0f;
|
||||||
|
float previousTimeFivePercent = 0.0f;
|
||||||
for (MapValues mapvalue : mapvalues) {
|
for (MapValues mapvalue : mapvalues) {
|
||||||
mapvalue.setPosition(position);
|
mapvalue.setPosition(position);
|
||||||
int Points = playerCount - position;
|
int Points = playerCount - position;
|
||||||
if (playerCount <= 250)
|
if (playerCount <= 250) {
|
||||||
{
|
|
||||||
//if less than 250 people finished a time i also want to give them each an additional 2500 points.
|
//if less than 250 people finished a time i also want to give them each an additional 2500 points.
|
||||||
//that is to make up hard timers that not many people actually finish so they are considered worth more.
|
//that is to make up hard timers that not many people actually finish so they are considered worth more.
|
||||||
//for example race mode in mako and race timers in jump king should be rewarded a lot more due to their difficulties.
|
//for example race mode in mako and race timers in jump king should be rewarded a lot more due to their difficulties.
|
||||||
Points += 2500;
|
Points += 2500;
|
||||||
}
|
}
|
||||||
if (position <= OnePercent){
|
if (position <= OnePercent) {
|
||||||
Points *= 4;
|
Points *= 4;
|
||||||
} else if (position <= FivePercent){
|
previousTimeOnePercent = mapvalue.getTime(); //eventually is set for the last guy getting 1% boost.
|
||||||
|
} else if (position <= FivePercent) {
|
||||||
|
previousTimeFivePercent = mapvalue.getTime(); //eventually is set for the last guy getting 5% boost.
|
||||||
|
if (previousTimeFivePercent == previousTimeOnePercent) {
|
||||||
|
//if a guy is listed as part of 5% boost but has the exact same time as the last guy getting 1% boost give him the 1% boost benefit too.
|
||||||
|
Points *= 4;
|
||||||
|
} else {
|
||||||
|
Points *= 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (previousTimeFivePercent == mapvalue.getTime()) {
|
||||||
|
//if the last guy getting 5% boost has a time of 10.654 and the next guy also has a time of 10.654 give him the boost too.
|
||||||
Points *= 2;
|
Points *= 2;
|
||||||
}
|
}
|
||||||
mapvalue.setMapPoints(Points);
|
mapvalue.setMapPoints(Points);
|
||||||
|
Loading…
Reference in New Issue
Block a user