Stats for rounds in mathes + another ui tweaks
This commit is contained in:
parent
6fe78c9931
commit
f2ec4547ea
|
@ -780,8 +780,11 @@ class EndContextMulti {
|
||||||
late List extraTracking;
|
late List extraTracking;
|
||||||
late bool success;
|
late bool success;
|
||||||
late NerdStats nerdStats;
|
late NerdStats nerdStats;
|
||||||
|
late List<NerdStats> nerdStatsTracking;
|
||||||
late EstTr estTr;
|
late EstTr estTr;
|
||||||
|
late List<EstTr> estTrTracking;
|
||||||
late Playstyle playstyle;
|
late Playstyle playstyle;
|
||||||
|
late List<Playstyle> playstyleTracking;
|
||||||
|
|
||||||
EndContextMulti(
|
EndContextMulti(
|
||||||
{required this.userId,
|
{required this.userId,
|
||||||
|
@ -817,8 +820,11 @@ class EndContextMulti {
|
||||||
extra = json['points']['extra']['vs'].toDouble();
|
extra = json['points']['extra']['vs'].toDouble();
|
||||||
extraTracking = json['points']['extraAvgTracking']['aggregatestats___vsscore'].map((e) => e.toDouble()).toList();
|
extraTracking = json['points']['extraAvgTracking']['aggregatestats___vsscore'].map((e) => e.toDouble()).toList();
|
||||||
nerdStats = NerdStats(secondary, tertiary, extra);
|
nerdStats = NerdStats(secondary, tertiary, extra);
|
||||||
|
nerdStatsTracking = [for (int i = 0; i < secondaryTracking.length; i++) NerdStats(secondaryTracking[i], tertiaryTracking[i], extraTracking[i])];
|
||||||
estTr = EstTr(secondary, tertiary, extra, noTrRd, nerdStats.app, nerdStats.dss, nerdStats.dsp, nerdStats.gbe);
|
estTr = EstTr(secondary, tertiary, extra, noTrRd, nerdStats.app, nerdStats.dss, nerdStats.dsp, nerdStats.gbe);
|
||||||
|
estTrTracking = [for (int i = 0; i < secondaryTracking.length; i++) EstTr(secondaryTracking[i], tertiaryTracking[i], extraTracking[i], noTrRd, nerdStatsTracking[i].app, nerdStatsTracking[i].dss, nerdStatsTracking[i].dsp, nerdStatsTracking[i].gbe)];
|
||||||
playstyle = Playstyle(secondary, tertiary, nerdStats.app, nerdStats.vsapm, nerdStats.dsp, nerdStats.gbe, estTr.srarea, estTr.statrank);
|
playstyle = Playstyle(secondary, tertiary, nerdStats.app, nerdStats.vsapm, nerdStats.dsp, nerdStats.gbe, estTr.srarea, estTr.statrank);
|
||||||
|
playstyleTracking = [for (int i = 0; i < secondaryTracking.length; i++) Playstyle(secondaryTracking[i], tertiaryTracking[i], nerdStatsTracking[i].app, nerdStatsTracking[i].vsapm, nerdStatsTracking[i].dsp, nerdStatsTracking[i].gbe, estTrTracking[i].srarea, estTrTracking[i].statrank)];
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
|
|
|
@ -612,6 +612,34 @@ class CompareState extends State<CompareView> {
|
||||||
fractionDigits: 2,
|
fractionDigits: 2,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
|
CompareThingy(
|
||||||
|
label: "Opener",
|
||||||
|
greenSide: theGreenSide[2].playstyle!.opener,
|
||||||
|
redSide: theRedSide[2].playstyle!.opener,
|
||||||
|
fractionDigits: 3,
|
||||||
|
higherIsBetter: true,
|
||||||
|
),
|
||||||
|
CompareThingy(
|
||||||
|
label: "Plonk",
|
||||||
|
greenSide: theGreenSide[2].playstyle!.plonk,
|
||||||
|
redSide: theRedSide[2].playstyle!.plonk,
|
||||||
|
fractionDigits: 3,
|
||||||
|
higherIsBetter: true,
|
||||||
|
),
|
||||||
|
CompareThingy(
|
||||||
|
label: "Stride",
|
||||||
|
greenSide: theGreenSide[2].playstyle!.stride,
|
||||||
|
redSide: theRedSide[2].playstyle!.stride,
|
||||||
|
fractionDigits: 3,
|
||||||
|
higherIsBetter: true,
|
||||||
|
),
|
||||||
|
CompareThingy(
|
||||||
|
label: "Inf. DS",
|
||||||
|
greenSide: theGreenSide[2].playstyle!.infds,
|
||||||
|
redSide: theRedSide[2].playstyle!.infds,
|
||||||
|
fractionDigits: 3,
|
||||||
|
higherIsBetter: true,
|
||||||
|
),
|
||||||
Wrap(
|
Wrap(
|
||||||
direction: Axis.horizontal,
|
direction: Axis.horizontal,
|
||||||
alignment: WrapAlignment.spaceAround,
|
alignment: WrapAlignment.spaceAround,
|
||||||
|
|
|
@ -348,7 +348,7 @@ class _MainState extends State<MainView> with SingleTickerProviderStateMixin {
|
||||||
var err = snapshot.error as ConnectionIssue;
|
var err = snapshot.error as ConnectionIssue;
|
||||||
errText = t.errors.connection(code: err.code, message: err.message);
|
errText = t.errors.connection(code: err.code, message: err.message);
|
||||||
break;
|
break;
|
||||||
case SocketException: // cant catch
|
case SocketException: // TODO: Find a way to catch
|
||||||
var err = snapshot.error as SocketException;
|
var err = snapshot.error as SocketException;
|
||||||
errText = t.errors.socketException(host: err.address!.host, message: err.osError!.message);
|
errText = t.errors.socketException(host: err.address!.host, message: err.osError!.message);
|
||||||
break;
|
break;
|
||||||
|
@ -508,19 +508,18 @@ class _NavDrawerState extends State<NavDrawer> {
|
||||||
class _TLRecords extends StatelessWidget {
|
class _TLRecords extends StatelessWidget {
|
||||||
final String userID;
|
final String userID;
|
||||||
final List<TetraLeagueAlphaRecord> data;
|
final List<TetraLeagueAlphaRecord> data;
|
||||||
|
|
||||||
const _TLRecords({required this.userID, required this.data});
|
const _TLRecords({required this.userID, required this.data});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
bool bigScreen = MediaQuery.of(context).size.width > 768;
|
||||||
return ListView( // TODO: Redo using ListView.builder()
|
return ListView( // TODO: Redo using ListView.builder()
|
||||||
physics: const AlwaysScrollableScrollPhysics(),
|
physics: const AlwaysScrollableScrollPhysics(),
|
||||||
children: (data.isNotEmpty)
|
children: (data.isNotEmpty)
|
||||||
? [for (var value in data) ListTile(
|
? [for (var value in data) ListTile(
|
||||||
leading: Text("${value.endContext.firstWhere((element) => element.userId == userID).points} : ${value.endContext.firstWhere((element) => element.userId != userID).points}",
|
leading: Text("${value.endContext.firstWhere((element) => element.userId == userID).points} : ${value.endContext.firstWhere((element) => element.userId != userID).points}",
|
||||||
style: const TextStyle(
|
style: bigScreen ? const TextStyle(fontFamily: "Eurostile Round Extended", fontSize: 28) :
|
||||||
fontFamily: "Eurostile Round Extended",
|
const TextStyle(fontSize: 28)),
|
||||||
fontSize: 28,)),
|
|
||||||
title: Text("vs. ${value.endContext.firstWhere((element) => element.userId != userID).username}"),
|
title: Text("vs. ${value.endContext.firstWhere((element) => element.userId != userID).username}"),
|
||||||
subtitle: Text(dateFormat.format(value.timestamp)),
|
subtitle: Text(dateFormat.format(value.timestamp)),
|
||||||
trailing: Table(defaultColumnWidth: const IntrinsicColumnWidth(),
|
trailing: Table(defaultColumnWidth: const IntrinsicColumnWidth(),
|
||||||
|
|
|
@ -243,7 +243,6 @@ class RankState extends State<RankView> with SingleTickerProviderStateMixin {
|
||||||
),
|
),
|
||||||
Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
Text(t.entries, style: TextStyle(fontFamily: "Eurostile Round Extended", fontSize: bigScreen ? 42 : 28)),
|
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(left: 16),
|
padding: const EdgeInsets.only(left: 16),
|
||||||
child: Wrap(
|
child: Wrap(
|
||||||
|
|
|
@ -6,6 +6,8 @@ import 'package:tetra_stats/gen/strings.g.dart';
|
||||||
|
|
||||||
|
|
||||||
final DateFormat dateFormat = DateFormat.yMMMd(LocaleSettings.currentLocale.languageCode).add_Hms();
|
final DateFormat dateFormat = DateFormat.yMMMd(LocaleSettings.currentLocale.languageCode).add_Hms();
|
||||||
|
int roundSelector = -1; // -1 = match averages, otherwise round number-1
|
||||||
|
List<DropdownMenuItem> rounds = []; // index zero will be match stats
|
||||||
|
|
||||||
class TlMatchResultView extends StatefulWidget {
|
class TlMatchResultView extends StatefulWidget {
|
||||||
final TetraLeagueAlphaRecord record;
|
final TetraLeagueAlphaRecord record;
|
||||||
|
@ -23,17 +25,24 @@ class TlMatchResultState extends State<TlMatchResultView> {
|
||||||
@override
|
@override
|
||||||
void initState(){
|
void initState(){
|
||||||
_scrollController = ScrollController();
|
_scrollController = ScrollController();
|
||||||
|
rounds = [const DropdownMenuItem(value: -1, child: Text("Match"))];
|
||||||
|
rounds.addAll([for (int i = 0; i < widget.record.endContext.first.secondaryTracking.length; i++) DropdownMenuItem(value: i, child: Text("Round ${i+1}"))]);
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose(){
|
||||||
|
roundSelector = -1;
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final t = Translations.of(context);
|
final t = Translations.of(context);
|
||||||
bool bigScreen = MediaQuery.of(context).size.width > 768;
|
bool bigScreen = MediaQuery.of(context).size.width > 768;
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(
|
title: Text("${widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).username.toUpperCase()} ${t.vs} ${widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).username.toUpperCase()} in TL match ${dateFormat.format(widget.record.timestamp)}"),
|
||||||
"${widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).username.toUpperCase()} ${t.vs} ${widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).username.toUpperCase()} in TL match ${dateFormat.format(widget.record.timestamp)}"),
|
|
||||||
),
|
),
|
||||||
backgroundColor: Colors.black,
|
backgroundColor: Colors.black,
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
|
@ -100,6 +109,23 @@ class TlMatchResultState extends State<TlMatchResultView> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
SliverToBoxAdapter(
|
||||||
|
child: Center(
|
||||||
|
child: Row(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.baseline,
|
||||||
|
textBaseline: TextBaseline.alphabetic,
|
||||||
|
children: [
|
||||||
|
Text("Stats for: ",
|
||||||
|
style: const TextStyle(color: Colors.white, fontSize: 25)),
|
||||||
|
DropdownButton(items: rounds, value: roundSelector, onChanged: ((value) {
|
||||||
|
roundSelector = value;
|
||||||
|
setState(() {});
|
||||||
|
}),),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
const SliverToBoxAdapter(
|
const SliverToBoxAdapter(
|
||||||
child: Divider(),
|
child: Divider(),
|
||||||
)
|
)
|
||||||
|
@ -111,22 +137,22 @@ class TlMatchResultState extends State<TlMatchResultView> {
|
||||||
children: [
|
children: [
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "APM",
|
label: "APM",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).secondary,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).secondary : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).secondaryTracking[roundSelector],
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).secondary,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).secondary : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).secondaryTracking[roundSelector],
|
||||||
fractionDigits: 2,
|
fractionDigits: 2,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "PPS",
|
label: "PPS",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).tertiary,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).tertiary : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).tertiaryTracking[roundSelector],
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).tertiary,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).tertiary : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).tertiaryTracking[roundSelector],
|
||||||
fractionDigits: 2,
|
fractionDigits: 2,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "VS",
|
label: "VS",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).extra,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).extra : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).extraTracking[roundSelector],
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).extra,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).extra : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).extraTracking[roundSelector],
|
||||||
fractionDigits: 2,
|
fractionDigits: 2,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
|
@ -144,145 +170,145 @@ class TlMatchResultState extends State<TlMatchResultView> {
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "APP",
|
label: "APP",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.app,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.app : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].app,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.app,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.app : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].app,
|
||||||
fractionDigits: 3,
|
fractionDigits: 3,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "VS/APM",
|
label: "VS/APM",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.vsapm,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.vsapm : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].vsapm,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.vsapm,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.vsapm : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].vsapm,
|
||||||
fractionDigits: 3,
|
fractionDigits: 3,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "DS/S",
|
label: "DS/S",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.dss,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.dss : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].dss,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.dss,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.dss : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].dss,
|
||||||
fractionDigits: 3,
|
fractionDigits: 3,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "DS/P",
|
label: "DS/P",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.dsp,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.dsp : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].dsp,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.dsp,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.dsp : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].dsp,
|
||||||
fractionDigits: 3,
|
fractionDigits: 3,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "APP + DS/P",
|
label: "APP + DS/P",
|
||||||
greenSide:
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.appdsp : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].appdsp,
|
||||||
widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.appdsp,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.appdsp : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].appdsp,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.appdsp,
|
|
||||||
fractionDigits: 3,
|
fractionDigits: 3,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: t.statCellNum.cheese.replaceAll(RegExp(r'\n'), " "),
|
label: t.statCellNum.cheese.replaceAll(RegExp(r'\n'), " "),
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.cheese,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.cheese : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].cheese,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.cheese,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.cheese : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].cheese,
|
||||||
fractionDigits: 2,
|
fractionDigits: 2,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "Gb Eff.",
|
label: "Gb Eff.",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.gbe,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.gbe : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].gbe,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.gbe,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.gbe : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].gbe,
|
||||||
fractionDigits: 3,
|
fractionDigits: 3,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "wAPP",
|
label: "wAPP",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.nyaapp,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.nyaapp : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].nyaapp,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.nyaapp,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.nyaapp : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].nyaapp,
|
||||||
fractionDigits: 3,
|
fractionDigits: 3,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: "Area",
|
label: "Area",
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.area,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.area : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].area,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.area,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.area : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].area,
|
||||||
fractionDigits: 2,
|
fractionDigits: 2,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
CompareThingy(
|
CompareThingy(
|
||||||
label: t.statCellNum.estOfTRShort,
|
label: t.statCellNum.estOfTRShort,
|
||||||
greenSide: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).estTr.esttr,
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).estTr.esttr : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).estTrTracking[roundSelector].esttr,
|
||||||
redSide: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).estTr.esttr,
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).estTr.esttr : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).estTrTracking[roundSelector].esttr,
|
||||||
fractionDigits: 2,
|
fractionDigits: 2,
|
||||||
higherIsBetter: true,
|
higherIsBetter: true,
|
||||||
),
|
),
|
||||||
|
CompareThingy(
|
||||||
|
label: "Opener",
|
||||||
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.opener : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyleTracking[roundSelector].opener,
|
||||||
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.opener : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyleTracking[roundSelector].opener,
|
||||||
|
fractionDigits: 3,
|
||||||
|
higherIsBetter: true,
|
||||||
|
),
|
||||||
|
CompareThingy(
|
||||||
|
label: "Plonk",
|
||||||
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.plonk : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyleTracking[roundSelector].plonk,
|
||||||
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.plonk : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyleTracking[roundSelector].plonk,
|
||||||
|
fractionDigits: 3,
|
||||||
|
higherIsBetter: true,
|
||||||
|
),
|
||||||
|
CompareThingy(
|
||||||
|
label: "Stride",
|
||||||
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.stride : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyleTracking[roundSelector].stride,
|
||||||
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.stride : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyleTracking[roundSelector].stride,
|
||||||
|
fractionDigits: 3,
|
||||||
|
higherIsBetter: true,
|
||||||
|
),
|
||||||
|
CompareThingy(
|
||||||
|
label: "Inf. DS",
|
||||||
|
greenSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.infds : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyleTracking[roundSelector].infds,
|
||||||
|
redSide: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.infds : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyleTracking[roundSelector].infds,
|
||||||
|
fractionDigits: 3,
|
||||||
|
higherIsBetter: true,
|
||||||
|
),
|
||||||
Wrap(
|
Wrap(
|
||||||
direction: Axis.horizontal,
|
direction: Axis.horizontal,
|
||||||
alignment: WrapAlignment.spaceAround,
|
alignment: WrapAlignment.spaceAround,
|
||||||
spacing: 25,
|
spacing: 25,
|
||||||
crossAxisAlignment: WrapCrossAlignment.start,
|
crossAxisAlignment: WrapCrossAlignment.start,
|
||||||
clipBehavior: Clip.hardEdge,
|
clipBehavior: Clip.hardEdge,
|
||||||
children: [
|
children: [Padding(
|
||||||
Padding(
|
padding: const EdgeInsets.fromLTRB(20, 20, 20, 20),
|
||||||
padding:
|
|
||||||
const EdgeInsets.fromLTRB(20, 20, 20, 20),
|
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
height: 300,
|
height: 310,
|
||||||
width: 300,
|
width: 310,
|
||||||
child: RadarChart(
|
child: RadarChart(
|
||||||
RadarChartData(
|
RadarChartData(
|
||||||
radarShape: RadarShape.polygon,
|
radarShape: RadarShape.polygon,
|
||||||
tickCount: 4,
|
tickCount: 4,
|
||||||
ticksTextStyle: const TextStyle(
|
ticksTextStyle: const TextStyle(color: Colors.transparent, fontSize: 10),
|
||||||
color: Colors.transparent,
|
radarBorderData: const BorderSide(color: Colors.transparent, width: 1),
|
||||||
fontSize: 10),
|
gridBorderData: const BorderSide(color: Colors.white24, width: 1),
|
||||||
radarBorderData: const BorderSide(
|
tickBorderData: const BorderSide(color: Colors.transparent, width: 1),
|
||||||
color: Colors.transparent, width: 1),
|
|
||||||
gridBorderData: const BorderSide(
|
|
||||||
color: Colors.white24, width: 1),
|
|
||||||
tickBorderData: const BorderSide(
|
|
||||||
color: Colors.transparent, width: 1),
|
|
||||||
getTitle: (index, angle) {
|
getTitle: (index, angle) {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'APM', angle: angle, positionPercentageOffset: 0.05);
|
||||||
text: 'APM',
|
|
||||||
angle: angle,
|
|
||||||
);
|
|
||||||
case 1:
|
case 1:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'PPS', angle: angle, positionPercentageOffset: 0.05);
|
||||||
text: 'PPS',
|
|
||||||
angle: angle,
|
|
||||||
);
|
|
||||||
case 2:
|
case 2:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'VS', angle: angle, positionPercentageOffset: 0.05);
|
||||||
text: 'VS', angle: angle);
|
|
||||||
case 3:
|
case 3:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'APP', angle: angle + 180, positionPercentageOffset: 0.05);
|
||||||
text: 'APP',
|
|
||||||
angle: angle + 180);
|
|
||||||
case 4:
|
case 4:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'DS/S', angle: angle + 180, positionPercentageOffset: 0.05);
|
||||||
text: 'DS/S',
|
|
||||||
angle: angle + 180);
|
|
||||||
case 5:
|
case 5:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'DS/P', angle: angle + 180, positionPercentageOffset: 0.05);
|
||||||
text: 'DS/P',
|
|
||||||
angle: angle + 180);
|
|
||||||
case 6:
|
case 6:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'APP+DS/P', angle: angle + 180, positionPercentageOffset: 0.05);
|
||||||
text: 'APP+DS/P',
|
|
||||||
angle: angle + 180);
|
|
||||||
case 7:
|
case 7:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'VS/APM', angle: angle + 180, positionPercentageOffset: 0.05);
|
||||||
text: 'VS/APM',
|
|
||||||
angle: angle + 180);
|
|
||||||
case 8:
|
case 8:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'Cheese', angle: angle, positionPercentageOffset: 0.05);
|
||||||
text: 'Cheese', angle: angle);
|
|
||||||
case 9:
|
case 9:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'Gb Eff.', angle: angle, positionPercentageOffset: 0.05);
|
||||||
text: 'Gb Eff.', angle: angle);
|
|
||||||
default:
|
default:
|
||||||
return const RadarChartTitle(
|
return const RadarChartTitle(text: '');
|
||||||
text: '');
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dataSets: [
|
dataSets: [
|
||||||
|
@ -291,16 +317,16 @@ class TlMatchResultState extends State<TlMatchResultView> {
|
||||||
115, 76, 175, 79),
|
115, 76, 175, 79),
|
||||||
borderColor: Colors.green,
|
borderColor: Colors.green,
|
||||||
dataEntries: [
|
dataEntries: [
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).secondary * apmWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).secondary * apmWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).secondaryTracking[roundSelector] * apmWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).tertiary * ppsWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).tertiary * ppsWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).tertiaryTracking[roundSelector] * ppsWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).extra * vsWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).extra * vsWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).extraTracking[roundSelector] * vsWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.app * appWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.app * appWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].app * appWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.dss * dssWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.dss * dssWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].dss * dssWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.dsp * dspWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.dsp * dspWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].dsp * dspWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.appdsp * appdspWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.appdsp * appdspWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].appdsp * appdspWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.vsapm * vsapmWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.vsapm * vsapmWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].vsapm * vsapmWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.cheese * cheeseWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.cheese * cheeseWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].cheese * cheeseWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.gbe * gbeWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStats.gbe * gbeWeight : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).nerdStatsTracking[roundSelector].gbe),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
RadarDataSet(
|
RadarDataSet(
|
||||||
|
@ -308,16 +334,16 @@ class TlMatchResultState extends State<TlMatchResultView> {
|
||||||
115, 244, 67, 54),
|
115, 244, 67, 54),
|
||||||
borderColor: Colors.red,
|
borderColor: Colors.red,
|
||||||
dataEntries: [
|
dataEntries: [
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).secondary * apmWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).secondary * apmWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).secondaryTracking[roundSelector] * apmWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).tertiary * ppsWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).tertiary * ppsWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).tertiaryTracking[roundSelector] * ppsWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).extra * vsWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).extra * vsWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).extraTracking[roundSelector] * vsWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.app * appWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.app * appWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].app * appWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.dss * dssWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.dss * dssWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].dss * dssWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.dsp * dspWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.dsp * dspWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].dsp * dspWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.appdsp * appdspWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.appdsp * appdspWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].appdsp * appdspWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.vsapm * vsapmWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.vsapm * vsapmWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].vsapm * vsapmWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.cheese * cheeseWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.cheese * cheeseWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].cheese * cheeseWeight),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.gbe * gbeWeight),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStats.gbe * gbeWeight : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).nerdStatsTracking[roundSelector].gbe * gbeWeight),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
RadarDataSet(
|
RadarDataSet(
|
||||||
|
@ -346,46 +372,30 @@ class TlMatchResultState extends State<TlMatchResultView> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding:
|
padding: const EdgeInsets.fromLTRB(20, 20, 20, 20),
|
||||||
const EdgeInsets.fromLTRB(20, 20, 20, 20),
|
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
height: 300,
|
height: 310,
|
||||||
width: 300,
|
width: 310,
|
||||||
child: RadarChart(
|
child: RadarChart(RadarChartData(
|
||||||
RadarChartData(
|
radarShape: RadarShape.polygon,
|
||||||
radarShape: RadarShape.polygon,
|
tickCount: 4,
|
||||||
tickCount: 4,
|
ticksTextStyle: const TextStyle(color: Colors.white24, fontSize: 10),
|
||||||
ticksTextStyle: const TextStyle(
|
radarBorderData: const BorderSide(color: Colors.transparent, width: 1),
|
||||||
color: Colors.transparent,
|
gridBorderData: const BorderSide(color: Colors.white24, width: 1),
|
||||||
fontSize: 10),
|
tickBorderData: const BorderSide(color: Colors.transparent, width: 1),
|
||||||
radarBorderData: const BorderSide(
|
titleTextStyle: const TextStyle(height: 1.1),
|
||||||
color: Colors.transparent, width: 1),
|
|
||||||
gridBorderData: const BorderSide(
|
|
||||||
color: Colors.white24, width: 1),
|
|
||||||
tickBorderData: const BorderSide(
|
|
||||||
color: Colors.transparent, width: 1),
|
|
||||||
getTitle: (index, angle) {
|
getTitle: (index, angle) {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'Opener', angle: angle, positionPercentageOffset: 0.05);
|
||||||
text: 'Opener',
|
|
||||||
angle: angle,
|
|
||||||
);
|
|
||||||
case 1:
|
case 1:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'Stride', angle: angle, positionPercentageOffset: 0.05);
|
||||||
text: 'Stride',
|
|
||||||
angle: angle,
|
|
||||||
);
|
|
||||||
case 2:
|
case 2:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'Inf Ds', angle: angle + 180, positionPercentageOffset: 0.05);
|
||||||
text: 'Inf Ds',
|
|
||||||
angle: angle + 180);
|
|
||||||
case 3:
|
case 3:
|
||||||
return RadarChartTitle(
|
return RadarChartTitle(text: 'Plonk', angle: angle, positionPercentageOffset: 0.05);
|
||||||
text: 'Plonk', angle: angle);
|
|
||||||
default:
|
default:
|
||||||
return const RadarChartTitle(
|
return const RadarChartTitle(text: '');
|
||||||
text: '');
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dataSets: [
|
dataSets: [
|
||||||
|
@ -394,10 +404,10 @@ class TlMatchResultState extends State<TlMatchResultView> {
|
||||||
115, 76, 175, 79),
|
115, 76, 175, 79),
|
||||||
borderColor: Colors.green,
|
borderColor: Colors.green,
|
||||||
dataEntries: [
|
dataEntries: [
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.opener),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.opener : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyleTracking[roundSelector].opener),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.stride),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.stride : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyleTracking[roundSelector].stride),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.infds),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.infds : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyleTracking[roundSelector].infds),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.plonk),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyle.plonk : widget.record.endContext.firstWhere((element) => element.userId == widget.initPlayerId).playstyleTracking[roundSelector].plonk),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
RadarDataSet(
|
RadarDataSet(
|
||||||
|
@ -405,10 +415,10 @@ class TlMatchResultState extends State<TlMatchResultView> {
|
||||||
115, 244, 67, 54),
|
115, 244, 67, 54),
|
||||||
borderColor: Colors.red,
|
borderColor: Colors.red,
|
||||||
dataEntries: [
|
dataEntries: [
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.opener),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.opener : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyleTracking[roundSelector].opener),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.stride),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.stride : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyleTracking[roundSelector].stride),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.infds),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.infds : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyleTracking[roundSelector].infds),
|
||||||
RadarEntry(value: widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.plonk),
|
RadarEntry(value: roundSelector.isNegative ? widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyle.plonk : widget.record.endContext.firstWhere((element) => element.userId != widget.initPlayerId).playstyleTracking[roundSelector].plonk),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
RadarDataSet(
|
RadarDataSet(
|
||||||
|
|
Loading…
Reference in New Issue