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) =
|
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
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user