Skip to content

Commit

Permalink
0.9.7
Browse files Browse the repository at this point in the history
  • Loading branch information
SiekamCebule committed Sep 12, 2023
1 parent d06f217 commit 9e2d2fa
Show file tree
Hide file tree
Showing 5 changed files with 589 additions and 35 deletions.
2 changes: 1 addition & 1 deletion source/UI/Competition/CompetitionConfigWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -938,7 +938,7 @@ void CompetitionConfigWindow::on_pushButton_jumpersLists_clicked()
{
for(auto & status : window->constructJumpersListsStatuses())
{
if(status.second == JumpersListsListItemWidget::Select)
if(status.second == JumpersListsListItemWidget::Select && seasonCompetition->getAdvancementCompetition() == nullptr && seasonCompetition->getAdvancementClassification() == nullptr)
{
for(auto & jumper : status.first->getJumpersReference())
{
Expand Down
10 changes: 5 additions & 5 deletions source/UI/HelpWindow.ui
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ color: rgb(26, 95, 180);
</font>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<property name="elideMode">
<enum>Qt::ElideNone</enum>
Expand Down Expand Up @@ -140,15 +140,15 @@ li.checked::marker { content: &quot;\2612&quot;; }
&lt;h2 style=&quot; margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a name=&quot;ogólne-wyjaśnienie-symulacji-skoku&quot;&gt;&lt;/a&gt;&lt;span style=&quot; font-size:x-large; font-weight:700;&quot;&gt;O&lt;/span&gt;&lt;span style=&quot; font-size:x-large; font-weight:700;&quot;&gt;gólne wyjaśnienie symulacji skoku&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ogólny wzór na odległość zawodnika wygląda następująco:&lt;br /&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Odległość&lt;/span&gt; = &lt;span style=&quot; font-family:'Courier New';&quot;&gt;(OW*WW) + (OL*WL) + WIND + GATE + MANIP + SNOW&lt;/span&gt;&lt;br /&gt;OW = Ocena wybicia (Zawodnik)&lt;br /&gt;WW = Wpływ wybicia (Skocznia)&lt;br /&gt;OL = Ocena lotu (Zawodnik)&lt;br /&gt;WL = Wpływ lotu (Skocznia)&lt;br /&gt;WIND = Metry odjęte lub dodane na podstawie wiatru przy skoku&lt;br /&gt;GATE = Metry za belkę&lt;br /&gt;MANIP = Metry dodane lub odjęte poprzez manipulację skoku (bonus lub zakres odległości)&lt;br /&gt;SNOW = Metry odjęte za śnieg na najeździe&lt;br /&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Ocena wybicia&lt;/span&gt; = &lt;span style=&quot; font-family:'Courier New';&quot;&gt;(TW*0.8485) + (F*0.1515) + RANDOM - CHAR&lt;/span&gt;&lt;br /&gt;TW = Technika wybicia zawodnika&lt;br /&gt;F = Forma zawodnika&lt;br /&gt;RANDOM = Losowość oceny wybicia&lt;br /&gt;CHAR = Odjęcie z tytułu cech charakterystycznych (Wysokość wybicia. Np. czym większa skocznia tym większe minusy za wysokie wybicie)&lt;br /&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Ocena lotu&lt;/span&gt; = &lt;span style=&quot; font-family:'Courier New';&quot;&gt;(TL*0.8265) + (F*0.1735) + RANDOM - CHAR + STYLE&lt;/span&gt;&lt;br /&gt;TL = Technika lotu zawodnika&lt;br /&gt;CHAR = Odjęcie z tytułu cech charakterystycznych (Wysokość lotu. Np. czym mniejsza skocznia tym większe minusy za niski lot)&lt;br /&gt;STYLE = Bonus lub odjęcie na podstawie stylu lotu. Czym szerszy styl, tym bonus jest większy (należy pamiętać o tym, że szeroki styl lotu ma np. duże minusy przy wietrze tylnym gdzie lepszy jest np. Styl V)&lt;/p&gt;
&lt;h2 style=&quot; margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a name=&quot;co-składa-się-na-losowość-skoku&quot;&gt;&lt;/a&gt;&lt;span style=&quot; font-size:x-large; font-weight:700;&quot;&gt;C&lt;/span&gt;&lt;span style=&quot; font-size:x-large; font-weight:700;&quot;&gt;o składa się na losowość skoku?&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Generator losowości korzysta z “normalnego rozkładu prawdopodobieństwa” (&lt;a href=&quot;https://pl.wikipedia.org/wiki/Rozk%C5%82ad_normalny&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#8ab4f8;&quot;&gt;Wikipedia&lt;/span&gt;&lt;/a&gt;) gdzie mamy dwa parametry. Parametry wyglądają inaczej w zależności od tego czy losujemy do wybicia, czy do lotu:&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Generator losowości korzysta z “normalnego rozkładu prawdopodobieństwa”(Wikipedia: https://en.wikipedia.org/wiki/Normal_distribution) gdzie mamy dwa parametry. Parametry wyglądają inaczej w zależności od tego czy losujemy do wybicia, czy do lotu:&lt;/p&gt;
&lt;h3 style=&quot; margin-top:14px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a name=&quot;wybicie&quot;&gt;&lt;/a&gt;&lt;span style=&quot; font-size:large; font-weight:700;&quot;&gt;W&lt;/span&gt;&lt;span style=&quot; font-size:large; font-weight:700;&quot;&gt;ybicie&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
&lt;li style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Średnia losowości&lt;/span&gt; = 0&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Odchylenie standardowe losowości&lt;/span&gt; = 4.14 - (Wysokość wybicia / 8.2) - (Równość skoków / 1.55)&lt;/li&gt;&lt;/ul&gt;
&lt;h3 style=&quot; margin-top:14px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a name=&quot;lot&quot;&gt;&lt;/a&gt;&lt;span style=&quot; font-size:large; font-weight:700;&quot;&gt;L&lt;/span&gt;&lt;span style=&quot; font-size:large; font-weight:700;&quot;&gt;ot&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
&lt;li style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Średnia losowości&lt;/span&gt; = 0&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Odchylenie standardowe losowości&lt;/span&gt; = 4.18 - (Wysokość lotu / 8.2) - (Równość skoków / 1.55) + (Bonus za styl lotu)&lt;br /&gt;Istnieje 50% szans że losowanie będzie ujemne i 50% że będzie one dodatnie. Jeżeli losowość jest dodatnia, nie bierzemy pod uwagę parametru równości skoków. Bonus za styl lotu w odchyleniu standardowym losowości zwiększa się im szerszy jest lot zawodnika, czyli czym lot jest szerszy tym jest bardziej podatny na losowość).&lt;br /&gt;Jeśli chcesz skorzystać z generatora losowości który jest używany w symulatorze, zajrzyj &lt;a href=&quot;https://keisan.casio.com/exec/system/1180573188&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#8ab4f8;&quot;&gt;tutaj&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Odchylenie standardowe losowości&lt;/span&gt; = 4.18 - (Wysokość lotu / 8.2) - (Równość skoków / 1.55) + (Bonus za styl lotu)&lt;br /&gt;Istnieje 50% szans że losowanie będzie ujemne i 50% że będzie one dodatnie. Jeżeli losowość jest dodatnia, nie bierzemy pod uwagę parametru równości skoków. Bonus za styl lotu w odchyleniu standardowym losowości zwiększa się im szerszy jest lot zawodnika, czyli czym lot jest szerszy tym jest bardziej podatny na losowość).&lt;br /&gt;Jeśli chcesz skorzystać z generatora losowości który jest używany w symulatorze, zajrzyj tutaj: (https://keisan.casio.com/exec/system/1180573188).&lt;/li&gt;&lt;/ul&gt;
&lt;h2 style=&quot; margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a name=&quot;lądowanie&quot;&gt;&lt;/a&gt;&lt;span style=&quot; font-size:x-large; font-weight:700;&quot;&gt;L&lt;/span&gt;&lt;span style=&quot; font-size:x-large; font-weight:700;&quot;&gt;ądowanie&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Wyróżniamy cztery rodzaje lądowania:&lt;/p&gt;
&lt;ol style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
Expand Down Expand Up @@ -239,7 +239,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
&lt;h3 style=&quot; margin-top:14px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a name=&quot;wyjaśnienie-działania-systemu-formy-zawodników-i-ich-tendencji&quot;&gt;&lt;/a&gt;&lt;span style=&quot; font-size:large; font-weight:700;&quot;&gt;W&lt;/span&gt;&lt;span style=&quot; font-size:large; font-weight:700;&quot;&gt;yjaśnienie działania systemu formy zawodników i ich tendencji&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Każdy zawodnik ma określoną formę i tendencję tej formy. Forma wynosi od 0 do 100, a tendencja od -10 do 10. Tendencja formy określa jak bardzo wzrostowy lub spadkowy jest trend zmiany tej formy. Np. Tendencja o sile 7 jest mocno wzrostowa i trudno ją zmienić na spadkową.&lt;br /&gt;Czym tendencja jest silniejsza, tym wolniej następuje jej ewentualny wzrost i jest większa szansa na ewentualne odwrócenie w drugą stronę. Czym tendencja jest silniejsza, tym silniejsza jest też zmiana formy zawodnika. Czym forma zawodnika jest bardziej skrajna, tym mniejsze bonusy bądź minusy on dostaje. Np. przy formie 80 ewentualny wzrost formy będzie mało znaczący, a ewentualny spadek będzie dość poważnym zagrożeniem w walce o utrzymanie dobrej dyspozycji zawodnika.&lt;/p&gt;
&lt;h3 style=&quot; margin-top:14px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a name=&quot;parametry-generatora-formy&quot;&gt;&lt;/a&gt;&lt;span style=&quot; font-size:large; font-weight:700;&quot;&gt;P&lt;/span&gt;&lt;span style=&quot; font-size:large; font-weight:700;&quot;&gt;arametry generatora formy&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Generator dziewięć następujących parametrów generatora formy:&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Istnieje dziewięć następujących parametrów generatora formy:&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
&lt;li style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Zmienność tendencji&lt;/span&gt; (Wysoka zmienność zwiększa ewentualne zmiany tendencji)&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Bonus tendencji&lt;/span&gt; (Zwyczajny bonus. Np. odejmujemy jakiemuś zawodnikowi -2 z tendencji)&lt;/li&gt;
Expand Down Expand Up @@ -324,7 +324,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
&lt;li style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Punkt HS&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700; font-style:italic;&quot;&gt;Punkty za punkt K&lt;/span&gt; &lt;span style=&quot; font-style:italic;&quot;&gt;(Można ustawić automatycznie)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700; font-style:italic;&quot;&gt;Punkty za metr&lt;/span&gt; &lt;span style=&quot; font-style:italic;&quot;&gt;(Można ustawić automatycznie)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Punkty za belkę&lt;/span&gt; (Można wziąć z tej strony: &lt;a href=&quot;https://www.fis-ski.com/DB/ski-jumping/homologations.html&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#8ab4f8;&quot;&gt;Homologations (fis-ski.com)&lt;/span&gt;&lt;/a&gt;)&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Punkty za belkę&lt;/span&gt; (Można wziąć z tej strony: https://www.fis-ski.com/DB/ski-jumping/homologations.html&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Punkty za wiatr przedni&lt;/span&gt; (Również z tej strony)&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700; font-style:italic;&quot;&gt;Punkty za wiatr tylni&lt;/span&gt; &lt;span style=&quot; font-style:italic;&quot;&gt;(Również z tej strony) (Można ustawić automatycznie)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Wpływ wybicia&lt;/span&gt;&lt;/li&gt;
Expand Down
8 changes: 4 additions & 4 deletions source/simulator/Hill.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -222,19 +222,19 @@ double Hill::calculatePointsForBackWindBy50PercentsOfFrontWind(double pointsForF
double Hill::calculateBestTakeoffHeightLevel(Hill *hill)
{
if(hill->getTakeoffEffect() > hill->getFlightEffect())
return (hill->getTakeoffEffect() / hill->getFlightEffect()) / 1.6;
return 0.8 + (hill->getTakeoffEffect() / hill->getFlightEffect()) / 1.3;
else
return -(hill->getFlightEffect() / hill->getTakeoffEffect()) / 1.6;
return 0.8 + -(hill->getFlightEffect() / hill->getTakeoffEffect()) / 1.3;

return 0;
}

double Hill::calculateBestFlightHeightLevel(Hill *hill)
{
if(hill->getTakeoffEffect() > hill->getFlightEffect())
return (hill->getTakeoffEffect() / hill->getFlightEffect()) / 0.8;
return 0.8 + (hill->getTakeoffEffect() / hill->getFlightEffect()) / 0.61;
else
return -(hill->getFlightEffect() / hill->getTakeoffEffect()) / 0.8;
return 0.8 + -(hill->getFlightEffect() / hill->getTakeoffEffect()) / 0.61;

return 0;
}
Expand Down
8 changes: 4 additions & 4 deletions source/simulator/JumpSimulator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,12 @@ void JumpSimulator::generateTakeoffRating()
{
double multiplier = GlobalSimulationSettings::get()->getMaxSkills() / 100;

double ratingMultiplier = 0.8485 + 0.1 * hill->getLevelOfCharacteristic("takeoff-technique-effect");
double ratingMultiplier = 0.842 + 0.1 * hill->getLevelOfCharacteristic("takeoff-technique-effect");
simulationData->takeoffRating = jumperSkills->getTakeoffTechnique() * ratingMultiplier;

simulationData->takeoffRating += ((jumperSkills->getLevelOfCharacteristic("takeoff-power") * 2 * multiplier) * (1 + 0.1 * hill->getLevelOfCharacteristic("takeoff-power-effect")));

ratingMultiplier = 0.1515 + 0.1 * hill->getLevelOfCharacteristic("takeoff-form-effect");
ratingMultiplier = 0.158 + 0.1 * hill->getLevelOfCharacteristic("takeoff-form-effect");
simulationData->takeoffRating += jumperSkills->getForm() * ratingMultiplier;

simulationData->takeoffRating -= std::abs(Hill::calculateBestTakeoffHeightLevel(hill) - jumper->getJumperSkills().getLevelOfCharacteristic("takeoff-height")) * 1.75 * multiplier;
Expand All @@ -144,10 +144,10 @@ void JumpSimulator::generateFlightRating()
{
double multiplier = GlobalSimulationSettings::get()->getMaxSkills() / 100;

double ratingMultiplier = 0.8265 + 0.11 * hill->getLevelOfCharacteristic("flight-technique-effect");
double ratingMultiplier = 0.82 + 0.11 * hill->getLevelOfCharacteristic("flight-technique-effect");
simulationData->flightRating = jumperSkills->getFlightTechnique() * ratingMultiplier;

ratingMultiplier = 0.1735 + 0.1 * hill->getLevelOfCharacteristic("flight-form-effect");
ratingMultiplier = 0.18 + 0.1 * hill->getLevelOfCharacteristic("flight-form-effect");
simulationData->flightRating += jumperSkills->getForm() * ratingMultiplier;

simulationData->flightRating -= std::abs(Hill::calculateBestFlightHeightLevel(hill) - jumper->getJumperSkills().getLevelOfCharacteristic("flight-height") * 2.25 * multiplier);
Expand Down
Loading

0 comments on commit 9e2d2fa

Please sign in to comment.