@(u: User, emails: User.Emails, spy: lila.security.UserSpy, optionAggregateAssessment: Option[lila.evaluation.PlayerAggregateAssessment.WithGames], bans: Map[String, Int], history: List[lila.mod.Modlog], charges: List[lila.plan.Charge], reports: lila.report.Report.ByAndAbout, pref: lila.pref.Pref, irwinReport: Option[lila.irwin.IrwinReport.WithPovs], notes: List[lila.user.Note])(implicit ctx: Context) @import lila.evaluation.Display @import lila.pref.Pref
ACPL in games with blurs is @blursYes @pag.pag.sfAvgNoBlurs.map { blursNo => against @blursNo in games without blurs. }
} @pag.pag.sfAvgLowVar.map { lowVar =>ACPL in games with consistent move times is @lowVar @pag.pag.sfAvgHighVar.map { highVar => against @highVar in games with random move times. }
} @pag.pag.sfAvgHold.map { holdYes =>ACPL in games with bot signature @holdYes @pag.pag.sfAvgNoHold.map { holdNo => against @holdNo in games without bot signature. }
}Opponent | Game |
Centi-Pawn
(Avg ± SD) |
Move Times
(Avg ± SD) |
Blurs | Bot | Σ |
---|---|---|---|---|---|---|
@pag.pov(result).fold{ @result.gameId } { p => @playerLink(p.opponent, withRating = true, withDiff = true, withOnline = false, link = false) } | @pag.pov(result).map { p => @if(p.game.isTournament) { } @p.game.perfType.map { pt => } @shortClockName(p.game.clock.map(_.config)) } | @result.sfAvg ± @result.sfSd | @(result.mtAvg/10) ± @(result.mtSd/10) | @(result.blurs)% | @if(result.hold){Yes} else {No} |
@result.assessment.emoticon
|
@spy.otherUsers.size similar user(s) | Same | Games | Status | Created | Active |
---|---|---|---|---|---|
@userLink(o, withBestRating = true, params = "?mod") | @if(o == u) { - } else { @List(byIp option "IP", byFp option "Print").flatten.mkString(", ") } | @o.count.game.localize | @defining(notes.filter(_.to == o.id)) { ns => @if(ns.nonEmpty) { @ns.size } } @userMarks(o, bans.get(o.id)) | @momentFromNow(o.createdAt) | @o.seenAt.map(momentFromNow(_)) |