{# Nazwy chipow zostaja oryginalne — tak sie o nich mowi w grze. Mapujemy wylacznie wewnetrzne kody API na te nazwy; nieznany kod pokazujemy wprost, zeby nowy chip FPL nie zniknal z ekranu. Wspolne miejsce dla kazdego szablonu, ktory pokazuje chipy (tabela kolejki, podglad przed startem). #} {% macro label(code) %} {%- set labels = {'wildcard': 'WC', 'freehit': 'FH', 'bboost': 'BB', '3xc': 'TC'} -%} {{- labels[code] ?? code -}} {% endmacro %} {% macro name(code) %} {%- set names = {'wildcard': 'Wildcard', 'freehit': 'Free Hit', 'bboost': 'Bench Boost', '3xc': 'Triple Captain'} -%} {{- names[code] ?? code -}} {% endmacro %} {# Wartosc punktowa. Bez skali kolorow — wyrozniamy tylko zero i wynik ujemny, bo w FPL minus znaczy cos konkretnego: czerwona kartka albo samoboj. Wyszarzone zero znaczy "nic sie nie wydarzylo", wiec nie wolno go dawac zawodnikowi, ktory wybiegl na boisko i po prostu nic nie ugral — takie zero jest pelnoprawnym wynikiem i ma wygladac jak kazda inna liczba. Dlatego wywolanie z wiersza skladu wylacza przygaszanie, gdy zawodnik ma minuty. #} {% macro pts(value, dimZero = true, live = false) %} {#- Zielen znaczy "ta liczba moze sie jeszcze zmienic, bo klub gra teraz". Wynik ujemny zostaje czerwony nawet w trwajacym meczu: czerwien mowi o tym, co juz sie wydarzylo, i jest wazniejsza od zapowiedzi zmiany. -#} {%- set state = value < 0 ? ' pts--neg' : (live ? ' pts--live' : ((value == 0 and dimZero) ? ' pts--zero' : '')) -%} {{ value }} {% endmacro %} {# Wartosc pojedynczego zawodnika poza tabela skladu (np. w roznicach). Powtarza te sama regule co wiersz skladu: w trwajacej kolejce brak minut i brak punktow znaczy "jeszcze nie gral" i rysuje sie przerywanym pudelkiem, a nie zerem. #} {% macro playerValue(value, minutes, live) %} {%- if live and minutes == 0 and value == 0 -%} · {%- else -%} {{ _self.pts(value, minutes == 0) }} {%- endif -%} {% endmacro %} {# Wiersz zawodnika. W trwajacej kolejce zero minut przy zerze punktow znaczy "jeszcze nie zaczal", a nie "nie zdobyl" — po zakonczeniu kolejki to juz zwyczajne zero. Statystyki maja wlasna kolumne, zeby ustawialy sie w pionie i nie doklejaly do nazwiska. `playingNow` oznacza klub zawodnika grajacy WLASNIE TERAZ (App\League\MatchView::isClubPlayingNow). Niesie ja sama wartosc punktowa, ktora robi sie zielona — osobny znaczek przy nazwisku okazal sie halasem, a liczba i tak jest tym, na co sie patrzy. #} {% macro row(pick, live, playingNow = false) %} {%- set waiting = live and pick.minutes == 0 and pick.rawPoints == 0 -%} {{ pick.element.positionLabel }} {{- pick.element.webName -}} {#- Mnoznik 3 to Triple Captain. Znacznik bierze sie z niego, a nie z samej opaski kapitana, bo gdy kapitan nie zagra, potrojenie przechodzi na zmiennika — i to on ma tu byc opisany jako TC. -#} {%- if pick.multiplier == 3 %} TC{% elseif pick.captain %} C{% elseif pick.viceCaptain %} V{% endif -%} {{ pick.element.plTeam.shortName }} {%- if pick.goalsScored > 0 %}{{ pick.goalsScored }}G{% endif -%} {%- if pick.assists > 0 %}{{ pick.assists }}A{% endif -%} {%- if pick.cleanSheets > 0 and pick.element.earnsCleanSheetPoints %}CS{% endif -%} {%- if pick.defensiveContribution > 0 %}{{ pick.defensiveContribution }}DC{% endif -%} {%- if pick.bonus > 0 %}{{ pick.bonus }}BP{% endif -%} {%- if pick.penaltiesMissed > 0 %}{{ pick.penaltiesMissed }}PM{% endif -%} {%- if pick.ownGoals > 0 %}{{ pick.ownGoals }}OG{% endif -%} {%- if pick.yellowCards > 0 %}YC{% endif -%} {%- if pick.redCards > 0 %}RC{% endif -%} {% if pick.multiplier > 1 %}×{{ pick.multiplier }}{% endif %} {%- if waiting -%} · {%- else -%} {{ _self.pts(pick.multiplier == 0 ? pick.rawPoints : pick.effectivePoints, pick.minutes == 0, playingNow) }} {%- endif -%} {% endmacro %}