schedule hyperbullet and ultrabullet arenas - closes #6222

pull/6294/head
Thibault Duplessis 2020-04-03 15:22:18 -06:00
parent 53b29a8b0c
commit ca5f63c182
4 changed files with 14 additions and 17 deletions

View File

@ -83,7 +83,7 @@ final class ApiJsonView(lightUserApi: LightUserApi)(implicit ec: scala.concurren
private val perfPositions: Map[PerfType, Int] = {
import PerfType._
List(Bullet, Blitz, Rapid, UltraBullet) ::: variants
List(Bullet, Blitz, Rapid, Classical, UltraBullet) ::: variants
}.zipWithIndex.toMap
private def perfJson(p: PerfType)(implicit lang: Lang) = Json.obj(

View File

@ -205,7 +205,6 @@ object Schedule {
def byId(id: Int) = all find (_.id == id)
def similar(s1: Speed, s2: Speed) = (s1, s2) match {
case (a, b) if a == b => true
case (HyperBullet, Bullet) | (Bullet, HyperBullet) => true
case (Bullet, HippoBullet) | (HippoBullet, Bullet) => true
case _ => false
}

View File

@ -346,22 +346,18 @@ Thank you all, you rock!"""
(-1 to 6).toList.flatMap { hourDelta =>
val date = rightNow plusHours hourDelta
val hour = date.getHourOfDay
// Avoid overlap with daily/eastern bullet, daily/hourly ultra.
// Hour 20 is daily hyper, so make hour 19 regular bullet.
val bulletType = if (hour % 4 == 3 && hour != 19) HyperBullet else Bullet
List(
// Ultra hourlies avoid hyperbullet, and overlap with daily ultra.
at(date, hour) collect {
case date if hour % 8 == 5 => Schedule(Hourly, UltraBullet, Standard, std, date).plan
},
at(date, hour, 30) collect {
case date if hour % 8 == 5 => Schedule(Hourly, UltraBullet, Standard, std, date).plan
},
at(date, hour) map { date =>
Schedule(Hourly, bulletType, Standard, std, date).plan
Schedule(Hourly, HyperBullet, Standard, std, date).plan
},
at(date, hour, 30) map { date =>
Schedule(Hourly, bulletType, Standard, std, date).plan
Schedule(Hourly, UltraBullet, Standard, std, date).plan
},
at(date, hour) map { date =>
Schedule(Hourly, Bullet, Standard, std, date).plan
},
at(date, hour, 30) map { date =>
Schedule(Hourly, Bullet, Standard, std, date).plan
},
at(date, hour) map { date =>
Schedule(Hourly, SuperBlitz, Standard, std, date).plan

View File

@ -40,12 +40,14 @@ function laneGrouper(t) {
return -1;
} else if (t.variant.key !== 'standard') {
return 99;
} else if (t.perf.key === 'ultraBullet') {
return 70;
} else if (t.schedule && t.hasMaxRating) {
return 50 + parseInt(t.fullName.slice(1,5)) / 10000;
} else if (t.schedule && t.schedule.speed === 'superblitz') {
} else if (t.schedule && t.schedule.speed === 'superBlitz') {
return t.perf.position - 0.5;
} else if (t.schedule && t.schedule.speed === 'hyperBullet') {
return 4;
} else if (t.schedule && t.perf.key === 'ultraBullet') {
return 4;
} else {
return t.perf.position;
}