Fix Advancements Placements

This commit is contained in:
2026-05-31 23:04:08 +02:00
parent 847eb3fe5d
commit 2ad9ae3c7f
2 changed files with 7 additions and 2 deletions
@@ -151,7 +151,12 @@ class EventFight(id: EntityID<Int>) : IntEntity(id), Comparable<EventFight> {
fun countPlacement(fighter: SteamwarUser, placement: Int) = fun countPlacement(fighter: SteamwarUser, placement: Int) =
useDb { useDb {
exec( exec(
"SELECT COUNT(*) AS PlacementCount FROM FightPlayer INNER JOIN Fight F on FightPlayer.FightID = F.FightID INNER JOIN EventFight EF on F.FightID = EF.Fight INNER JOIN TeamTeilnahme TT on TT.EventID = EF.EventID WHERE UserID = ? AND Placement = ?", """
SELECT COUNT(DISTINCT EventFight.EventID) AS PlacementCount FROM TeamTeilnahme
INNER JOIN EventFight ON EventFight.EventID = TeamTeilnahme.EventID
INNER JOIN FightPlayer ON FightPlayer.FightID = EventFight.Fight
WHERE (IF(FightPlayer.Team = 1, EventFight.TeamBlue, EventFight.TeamRed)) = TeamTeilnahme.TeamID AND UserID = ? AND Placement = ?
""".trimIndent(),
args = listOf(IntegerColumnType() to fighter.id.value, IntegerColumnType() to placement) args = listOf(IntegerColumnType() to fighter.id.value, IntegerColumnType() to placement)
) { ) {
if (it.next()) { if (it.next()) {
@@ -196,7 +196,7 @@ public class Advancements {
2f + (placementCount - 1f), 2f + (placementCount - 1f),
yCoord yCoord
), ),
Advancement.HidePolicy.WITH_PREVIOUS, placementCount == 1 ? Advancement.HidePolicy.WITH_PREVIOUS : Advancement.HidePolicy.PREVIOUS_UNFINISHED,
1, 1,
user -> EventFight.countPlacement(user, placement) >= finalPlacementCount ? 1 : 0 user -> EventFight.countPlacement(user, placement) >= finalPlacementCount ? 1 : 0
); );