forked from SteamWar/SteamWar
Fix Advancements Placements
This commit is contained in:
@@ -151,7 +151,12 @@ class EventFight(id: EntityID<Int>) : IntEntity(id), Comparable<EventFight> {
|
||||
fun countPlacement(fighter: SteamwarUser, placement: Int) =
|
||||
useDb {
|
||||
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)
|
||||
) {
|
||||
if (it.next()) {
|
||||
|
||||
@@ -196,7 +196,7 @@ public class Advancements {
|
||||
2f + (placementCount - 1f),
|
||||
yCoord
|
||||
),
|
||||
Advancement.HidePolicy.WITH_PREVIOUS,
|
||||
placementCount == 1 ? Advancement.HidePolicy.WITH_PREVIOUS : Advancement.HidePolicy.PREVIOUS_UNFINISHED,
|
||||
1,
|
||||
user -> EventFight.countPlacement(user, placement) >= finalPlacementCount ? 1 : 0
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user