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 zcmeAS@N?(olHy`uVBq!ia0y~yV6|glV7K95V_;zD`Z>Fqfq{Xuz$3Dlfk8|agc&`9 zR6Z~;FfbMexjQkeJ16s!fq{V~-O<;Pfnj4m_n$;o1_l!|PZ!6K3dT1#59WqMO0_-Q ze}{9z!4Qs=3n>>;7$hCs86-_47j!n9JaAX=g5(UIH&5SWy<5A;Om|vx$n&e8J>p+( zaJ+VL;=%RlX@2MT+<*41cJA~2?a%N0y|Zuo=4*5RW$ZuqwtCLicO^%+|H-?y>$3b? zi|zSexBscki+`xQf5z=?^|h<_Ked1M?QQ&Huku~5qT^oL)o||LJt(Yrpy}qEQ$Bt|?vq|IYQDwdF=A*Mc>ZTdoM-*Gr0Gu*!tYA|KHx`KR&zW z;o&u<+yB>`-u|z9(%r&qb*I;-^J@Qp^#1gk#HV3jEM9L}lwNzf{eAo0L2vwycu zhx%`C>ASPVez)bIey@IQBl}FquDqQQ;hcA2>nu6OQ>H%As$R%fP@u zQfN%Ec`JYY!_Puc_%U4j{<5mV63mpH1y1>3_K+v;Y_s1c%MS8JLhbRLCg&}4cgur# z4PR^TmRX%qt$D`>NqF0e-|vwI%Sb#F2GJ)3?LcX+L1vW8z`#ISXzXk|?+*#qeg9+l z^TBy}!Q<_q@B{_zFu-{?XM=r{QL*vu-8u_Is=7Ctsz3oli)^#A?fiadR<3_1zdxsX z!cC^26T^ z);u8Yfm`SHe$E527?N82L9~MV4;BzzG|FXQU?4Iy);;`u8x&{^Yu>+q{qQurP4al# zZ%~>BOAUP@?`AjHH!m#A&tKm59a>KBEwy{se)%iddmDD_EuF_#%sGGeVK9Hq+dJ0p z!6{O~Z8TXiFffpntDZ~Q?FYAA5B!?9uKjo}q*_d<&EIYd&cxuL9v;L2|1YJtPlHog z#Ql3#-=A47&+UgMwD#QPhhq*se`f&pYPR+FbGyL`J4V}E3=9ku)ti%+zkayoEi})* z{~I&w`JZfXC|mV`10T#D^2D7@=Wj#&vti%km|4%~Y`e=3^3;J}a@*#PmRiJDcO*3p z);;`u85GJ4Yu?|#et11NJze++sV>3dL!Q|F=Il0cu)j9!+grNtHvjTmSmmgH+pm3R z%lSb&STsjmKzqtgK2xgzG>(S z|9w33wmdYg`Hv&9r7s) z;Q{-LhqqmamRPVcdPpf0>*_y?u zp_4(4>AOpU(E&*V$p+;YCl{P#Fj`@`{8Xyqk(h0v)h{cTe9wsAwr$&wNRX`zIA*Gf zdFRJNBk1|HO5XX94tzrG|9x`rz~T#>hfx{WaQj;#a_K(j@-|q>cX`|8M7@W_Z-RlOW2TpRe#g6B^_?4ghIZm)-T zHh<^x|9-gT?PIX7*5v2U9UaI31qEqSLqv`8%*p=o=RC-4hBfamfBlel`!9r(pFej! zxa99TN` z+9{x@5=2{i0_qe%D#EX|d*$S|?}fBGzP?@i8PfX%hyCy%{<-8@Tla$wSw^Z+TlX!~4e_S@5)ELhkc>mF8gY8V>NfJ!%Yz4y+df zK9&BDIs6CgkCs=oT321nJO95d zC?Pd`t-WP$pS%11xAnQuv9H|vVYIfQ;B_3>Hx9>lR?gc7Sv7Ltm)x^UHs|N-LmT*e z%jfac%ax4|^HX=2A6)e{e68IlXO~xP2uf@WuWv^`hcr&W+~Gm|>D`x8Z3_0w>uT%i z&n%a}2KSB=3J3c%<>%ZVHnxZBW}EK0@hx@UbG~`i{`LR9#@>MKOS9YogML0_kBIv-ubu7 z=ak<6ba`9&=C*dQa=rcSYf84?-}iL-=C=08*LnNz{*F9+FKS-e+TDM@>8`)jRX6|n z&gT6#-&6k^ZO^|NKV|)Ii|zUU&n8d({iiwoKd0A}F1Nq6dS|UX$lSXA;@|W3ivH#QTqnM1@zx;l=$WUh KpUXO@geCwKQ!#-6 literal 0 HcmV?d00001 diff --git a/filcnaplo_mobile_ui/lib/common/personality_card/personality_card.dart b/filcnaplo_mobile_ui/lib/common/personality_card/personality_card.dart index e1664140..0f530140 100644 --- a/filcnaplo_mobile_ui/lib/common/personality_card/personality_card.dart +++ b/filcnaplo_mobile_ui/lib/common/personality_card/personality_card.dart @@ -35,8 +35,7 @@ class _PersonalityCardState extends State { 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(), + ), + ); } }