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));
|
||||
}
|
||||
|
||||
|
||||
public Collection<PlayerDTO> getleaderBoard(int iterator) {
|
||||
int playerAddiditionCap = 99;
|
||||
Collection<Player> playerAvatarsCaching = new ArrayList();
|
||||
@ -418,8 +418,7 @@ public class Facade {
|
||||
for (MapBoard mapboard : mapboards) {
|
||||
//System.out.println("mapName: " + mapboard.getMapName());
|
||||
List<MapValues> mapvalues = new ArrayList();
|
||||
for (MapValues mv : mapboard.getMapvalues())
|
||||
{
|
||||
for (MapValues mv : mapboard.getMapvalues()) {
|
||||
mapvalues.add(mv);
|
||||
}
|
||||
mapvalues.sort(Comparator.comparing(MapValues::getTime));
|
||||
@ -431,28 +430,43 @@ public class Facade {
|
||||
for (MapBoard mapboard : mapBoardCache.values()) {
|
||||
List<MapValues> mapvalues = mapboard.getMapvalues();
|
||||
int playerCount = mapvalues.size();
|
||||
//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.
|
||||
//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.
|
||||
int FivePercent = 0;
|
||||
int OnePercent = 0;
|
||||
if (playerCount >= 100){
|
||||
if (playerCount >= 100) {
|
||||
FivePercent = (int) Math.floor(playerCount * 0.05);
|
||||
OnePercent = (int) Math.floor(playerCount * 0.01);
|
||||
}
|
||||
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) {
|
||||
mapvalue.setPosition(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.
|
||||
//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.
|
||||
Points += 2500;
|
||||
}
|
||||
if (position <= OnePercent){
|
||||
if (position <= OnePercent) {
|
||||
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;
|
||||
}
|
||||
mapvalue.setMapPoints(Points);
|
||||
|
Loading…
Reference in New Issue
Block a user