From fe0a7d81ae4b70cded8ac8a3a31ac6c0262aa183 Mon Sep 17 00:00:00 2001 From: kima Date: Thu, 22 Jun 2023 20:52:45 +0200 Subject: [PATCH] finished personalities map --- filcnaplo/assets/images/card_border.png | Bin 0 -> 13473 bytes .../personality_card/personality_card.dart | 138 +++++++++++++++++- 2 files changed, 130 insertions(+), 8 deletions(-) create mode 100644 filcnaplo/assets/images/card_border.png diff --git a/filcnaplo/assets/images/card_border.png b/filcnaplo/assets/images/card_border.png new file mode 100644 index 0000000000000000000000000000000000000000..5df72bec96a9ffe0cf8abd52477b369583a8c349 GIT binary patch literal 13473 zcmeHOe^8U>9e-`LY9}z)V~Q4V*LD4)r=q772qfrS(e(yB&sGt}k9L5JCMk;{u#kjX zduFy(x?T&e0&)FCcLstA?`wb%H0_wCBx=r3c@xq!gTP`EBqRazYtQ?;k*t_7srmXKjkE|87RIL$esN$vTgfm44|`Td#Gp|4e5nP{1$ zw6$Bo3jM{clA7I8U%i)orC%=a#fZ)XOIe>{{z|<-?LDu_9aidN9aEX?8Kcx3kgjJq zOOInUja<<&#r51^((ojQrs)cK>}<<`)U1+nu~3Z~3%>oHu|h9Y%Sxl34SnlWON&Nc zo=UcLd{in>i=AR)5kMP3^p%b#-lN3mhfmc!Li8z@o*}w-AJ&u;B{30{K?()ggDMNU z1O9jIy%?vgnOI&-FUCLsZJ^{+a2*4jEIfgdoo`EvAN>)XCtgAbd=QuOhNFm4#yb-$ ziT)oeByf5nGQD3k-cPe94o=Ke5cnZ_@A&VlQs6NDL&$tM4*SM{GSK+tgcyZ_e)%?S z3bQ+rnAN%k#>&*Mp0063lf*+g&Ytz~$y)OhMF02Ibb@oWPe!KqjfVWFHk;bdp}ZJ2 z+{>pe7~I1Iw&DL`-8==QIb3ztZWJc}n^nURRxQ-F0jyF|TUq2tRKCVPYxgoKo}o%e zvhXJsA;AT%jM_3I!HOZztcI@GG~n{zPKGktaK3eXBG67-MNIpKGzu3BK6vHLY@*+g zIlYwVe;1j4cQo3}E}Q@jkvg3=vwF@av7o+1rMljR(u^hV(CSd{oZm%vh;?o#e)|Ol zw>g@#Qqrv=;jkNMPRPg&&qrtlAo;&`m319m34PbTJI!t4ekN%a3k7T}9d2R>_2Ovy zvZuJX8nW!5X*kt8n$p6oqlhMEwy5$hSsh7G)N-0v(+%JF$B4fL5P2YX^Su_Exx-HF zS!W>cL#w|WqMUjHg1>KRX0J?@!QVMP_9@D~{HIAF{EV2Ae?e{iW^stgt^YM2<3c^Ye zOB=8>I7QO}TtvG0Oc9g6F6?j=-`}nBy;psGKN1D$DJm~$j=_}?k?Qg7nc-Q`_$Ow)0dI0pQp53DgMb9dFV_0 z@#;^!hYL^?oz8(D(f_DafdWzi^#NJ+)lm{MfG-q;dJ`OQ{q)Zlkq)fIJw^Yi-5Yi2 ztmf09x}r^H4sR`iR&8e!-)e-oeGw@g0UYj^w0BkAfCB8L6ky;+swe>>96bQ*ClKSX zZ&a0tBxG603bb3LjRt#Cxlr{g}~cm^Q@2vScCCI$XU2 zio4|@pWB;{l<311;l)XAC{JZoK{%yOqkG~NI7}tgTG*2c3h+&R0JT#`DQKEct2Jf# zY`kcR#EW+YdH2}22bluf7^Fk|ZN4MvJvS>Ea1ymRoqBgLh3O*`fi}J}qOTU}Ts6pa zh2jY!fkT}`3l+-S%6C%5-BcA6$D^b-~OE*#uXvE8nh;1%Fv zi4U&=51Y8ANlTSl)SoM)l^>kh=oCGskl?&Vu&hH5oIfgtZ{MU8OOIft-jN2dl4D~j zjlLY!@S*0C*6x63qwM-yLWx!WhBD1t9NLPpZxp;Q^MQ*rp@COF@cBi#<~7G#z^xdi zNenK-l(y0W*MeIxXBoIJ { late Map subjectAvgs = {}; late double subjectAvg; late List classWorkGrades; - late int mostCommonGrade; - late int onesCount; + late Map mostCommonGrade; late List absences = []; late List delays = []; final Map _lessonCount = {}; @@ -129,8 +128,7 @@ class _PersonalityCardState extends State { } }); - mostCommonGrade = maxKey; - onesCount = counts.values.toList()[0]; + mostCommonGrade = {maxKey: maxValue}; } void getAbsences() { @@ -154,7 +152,8 @@ class _PersonalityCardState extends State { finalPersonality = PersonalityType.cheater; } else if (subjectAvg > 4.7) { finalPersonality = PersonalityType.geek; - } else if (onesCount > 1) { + } else if (mostCommonGrade.keys.toList()[0] == 1 && + mostCommonGrade.values.toList()[0] > 1) { finalPersonality = PersonalityType.fallible; } else if (absences.length < 10) { finalPersonality = PersonalityType.healthy; @@ -171,9 +170,9 @@ class _PersonalityCardState extends State { finalPersonality = PersonalityType.late; } else if (absences.length >= 100) { finalPersonality = PersonalityType.sick; - } else if (mostCommonGrade == 2) { + } else if (mostCommonGrade.keys.toList()[0] == 2) { finalPersonality = PersonalityType.acceptable; - } else if (mostCommonGrade == 3) { + } else if (mostCommonGrade.keys.toList()[0] == 3) { finalPersonality = PersonalityType.average; } else if (classWorkGrades.length >= 5) { finalPersonality = PersonalityType.diligent; @@ -182,11 +181,134 @@ class _PersonalityCardState extends State { } } + Widget cardInnerBuilder() { + Map emoji = {PersonalityType.geek: '🤓'}; + Map> personality = { + PersonalityType.geek: { + 'emoji': '🤓', + 'title': 'Stréber', + 'description': + 'Sokat tanulsz, de ezzel semmi baj! Ez egyben áldás és átok, de legalább az életben sikeres leszel.', + 'subtitle': 'Év végi átlagod', + 'subvalue': subjectAvg.toStringAsFixed(2), + }, + PersonalityType.sick: { + 'emoji': '🤒', + 'title': 'Beteges', + 'description': + 'Jobbulást, tesó. Még akkor is, ha hazudtál arról, hogy beteg vagy, hogy ne kelljen suliba menned.', + 'subtitle': 'Hiányzásaid', + 'subvalue': absences.length.toString(), + }, + PersonalityType.late: { + 'emoji': '⌛', + 'title': 'Késős', + 'description': + 'Kilukadt a villamos kereke. Kisiklott a repülő. A kutyád megette a cipőd. Elhisszük.', + 'subtitle': 'Késésed (perc)', + 'subvalue': (absences.where( + (a) => a.state == Justification.unexcused && a.delay > 0)) + .map((e) => e.delay) + .reduce((a, b) => a + b) + .toString(), + }, + PersonalityType.quitter: { + 'emoji': '❓', + 'title': 'Lógós', + 'description': 'Osztályzóvizsga incoming.', + 'subtitle': 'Igazolatlan hiányzások', + 'subvalue': (absences.where( + (a) => a.state == Justification.unexcused && a.delay == 0)) + .length + .toString(), + }, + PersonalityType.healthy: { + 'emoji': '😷', + 'title': 'Makk', + 'description': + '...egészséges vagy! Egész évben alig hiányoztál az iskolából.', + 'subtitle': 'Hiányzásaid', + 'subvalue': absences.length.toString(), + }, + PersonalityType.acceptable: { + 'emoji': '🤏', + 'title': 'Elmegy', + 'description': + 'A kettes érettségi is érettségi. Nem egy jó érettségi, de biztos, hogy egy érettségi.', + 'subtitle': 'Kettesek', + 'subvalue': mostCommonGrade.values.toList()[0].toString(), + }, + PersonalityType.fallible: { + 'emoji': '📉', + 'title': 'Bukós', + 'description': 'Jövőre több sikerrel jársz.', + 'subtitle': 'Karók', + 'subvalue': mostCommonGrade.values.toList()[0].toString(), + }, + PersonalityType.average: { + 'emoji': '👌', + 'title': 'Közepes', + 'description': 'Se jó, se rossz. Az arany középút, if you will.', + 'subtitle': 'Hármasok', + 'subvalue': mostCommonGrade.values.toList()[0].toString(), + }, + PersonalityType.diligent: { + 'emoji': '💫', + 'title': 'Szorgalmas', + 'description': + 'Leírtad a jegyzetet, megcsináltad a prezentációt, és te vezetted a projektmunkát.', + 'subtitle': 'Órai munka ötösök', + 'subvalue': classWorkGrades.length.toString(), + }, + PersonalityType.cheater: { + 'emoji': '‍🧑‍💻', + 'title': 'Csaló', + 'description': + 'Bekapcsoltad a “Jó Tanuló” módot. Wow. Azt hitted, outsmartolhatsz, de outsmartingoltam az outsmartingolásod.', + 'subtitle': 'Bitches', + 'subvalue': '0', + }, + PersonalityType.npc: { + 'emoji': '⛰️', + 'title': 'NPC', + 'description': + 'Egy akkora nagy non-player character vagy, hogy neked semmilyen személyiség nem jutott ezen kívül.', + 'subtitle': 'In-game playtime (óra)', + 'subvalue': '69420', + } + }; + + for (var i in personality.keys) { + Widget w = Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + personality[i.name]?['emoji'] ?? '⛰️', + style: const TextStyle(fontSize: 128), + ) + ], + ); + } + return Container(); + } + @override Widget build(BuildContext context) { doEverything(); getPersonality(); - return Container(); + return Container( + decoration: const BoxDecoration(color: Color(0x600008FF)), + child: Container( + padding: const EdgeInsets.all(5), + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage('images/card_border.png'), + ), + ), + child: cardInnerBuilder(), + ), + ); } }