using System;
using Model;

namespace StubLib
{
    public partial class StubData
    {
        private List<Champion> champions = new()
        {
            new Champion("Renekton", ChampionClass.Fighter, "UklGRtwDAABXRUJQVlA4INADAAAwEACdASoqACoAAMASJZgCdMoSCz655ndU4XXAP2yXIge5neM/Qd6WCfO8evoj2S0A/p7+f0An85cBxlLDgPC8jO/0nsl/13/O8vvzj7Af8s/p3/H4FU6td4MCwq23z1H2uzoKIXaqJniPI/bRMf8qzv0Zp+HE1RCBw5WQ1j/JovdM1FS52+QcaAAA/v/+NxU4DpPk3+xQPW7tcmURSo9vC4qc+XMxNVBzEM5E8actDz98gmwTXgD62e9EmG/ervdd2ovFFSuxYppWl/wtaX3rkn0xrt8qOql/5I2jfLOnCU0kALLcW4F/wTjU10qsxZXW9fxauC6OPVRF28sc94V9ocmoSWy+sf6jW3vYkVOh+gE/RE0L6b2d3oFyHmkRJnfYwG8o3p6fv9pivNF5aopIBzFnjzwb/VqSq3/b+MWKFmjr8T1qe4/fITo2vBWEqDyogV3ZVGnDVi2DbiEFVSUr2eXTNZQ9V/D9QC/+vCR5TGyX9QOVBgtAYtm/ZTIwzPEYB9NrV1NeO1/sAz78u0tW59r0I+SO5Jgm3B9i1toRurzHv9EZJ9yZL8nafb/T1FaoPDkuJfM+iPs0j8xnS7TaU/gEK0wCxeDYRYtJx9j4hUQq7pAu/T2yWy0vjcUHki952ZNbXnXxB8m8pV5x9E1sfLj5MZEgpU2XV8RHrVvWniCjsf6vgxmR7+KtwIbMjahitUGtHet1WdL+8MmdL29iQJC37pDXirir1NibxKKhFYRuJ3xW9O0r9+Vnh8diqbBuXqDbYR/MSoHvscOCm2t95dN5WBdRUoD7YCG/ZHWc7Ypv/x/al4fkB2lZlYhVWHxjaoeF9jEPI0gAN5XsvUI6hbzEzWMsNW/1orkNOnlskalgmpI4B2rm4Gc7LNui+MuMBrpnBvLkbYX9exe9g8tu7wLt7ScOjDcL99oOyR89Mh9L8rd4+43+JQyR6tsIfcPJo6T6FxHf11d/MGayJi+SWct/uhvvua0oOh+zXNIaUzgoBmu1XULjkpuA0Ghzctf30jbY1AOM49qbMZRYS9A+0S1HrHPnwRvpQY/Sj4xKPn0gdpv/+iTbKJb8zkPC4/9af0Jvesa+GDG0/iw3TswenMhqlh7BM9MW5txpeblsByx4WnJ/oHv6cc0dmM7tsV36lYkCTUXEf/0eKlnfivnN0g1g+j/Lk9et/uoa6TFCW0HgwFOIVFumEYdT675PfuTrYO5o8ZrWEIHtv2Ctlrv9J3TrslD/iKEwtipGHtn0Vak8B9wLL+kz+CIQ/VG4KJpXjx88CeCC4XaGitEdjAAA",
                         "[encoded data, 116516 characters]",
                         "Originaire du désert brûlant de Shurima, Renekton est un Transfiguré terrifiant animé par la rage. Il était autrefois le guerrier le plus respecté de l'empire de Shurima, dont il avait mené les armées vers la victoire à maintes reprises. Cependant, après la chute de l'empire, Renekton fut enseveli sous les sables. Petit à petit, alors que le monde changeait, il sombra dans la démence. Désormais libre, son unique souhait est de retrouver et de tuer son frère Nasus qui, croit-il dans sa folie, est responsable des siècles qu'il a passés dans les ténèbres."),
            new Champion("Aphelios", ChampionClass.Marksman, "UklGRnYDAABXRUJQVlA4IGoDAABQDwCdASoqACoAPjEYiUQiIYjiQBABgljAJ0ztIcf+bqQavbmXbhvKVOAeq/jG9iKAXaH+M4dZeQPR8A87HobZ+nqD2Cf5L/X/+RwGaJqmy2IJw6dEwIW5TAGwqHN5PVWoSj7eAA6v5Eml+GGnkqobDWuB2SrWvkkm6kOf7WNMPDMggAD+//O6e5o6kUkiZ/dui/bMtCODB9Wrhc63V72+AccWiYI/8NcGvK1rPw78tP/sj4rcz66srssnpImRMxoqV9QCSVaw0sNPXNyLUxvHXIau6GKHG4C8YDr/iubIrCy9etz7IDPOEhI8nnZg3MCcjUGXkwSifKv1Tk2YJMuKyNvJoQ4/I1Wmszed7InvJPhLd9+2R9GHkjh7P/9muW6qth4DS3i/MUy4IXLIMSfJnyxk/3EoozXZ9yKNcYuP5uVjGnjXump/bFky92N1fk7ZGvxgelwnGaH8bnbAVOqmpe691gC89jKq5KDVkwt/9jW1u7QtUwdBDuL3TfHL6yWKdkr/lzTaYf1fyXBc685O1RscXRt5Gs+WiM/3t5bN/Wf/zfNuWneUDMXximEdoAlNQV1BXmpMBx3hKhMx/6jJfOA3UdDSmQegOUAFOOM4gRDJwaeMAGczT4MKjXvXqNvpWlKQPTrXQU81TxaunJ/19kbrUY72yPA98AqaZIHljwsNe4vZC5fe7gv7ylhvlZqf0BL3H5TV91t/CWuGnL/ril59G8IdFhF99iT3rnfr7Hce+Et39Bp2AGxUMG6Umi4v5PxK57aoVRQS+vqw4xA2/lDnyIKPt8YOEl+tIMw3VwdZ4QLoFZW73dJ6MPCXRzRgkNySb9/L1S2gStrDC/R3l/qgTJ3VN2G9+cBbXMvTl9kB4wAyaworKsdC3J/Br7Rtd8VERRx7P8mupGDlX8meRqRcYydhQoftf8FzS08EWJP/Nf8/kPhmFIRN2Qrt//wnrZ6XW9/QZiGVox8IulMbgbVJXD2yq9CcvpRRuh6M+dHJphbOboyWg+GpPsNdEguGCduy7FhNulsW9FMapSwMSGqYDoeo1bSVZPSKF7bGiNjyzazUlYDrHWPBVuZZYh31vDZFdi9JxRlyCUweKySK0z+EGxT1TXfM/exSvoFG1h1A3LqsehSWmv8ka4jlrTLO6u8zT9ADwgAA",
                "[encoded data, 244996 characters]",
                "Émergeant des ombres au clair de lune, Aphelios abat ceux qui voudraient anéantir sa foi sans un mot ; ses armes et sa précision mortelle parlent pour lui. Un poison qui le rend muet coule dans ses veines, mais il est constamment guidé par sa sœur, Alune. Depuis son temple lointain, elle lui confère un arsenal d'armes en pierre de lune. Tant que la lune brillera dans le ciel, Aphelios ne sera jamais seul."),
            new Champion("Volibear", ChampionClass.Fighter, "UklGRo4DAABXRUJQVlA4IIIDAAAQDgCdASoqACoAAMASJQBOnKCsbwbnCpPNtvoYHU5bz1MYXwX5W6AHzrfH5yz/D73dx7hI0sszTyDfmX+b9gn9azMriDCJ8MpRFniva18OngvGTSTW4N/LCoJND3wBv8nEtxmD+gCXnbM7nHAm9XtrJV2xGc8tGvsAAP7//iUXattjU5bS0ge410cw5FuSCDXdnnK86d8cDjVEgycLFWvvuP33yLdPRY4pkDumLI+P/nJowRGM6iVjusTETcX70V4L3Poj/ibOOYfyUgObRTlqLK31/wH9Mbnl+qMcf/NtLra8wHO8Oaxea18n+3RaWFKduGzyjpMq+4cg/syB2sM4m/o//vblthyufqIBHoLMbjDn4X6nZ+GF+j3ha9CVHfSSvkkoWBTEO+13dpf2n1brti3i/3RTLEPVJkuqm8vqUioH0yTPpyPN5bHfRo6nXaZS91/hAklonG6H18P9lT/7enCWwf++OCe5JfuVdmoZLNl4YmMim3//rIIuHg/Yk7NZyz97RjAMk7104wgfzNGD2zswXkNSbCaMWFqqdZj5AQdUKK6z7PPmLxi3QgIstWPTq7XMveuLdU85f1LDx2bYtTqL7P8vjPtD8hIWbPIsOGH+x1gCSPcugtvHWu803WzxVHshhAx4PaNHj7OKNAIlnj0QSoQ4WT/8Gvfs3Npz8MRbLtDf7h+dwNAEYKJUQUewYIB32O639jvl12mNYGT0L4TDFXiqsZCj8Cz2rLnEPEcAN5NlZzFB5dlWFf/ydXk0u+Tv8Ph/nZGPC5JDD66+CvcmpctPG15KRJtl1I5pnXX3GtLPOFucQy+allewYX/fnNm7iK71v5zhdFL50+zixxpU4NDpmSymJpX4aBU6F2/+6VwW/BK2lyjzrjEjTqgBqAxzG9DaWavcGnJeKhRsihA1E33+fVtkH5bV59dhJvKthJRHByw+yh0YCrpdfDaazAyKwouCwacgtIYRZlvk9nLisUfKKIhadsAqqaAmj/CJgJd5hKxyLPA8r6xtfLci/N/+dTOqk2UYdKseX3awFL6qqFow9z6MRinDM2vj+ulRs6T1JBmyoWGfPzMo+D48uKS/Q/hyjlV72DIT++1RHQsxmsYLV5MbPb9dcv1jjIJtSKn0S4jPbx4aNWF+lHe46KOuPjU9a+UXHeZWkT6qct+hCkAvnukFIdKlZcf8AAAA",
                "[encoded data, 239048 characters]",
                "Pour ceux qui le vénèrent encore, Volibear est l'incarnation de la tempête. Destructeur, sauvage et déterminé, il existait bien avant que les mortels n'arpentent la toundra de Freljord ; désormais, il défend férocement les terres qu'il a créées avec sa famille de demi-dieux. Habité d'une haine profonde envers la civilisation et la faiblesse qu'elle a engendrée, il se bat à coups de crocs et de griffes pour restaurer les traditions d'autrefois, celles du temps où la terre était sauvage et où le sang coulait librement."),
            new Champion("Annie", ChampionClass.Mage, "UklGRgoEAABXRUJQVlA4IP4DAAAwEgCdASoqACoAAMASJagCdMoR+N6J+LvsRU5+o4snAg233mA84D0N+SB1h/oV9KZ/e63h4N+BD197LZxb7E/lOFva4/wv5O8PbjbiV+rmuEx1+hPoJeov+x7hH6x/7IzkxTsXs3P/TQHak/WmBm0Ix8lIOcht3uWKAEMd6c8Up0f4QSvKmVhfumYetNb0JexivenFOrBT6iwgAP7/83zuzruUNHiuEMC2Att2az4nRx/3rizqAQK/T7/sfOYAgGAgpjbnMLVnxqOy0zb+VDk3g8urTWDHy3hhj+pW6+4iDiX/5KuisP+r3mgtC5nzaXD7zELk67bZTeoun/3Gehav/KZeAyFsCd8+dH3yMQXQB1k4HYiVpAXuvzH9f//xiYLafzj4dE2/0fYsuFsc/WNJ6p1Clv/kyPpb3Znoa8ra17d/L18u/mtvc3v5Nz99QiXVIz/4tQUSTTX3xg5LtprRr/WcnBmaXdFJroT6FI+cCwOzQSKq4bT2x1qecyk3QFTd5beqH2fd88R1m79TQe2vx6GAb7gpuW/l2fnJh30+XTlXZIRjrLTEYIEaM+tvm0OsnBg0TwIFfQPFfNy/7VY2QOrK//NWfP7mMEKXyeEsr5hjHvjdLAFAG0GX0jgIn4+78GcJxqTGv+TsbsfdSsUeX/t9UBcoch/mCjxhy2Y1sCeXmSqUxUMc7joi75AlCw2lTrrdOnbh/83AHJWU0WV03ZF38CZoH/qLJp+Ir94eNlVjAN8Hl34LTzQLS6WUP1fij/xUiPSadQxBC0/3VeXYISn4p+3jUfoL2toJQD//Rj/Cn5mq9308L4biP3uN/heYYv4euAsU+gJJjq2m2C6uaV5JpWJqxCWXTp+DDbghnJfP0UV3z9JrS2GmuzVOO3tI6VgBsknEf0TGm4sbDj0/Vu1+7qy3LvlLkGAD+KOhEV9jw03Jv+TphW4/xWmoAmU2efiP/NzGwuiB8QH6XZogoHhyStsXQdcBtaakiCqGyZsg+mwClGIzWCPpI6K222ToP68/QDOXt6xKQuTKnAyrIgh6ojfdfBP/owOGVkHL+XweBkTl/8eTxmnnwry2vVW8GXj7uihgehY1AFqfbvAV09YNM3WXZx53l44DFI0BT5Hr+ov9gqScauhk/8UUSXGngA+y0NEe6/csN6ObzWHB/l+/56o634vgEGQQRTTYP1DTNw4b+htVNxZzDbzQ+3Wx5ekoVDYrKAFKsmEF22zP/Dz5mg7TMcSIjVjrcpjjO8Ie4FUDIIq9UfYgMy4RDHP7heU/Nqb9/oN10OHWG5+/HcYYtuyKXvs0rQBtLBSKvJVPaF/WeRgp3ITs8OHmtYv5MsyQQheZiQBIN2IAAA==",
                "[encoded data, 253052 characters]",
                "Dangereuse, incroyablement précoce, Annie est une enfant mage dotée d'extraordinaires pouvoirs de pyrokinésie. Même à l'ombre des montagnes du nord de Noxus, sa magie est un cas unique. Son affinité naturelle avec le feu se manifesta dès sa prime enfance à travers des explosions émotionnelles imprévisibles, même si elle apprit rapidement à contrôler ces éclats. Parmi ses jeux favoris, elle aime invoquer son bien-aimé ours en peluche, Tibbers, sous la forme d'un protecteur enflammé. Perdue dans l'innocence perpétuelle de l'enfance, Annie sautille dans les forêts obscures, à la recherche de quelqu'un avec qui jouer."),
            new Champion("Aurelion Sol", ChampionClass.Mage, "UklGRq4DAABXRUJQVlA4IKIDAABwEQCdASoqACoAAMASJbACxHoR678PxpHKplnCa2zXmA82n/FernzzOoU9ADpP/K3phL4LH//wH5Ofkdzg7U3+J3pODHccf4jjU4/P9h7In955G/pP2Cf1lMyuD+h/3mW/NVSEFVQ6/yNP1/Q5vKB5XJB/RhK1b4DwUgUoA8WBctdkCF5RxHtwtvFJi14c0gbigyAAAP7//iVz9oh3cte78VmwOn7p+17p6+hlpD7HNnryQmP/nO6ccCoP9r6Hj7T+GHl9hGBoitWgKQlJ42aM7ztURBp5mwv1RP6GkURtWD+/TKl0b5MTrnr+d6WcP48wLtZ3tFG/5gLfl4KV99XFboAHx18vkdXay+AjPPy6wkfDcuxRe2RTqdV25iq/uVEUAOpBvr2IoKmV4PdDwhR9odhyrpfVSz0kjrD1Hd/xMEEbwnM+Wa0+hju6ngIA+rbbqj5ujuvvRXyYgr4lk8NVlWdxUNGa9TSbWH/dFbL2bZYCxYs1sxvvVO3y0+C/2X5Gq3oMX9jNztAAC9/7kD8Zfi++XGnEa2P92i5W7yo/uqnnt8mmem+jBs9CDJBrXbBTO29eNyvTI1sf/xr7UhIlJp+sDfZXITwxnsFtv8ubo3bQM/6XWHIKdFEsOn/f/OCdeqQI/WFQ99XuKkuvcbmraNfUJ3aJn253jONsmv537QvhqItwxFlZFJLiJuDsTVkR0LF1B/G4VyqD2nAvTvvVG45MllLLi0Cs8dxnBAG+8oavbRcYB17MP9iOX+HGh0qX4bAyeCErWqPnMDyRTzrYAn5h4z+q1857Vj6FG8R2kKI3rD2TxqimY7ZzS8H0YjApZ9AikWaP+K6I9znzaAmuxjYNOm/zbkBZWTpWZuSuFF4S7L+JqCPhOrk57R4iZuNXfccctHNa80z5n/IoAZHGI/HBy67/Sfro1DeFvnS8GXDwoIeo2SxZb+O70lomJtbmKl+6gHp+yN/vgHrUg9fm3g/j+me6uR44WHHzZt6g654WvgK7kPQc2PXnyJr+/8EfTtwZi0K0zCr51vsdww7I886Pwf5qi/5VSu5hT4Hm6pSi9pb8uh7VGojvDS0nrzRZHEkbk8FUk4tHuCxNfKAkrauk1e+J509WXYncmPol4EzxrVc22/kR6YCLtgvH/XyQqpLB8kV4PyrmXwziFz5udOq3NPmY68LUhxtQgDtjHnBJqt4jSszp5LiojEHfLPMpsuZbJa73mNCo8jJKruAAAAA=",
                "[encoded data, 256300 characters]",
                "Autrefois, Aurelion Sol façonnait des merveilles célestes dont il parsemait le vide infini du cosmos. À présent, il est forcé d'utiliser ses pouvoirs extraordinaires pour le compte d'un empire de l'espace qui s'est joué de lui et l'a réduit en esclavage. Prêt à tout pour redevenir le forgeron stellaire qu'il était, Aurelion Sol n'hésitera pas à arracher les étoiles de leur ciel nocturne si c'est là le prix à payer pour regagner sa liberté."),
            new Champion("Yone", ChampionClass.Assassin, "UklGRowEAABXRUJQVlA4IIAEAABQFgCdASoqACoAPjEWiEMiISETlbQgAwS2AE6ZYRyX3DzBKM/QPwntCJ1Oy78v9wHaA233mA/W79YOwf+nPsAfsB1onoAfsZ6ZHsW/tJ6Rl3zfNvBvwu+wfYjQA+lP5zhj1/d5iyRoUPIWTGP7h/l/ZU/vPHd9J/9/3Bv5d/T/9zvQC+QPNUcunsqB7r/+39jo0bDYbIyKnz2hXbKjuxzDw5TgMtDKmfIRlFQrPloMFLWnk95r2LzpZXAAAP7/xf/q//28Sdcg+JiqwVrieP5O9GQiUejWf/n89Z8dhu1ibovr78/PMIeJSqhEwqdKsKDjZ2vGqv6QrNrYN2g28j51wYaKtJhKd3ZQeMpr52rlXnesEH5fyOpShT/VbMNczc396hYCM3vyTnMzE0rJOtozX+eukTa6IPXKYWqTvf0T+tiUi8Zq0Wok2pXJgxrzbBz/i/3hJAlwP6bwF6r3WGsd25rXrDlaH2DFa4BBrBFnSf5G7RUA/SRnNQ8NFZcz2fSkYFfXDTguSrJLEQoNdFuDZNWgF5gy3rSWrQqi9O1CyKQkx2TU52BuutJsli3ZdsnvkJl76ETAeWj6Sd0DPTc57mHhv1fxwfwHpWeyeFePK7NAW2aIJi/L9WN+TRH9ZK2cLUOuRw2JzJOArKpl9vA0+ii8eS4ZEwDQSGTo1ERDaO9Mojc/+Rc5mc78bBhIZMaRRyVdv70v9ydV9hg53Ftht4reD9v+Oxi2TdiFVu+LfsKBMwmJAyjzd3s2NIKY+BuP1q2YidsvVYbjW1Od7GYoRgVsjFqXxImGkOzbKdg0qXcuhuJxF3GTtVH8DcEEVUmJvbVF8VwfFITngqevL6i95d0LgTCsTIbQX/eMJGXsgPOK9U+R6N6s1AghyncB4yohYt/ON1lL0wkr8HpamAPgsKJ7ybHbxAh/9In/NIWXWJc7kNo+lxl60jy9H14IXYSwdCHNfzrBTVhAzA2UIGMukrLntaF8vsiVw985cyNPrG7jraduUyRRrbiY+qRTjZHPTxPm845b8KhlbqfK5CYPu1G/e2HGqR4yf72Qt0GapO4UL+18B0RQpDSP3fu8HkHRMqruwfBZ9BWIBu8NX+GvJnYalsb7fFM1dmkvHp1mPo6Vhl/MO/V/soIKoIt94Sdo2LTthqxrdDBxwIBhsjQrHXde0eX1W2sfwIn7dqxTH0DVu37TL7EnDpvM24FCr70DNW1u2F/8+SCs2MnAd3n62/+J+dyWqp/ZA/a4nnPpqLo5vrvm1EkXqXEyqv76DOJ6fbwM7id6bI+8FtffmJmY23+YsawzjbG39LSwXUwVeL/7Ovi8Dh58jtvH0/q55v8xoK0FyCqVjf+0d2v94pmqY20vDAphS80nKougzh5McEeq82PI7jS59QaNvXrDqr/yGSarjMofG4hjyWb9Cf+xuyAo9p5wxoA89P4z7rXg5/x1PcntlAfLP5uPnu2Eyz8UmuC0HJ3VrYP9sdNDc2bF4X9t3Fs/V0VHWzUXXPF5IaNdG0onjZJEjNFZLiWqaAA=",
                "[encoded data, 206628 characters]",
                "Au cours de sa vie, Yone fut le demi-frère de Yasuo et un disciple renommé de l'école d'armes de son village. Mais après avoir été tué par son propre frère, il se retrouva hanté par une entité malveillante dans le royaume spirituel. Il dut la tuer avec sa propre épée. Désormais maudit et forcé de porter le masque de l'azakana, Yone chasse inlassablement ces créatures démoniaques afin de comprendre ce qu'il est devenu."),
            new Champion("Thresh", ChampionClass.Support, "UklGRugEAABXRUJQVlA4INwEAAAQFwCdASoqACoAPjESh0KiIQuLMhABglsAJ0yhHMPr341/iT8glTfpv3uybvn7/M/cz2kdtP5gP2e/YDsL/ZL8AH6Z9Zb6B3lv+xT/gf9/6RF3hfR/BnxHeZ/bPkQxAuy/8Twn+/j+H9A/9J7ydi/RP/9pxosyf+t+hnno+jfYL/VT/h8DSLmE1gvk7+PM8iw/xPufkSQyuO24CU1Mkxa/FQYGCHvwIhvxi8yvu8Bn/VXeHbGCv6MJk8LLBj5HSo0AAP7/qrfJ9kIxk+jjyGH7F92AgmSfspxWLqgzGrc8IRX0tS/iGcUxPgcCucDn/bVbqs/AdPs7n9cLpPpV7MmyXrFb7XjjRnAnbaFKH+e9QiPqCHd8R1merDLGCj4Qb6TP42js51/nux7pUbp22lcr/yIR96sQZDMCj4mNYOqUMinniwGBZuPMSeH/zvNiO5e2Hlhrov783ID/9H5ZyRDFy/7c6ISrgBim6ydcq5cr6r/9NOk+OgqQlSX214KLq2GUAc6yrIwPi+5EKEG/dXl/PzKEZm3lbbST/XCtiEGPuYV9pAhpvnx/86wXM4eqLxG63DEpYCUxIdRDU1qfMJT7JbTu9kpklLebjlsYMtPlwGfQLsn9TBaw62zAraFPwhD6HxPtffS++gl276b/yH5xQI+f1MEN4flD05N3wi5+WAdqAj1X/7LRoeYA8r0r/8BklfsBrfjI3WU+P9Q7Pm3wnuhNum9v+1VqlbXyyTBfS1CwwofobfcQRcIL2OEhE+La70u5Rc6lJQkPrRDAokRkVpF+NIdQKhdVG60iZCGeVYes23BkjHtOGR7f6VQrBa7soa9Vksg0/7pLytR3iZm9Q9OefBJEPfNICfKn5iTWnTe9t3bqBn/f6dLBnuMjL69/9eFNeHrOAZfySOZPxzxJHB12vIIwad6fdkXy1daTKZatbEwJAlFqwsE3/L3NMbtv//ZdLAWcZitsXwTKBPXjJjsvE8Wc3lMNQNolYfHTYiGdFVFpCWk8AbbH18XR2X/Cp0j4G6v+5iHPZNAaS43pYbSIrSnYre8e+F54t0Eo5MlMG3L7NFIkjKpaBLHK2o3fr7/ruzf/yW9Wn+fsHvLsZ6qYBeK4cmwhJtTx9bjvdok3oda/ccgN9vJOkgr33l5jp5DPE354EgePmr1C/zCmWd6xtWEAUICaR8pwM/yOTAzXsJrCwNJHsc8Bx29nqP8QQCfEg5ZNkGsoE+W78mfet5YAWg7hv/C7dOcYe4csAKRSUFJ5RjQPTNoeWIIJQqPOb/4Xl9Xbb//lZgGqB4c6HDwy7zxYIJvNUdFo8kxmD7L8SF4jp0lBxZ0iy0eGm7MNTvr+7TruyK+5/9skPRxMkVQD/ACqMf/siIQLNkN46zEsDHGH7ZW82XuFZ3iT8mhtB/qMTF8//FvFdcl/8eQKTzKTsAza6ZFnPSn9dKbl3+RDORlm6AU5NP/ByQPNsmln7zd+MjIRRCXiv+yULqDZzumUHcUZlslttK/Dm9qX9kcYhEeZ24fh+U6GzdpVd3xF24fk0GDoqBGV4tytyRrSvzX4NaNvNPM6SB2Vszkz7s7eAB5E/78akC0BOF9LHbc/sxItbYVtTD07emUxJythAEqsu5CMqDSoTm35br5Lom/p/PjxNmMQNTwAAA==",
                "[encoded data, 256028 characters]",
                "Sadique mais rusé, Thresh est un ambitieux esprit des Îles obscures. Autrefois le gardien d'innombrables secrets des arcanes, il fut terrassé par un pouvoir plus grand que la vie ou la mort, et il s'alimente maintenant des souffrances et des tourments qu'il inflige à d'autres avec une inventivité cruelle. Les souffrances de ses victimes ne se limitent pas à leur enveloppe mortelle, car Thresh fait agoniser leurs âmes, les emprisonnant pour l'éternité dans sa lanterne impie.")
        };

        public class ChampionsManager : IChampionsManager
        {
            private readonly StubData parent;

            public ChampionsManager(StubData parent)
            {
                this.parent = parent;
                this.parent.champions[0].AddSkill(new Skill("Règne de la colère", SkillType.Passive, "Les attaques de Renekton génèrent de la Fureur, et encore plus quand il lui reste peu de PV. Cette Fureur peut renforcer ses compétences en leur conférant des effets supplémentaires."));
                this.parent.champions[0].AddSkill(new Skill("Destruction des faibles", SkillType.Basic, "Renekton lance une attaque circulaire, infligeant des dégâts physiques modérés à tous les ennemis qui l'entourent et se soignant d'un montant égal à une petite portion des dégâts infligés. S'il a plus de 50 pts de Fureur, les dégâts et les soins augmentent."));
                this.parent.champions[0].AddSkill(new Skill("Prédateur impitoyable", SkillType.Basic, "Renekton frappe deux fois la cible en infligeant des dégâts physiques modérés et en l'étourdissant pendant 0,75 sec. Si Renekton a plus de 50 pts de Fureur, il frappe la cible trois fois, détruisant instantanément tout bouclier anti-dégâts se trouvant sur elle, lui infligeant de lourds dégâts physiques et l'étourdissant pendant 1,5 sec."));
                this.parent.champions[0].AddSkill(new Skill("Tranche et coupe", SkillType.Basic, "Renekton charge et inflige des dégâts à toutes les unités sur son chemin. S'il a plus de 50 pts de Fureur, Renekton inflige des dégâts supplémentaires et réduit l'armure des unités touchées."));
                this.parent.champions[0].AddSkill(new Skill("Dominus", SkillType.Ultimate, "Renekton prend sa Forme de tyran et profite de PV supplémentaires ; il inflige également des dégâts à tous les ennemis qui l'entourent. Tant qu'il est en Forme de tyran, Renekton gagne périodiquement de la Fureur."));
                this.parent.champions[0].AddCharacteristics(
                    Tuple.Create("Vie", 660),
                    Tuple.Create("Régénération", 8),
                    Tuple.Create("Armure", 35),
                    Tuple.Create("Résistance à la magie", 32),
                    Tuple.Create("Vitesse de déplacement", 345));

                this.parent.champions[1].AddSkill(new Skill("Le Tueur et l'Oracle", SkillType.Passive, "Aphelios manie 5 armes de Lunari forgées par sa sœur Alune. Il peut en porter deux à la fois : une principale et une secondaire. Chaque arme possède une attaque de base et une compétence uniques. Les attaques et les compétences consomment les munitions de son arme. Lorsqu'il n'a plus de munitions, Aphelios jette son arme et Alune invoque la suivante (parmi les 5)."));
                this.parent.champions[1].AddSkill(new Skill("Compétences d'arme", SkillType.Basic, "Aphelios a 5 compétences actives différentes, chacune liée à son arme principale : Calibrum (fusil) : tire une balle à longue portée qui marque la cible et permet une seconde attaque à très longue portée. Severum (pistolet-faux) : court rapidement en attaquant les ennemis proches avec les deux armes. Gravitum (canon) : immobilise tous les ennemis ralentis par cette arme. Infernum (lance-flammes) : frappe les ennemis dans un cône et les attaque avec l'arme secondaire. Crescendum (chakram) : déploie une vigie qui attaque avec l'arme secondaire."));
                this.parent.champions[1].AddSkill(new Skill("Phase", SkillType.Basic, "Aphelios échange son arme principale avec son arme secondaire, ce qui remplace ses attaques de base ainsi que sa compétence active."));
                this.parent.champions[1].AddSkill(new Skill("Système de file d'armes", SkillType.Basic, "Aphelios n'a pas de troisième compétence. Cet emplacement lui indique la prochaine arme qu'Alune lui donnera. L'ordre des armes est toujours le même en début de partie, mais peut évoluer au fil de la partie. Lorsqu'une arme est à court de munitions, elle se place tout en bas de la rotation."));
                this.parent.champions[1].AddSkill(new Skill("Veille au clair de lune", SkillType.Ultimate, "Envoie un rayon de lune concentré qui explose au contact d'un champion ennemi. Applique l'effet unique de l'arme principale d'Aphelios."));
                this.parent.champions[1].AddCharacteristics(
                    Tuple.Create("Vie", 580),
                    Tuple.Create("Régénération", 3),
                    Tuple.Create("Armure", 26),
                    Tuple.Create("Résistance à la magie", 30),
                    Tuple.Create("Vitesse de déplacement", 325));

                this.parent.champions[2].AddSkill(new Skill("Tempête Impitoyable", SkillType.Passive, "Les attaques et les compétences de Volibear augmentent sa vitesse d'attaque. Au bout d'un moment, ses attaques infligent des dégâts magiques supplémentaires aux ennemis proches."));
                this.parent.champions[2].AddSkill(new Skill("Coup Fulgurant", SkillType.Basic, "Volibear gagne de la vitesse en direction des ennemis, étourdissant et blessant le premier qu'il attaque."));
                this.parent.champions[2].AddSkill(new Skill("Folie Mutilatrice", SkillType.Basic, "Volibear blesse grièvement un ennemi, appliquant ses effets à l'impact et le marquant. Relancer cette compétence sur la même cible inflige des dégâts supplémentaires et soigne Volibear."));
                this.parent.champions[2].AddSkill(new Skill("Foudroiement", SkillType.Basic, "Volibear fait tomber la foudre à l'endroit ciblé, blessant et ralentissant les ennemis tout en obtenant un bouclier s'il est dans le rayon de l'explosion."));
                this.parent.champions[2].AddSkill(new Skill("Tempête Incarnée", SkillType.Ultimate, "Volibear bondit vers l'endroit ciblé, ralentissant et blessant les ennemis sous lui tout en gagnant des PV supplémentaires. Les tourelles ennemies proches de son point d'atterrissage sont temporairement désactivées."));
                this.parent.champions[2].AddCharacteristics(
                    Tuple.Create("Vie", 650),
                    Tuple.Create("Régénération", 9),
                    Tuple.Create("Armure", 31),
                    Tuple.Create("Résistance à la magie", 32),
                    Tuple.Create("Vitesse de déplacement", 340),
                    Tuple.Create("Mana", 350),
                    Tuple.Create("Dégâts d'attaque", 60),
                    Tuple.Create("Dégâts d'attaque à distance", 150));

                this.parent.champions[3].AddSkill(new Skill("Pyromanie", SkillType.Passive, "Après qu'Annie a utilisé 4 compétences, sa prochaine compétence offensive étourdit sa cible. Annie commence la partie et réapparaît avec Pyromanie disponible."));
                this.parent.champions[3].AddSkill(new Skill("Désintégration", SkillType.Basic, "Annie projette une boule d'énergie magique qui inflige des dégâts ; le coût en mana lui est rendu si l'attaque détruit la cible."));
                this.parent.champions[3].AddSkill(new Skill("Incinération", SkillType.Basic, "Annie projette un cône de flammes, infligeant des dégâts à tous les ennemis dans la zone."));
                this.parent.champions[3].AddSkill(new Skill("Bouclier en Fusion", SkillType.Basic, "Octroie à Annie ou à un allié un bonus en vitesse de déplacement et un bouclier, lequel blesse les ennemis qui lui lancent des attaques ou des compétences."));
                this.parent.champions[3].AddSkill(new Skill("Invocation : Tibbers", SkillType.Ultimate, "Annie insuffle la vie à son ours Tibbers et inflige des dégâts aux unités dans la zone d'effet. Tibbers peut attaquer et brûle les ennemis proches de lui."));
                this.parent.champions[3].AddCharacteristics(
                    Tuple.Create("Vie", 560),
                    Tuple.Create("Armure", 19),
                    Tuple.Create("Résistance à la magie", 30),
                    Tuple.Create("Vitesse de déplacement", 335),
                    Tuple.Create("Mana", 418),
                    Tuple.Create("Régénération de la Mana", 8),
                    Tuple.Create("Dégâts d'attaque à distance", 625)
                    );

                this.parent.champions[4].AddSkill(new Skill("Créateur Cosmique", SkillType.Passive, "Les compétences d'Aurelion Sol qui blessent des ennemis lui octroient de la poussière d'étoile, laquelle améliore définitivement chacune de ses compétences."));
                this.parent.champions[4].AddSkill(new Skill("Souffle de Lumière", SkillType.Basic, "Aurelion Sol canalise son souffle de dragon pendant quelques secondes, ce qui blesse le premier ennemi touché et inflige des dégâts secondaires réduits aux ennemis proches. Pour chaque seconde de canalisation dirigée directement sur un ennemi, la compétence inflige des dégâts supplémentaires augmentés par la quantité de poussière d'étoile collectée. Si la cible est un champion, cette compétence collecte aussi de la poussière d'étoile."));
                this.parent.champions[4].AddSkill(new Skill("Vol Astral", SkillType.Basic, "Aurelion Sol survole le terrain dans la direction ciblée. Pendant ce temps, il peut lancer d'autres compétences. Souffle de lumière n'a plus de délai de récupération ou de durée maximale de canalisation et inflige plus de dégâts pendant le vol. Le délai de récupération restant de Vol astral est réduit chaque fois qu'un champion ennemi meurt peu après avoir été blessé par Aurelion Sol. La poussière d'étoile augmente la portée maximale de Vol astral."));
                this.parent.champions[4].AddSkill(new Skill("Trou Noir", SkillType.Basic, "Aurelion Sol invoque un trou noir qui blesse les ennemis et les attire lentement vers son centre. Cette compétence octroie de la poussière d'étoile chaque fois qu'un ennemi meurt dans le trou noir et à chaque seconde qu'un champion ennemi passe dans le trou noir. Le centre du trou noir exécute les ennemis qui ont moins d'un certain pourcentage de leurs PV max. La poussière d'étoile augmente la taille du trou noir et le seuil d'exécution."));
                this.parent.champions[4].AddSkill(new Skill("Etoile Finale / Apocalypse", SkillType.Ultimate, "Étoile finale : Aurelion Sol fait s'abattre une étoile au sol. L'impact inflige des dégâts magiques et étourdit les ennemis tout en octroyant à Aurelion Sol de la poussière d'étoile pour chaque champion ennemi touché. Collecter suffisamment de poussière d'étoile transforme la prochaine Étoile finale d'Aurelion Sol en Apocalypse. Apocalypse : Aurelion Sol fait s'abattre au sol une étoile géante, ce qui augmente considérablement la taille de la zone d'impact, augmente les dégâts infligés et projette les ennemis dans les airs au lieu de les étourdir. Une onde de choc s'étend ensuite à partir de la bordure de la zone d'impact, ce qui blesse et ralentit les ennemis touchés. La poussière d'étoile augmente la taille de la zone d'impact d'Étoile finale et d'Apocalypse."));
                this.parent.champions[4].AddCharacteristics(
                    Tuple.Create("Vie", 620),
                    Tuple.Create("Armure", 22),
                    Tuple.Create("Résistance à la magie", 30),
                    Tuple.Create("Vitesse de déplacement", 325),
                    Tuple.Create("Mana", 530),
                    Tuple.Create("Régénération de la Mana", 8),
                    Tuple.Create("Dégâts d'attaque", 55)
                    );

                this.parent.champions[5].AddSkill(new Skill("Voie du Chasseur", SkillType.Passive, "Une attaque de Yone sur deux inflige des dégâts magiques. De plus, ses chances de coup critique sont augmentées."));
                this.parent.champions[5].AddSkill(new Skill("Acier Mortel", SkillType.Basic, "Donne un coup d'estoc, blessant tous les ennemis sur une ligne. À l'impact, octroie un effet Tempête menaçante pendant quelques secondes. À 2 effets cumulés, Acier mortel permet à Yone de se ruer vers l'avant dans une rafale de vent qui projette les ennemis dans les airs. Acier mortel est considéré comme une attaque de base et est donc renforcé par les mêmes choses."));
                this.parent.champions[5].AddSkill(new Skill("Fendoir Spirituel", SkillType.Basic, "Yone frappe devant lui en blessant tous les ennemis dans une zone conique. Yone obtient un bouclier dont les PV augmentent avec le nombre de champions touchés. Les délais de récupération et d'incantation de Fendoir spirituel sont réduits par la vitesse d'attaque."));
                this.parent.champions[5].AddSkill(new Skill("Libération Spirituelle", SkillType.Basic, "L'esprit de Yone quitte son corps et gagne en vitesse de déplacement. Quand cette compétence prend fin, Yone est renvoyé de force dans son corps et une partie des dégâts qu'il a infligés sous forme d'esprit est répétée."));
                this.parent.champions[5].AddSkill(new Skill("Destin Scellé", SkillType.Ultimate, "Yone se téléporte derrière le dernier champion sur une ligne en donnant un coup si puissant qu'il attire vers lui tous les ennemis touchés."));
                this.parent.champions[5].AddCharacteristics(
                    Tuple.Create("Vie", 620),
                    Tuple.Create("Armure", 28),
                    Tuple.Create("Résistance à la magie", 32),
                    Tuple.Create("Vitesse de déplacement", 345),
                    Tuple.Create("Dégâts d'attaque", 60),
                    Tuple.Create("Dégâts d'attaque à distance", 175)
                    );

                this.parent.champions[6].AddSkill(new Skill("Damnation", SkillType.Passive, "Thresh peut collecter les âmes des ennemis qui meurent près de lui, augmentant définitivement son armure et sa puissance."));
                this.parent.champions[6].AddSkill(new Skill("Peine Capitale", SkillType.Basic, "Thresh ligote un ennemi dans ses chaînes et l'attire vers lui. Activer cette compétence une deuxième fois attire Thresh vers l'ennemi."));
                this.parent.champions[6].AddSkill(new Skill("Lien des Ténèbres", SkillType.Basic, "Thresh lance une lanterne qui protège les champions alliés proches contre les dégâts. Les alliés peuvent cliquer sur la lanterne pour se ruer vers Thresh."));
                this.parent.champions[6].AddSkill(new Skill("Fauchage", SkillType.Basic, "Les attaques de Thresh se chargent, infligeant davantage de dégâts s'il attend plus entre les attaques. À l'activation, Thresh effectue un fauchage avec sa chaîne, envoyant tous les ennemis touchés dans la direction du coup."));
                this.parent.champions[6].AddSkill(new Skill("La Cage", SkillType.Ultimate, "Une prison dont les murs ralentissent et blessent les ennemis qui les brisent."));
                this.parent.champions[6].AddCharacteristics(
                    Tuple.Create("Vie", 600),
                    Tuple.Create("Régénération de la vie", 7),
                    Tuple.Create("Armure", 28),
                    Tuple.Create("Résistance à la magie", 30),
                    Tuple.Create("Vitesse de déplacement", 330),
                    Tuple.Create("Mana", 274),
                    Tuple.Create("Régénération de la Mana", 6),
                    Tuple.Create("Dégâts d'attaque", 56),
                    Tuple.Create("Dégâts d'attaque à distance", 450)
                    );
            }

            public Task<Champion?> AddItem(Champion? item)
                => parent.champions.AddItem(item);

            public Task<bool> DeleteItem(Champion? item)
                => parent.champions.DeleteItem(item);

            public Task<int> GetNbItems()
                => Task.FromResult(parent.champions.Count);

            public Task<IEnumerable<Champion?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false)
                => parent.champions.GetItemsWithFilterAndOrdering(
                        c => true,
                        index, count,
                        orderingPropertyName, descending);

            private Func<Champion, string, bool> filterByCharacteristic = (champ, charName) => champ.Characteristics.Keys.Any(k => k.Contains(charName, StringComparison.InvariantCultureIgnoreCase));

            public Task<int> GetNbItemsByCharacteristic(string charName)
                => parent.champions.GetNbItemsWithFilter(champ => filterByCharacteristic(champ, charName));

            public Task<IEnumerable<Champion?>> GetItemsByCharacteristic(string charName, int index, int count, string? orderingPropertyName = null, bool descending = false)
                => parent.champions.GetItemsWithFilterAndOrdering(
                        champ => filterByCharacteristic(champ, charName),
                        index, count, orderingPropertyName, descending);

            private Func<Champion, ChampionClass, bool> filterByClass = (champ, championClass) => champ.Class == championClass;

            public Task<int> GetNbItemsByClass(ChampionClass championClass)
                => parent.champions.GetNbItemsWithFilter(
                    champ => filterByClass(champ, championClass));

            public Task<IEnumerable<Champion?>> GetItemsByClass(ChampionClass championClass, int index, int count, string? orderingPropertyName, bool descending = false)
                => parent.champions.GetItemsWithFilterAndOrdering(
                    champ => filterByClass(champ, championClass),
                    index, count, orderingPropertyName, descending);

            private Func<Champion, Skill?, bool> filterBySkill = (champ, skill) => skill != null && champ.Skills.Contains(skill!);

            public Task<int> GetNbItemsBySkill(Skill? skill)
                => parent.champions.GetNbItemsWithFilter(champ => filterBySkill(champ, skill));

            public Task<IEnumerable<Champion?>> GetItemsBySkill(Skill? skill, int index, int count, string? orderingPropertyName = null, bool descending = false)
                => parent.champions.GetItemsWithFilterAndOrdering(champ => filterBySkill(champ, skill), index, count, orderingPropertyName, descending);

            private static Func<Champion, string, bool> filterBySkillSubstring = (champ, skill) => champ.Skills.Any(s => s.Name.Contains(skill, StringComparison.InvariantCultureIgnoreCase));

            public Task<int> GetNbItemsBySkill(string skillSubstring)
                => parent.champions.GetNbItemsWithFilter(champ => filterBySkillSubstring(champ, skillSubstring));

            public Task<IEnumerable<Champion?>> GetItemsBySkill(string skillSubstring, int index, int count, string? orderingPropertyName = null, bool descending = false)
                => parent.champions.GetItemsWithFilterAndOrdering(champ => filterBySkillSubstring(champ, skillSubstring), index, count, orderingPropertyName, descending);

            public Task<int> GetNbItemsByRunePage(RunePage? runePage)
                => Task.FromResult(parent.championsAndRunePages.Count(tuple => tuple.Item2.Equals(runePage)));

            public Task<IEnumerable<Champion?>> GetItemsByRunePage(RunePage? runePage, int index, int count, string? orderingPropertyName = null, bool descending = false)
                => Task.FromResult<IEnumerable<Champion?>>
                            (parent.championsAndRunePages
                                    .Where(tuple => tuple.Item2.Equals(runePage))
                                    .Select(tuple => tuple.Item1)
                                    .Skip(index * count).Take(count));

            private Func<Champion, string, bool> filterByNameContains = (champ, substring) => champ.Name.Contains(substring, StringComparison.InvariantCultureIgnoreCase);

            private Func<Champion, string, bool> filterByName = (champ, substring) => champ.Name.Equals(substring, StringComparison.InvariantCultureIgnoreCase);

            public Task<int> GetNbItemsByName(string substring)
                => parent.champions.GetNbItemsWithFilter(champ => filterByNameContains(champ, substring));

            public Task<IEnumerable<Champion?>> GetItemsByName(string substring, int index, int count, string? orderingPropertyName, bool descending = false)
                => parent.champions.GetItemsWithFilterAndOrdering(champ => filterByNameContains(champ, substring), index, count, orderingPropertyName, descending);

            public Task<IEnumerable<Champion?>> GetItemByName(string substring, int index, int count, string? orderingPropertyName, bool descending = false)
                => parent.champions.GetItemsWithFilterAndOrdering(champ => filterByName(champ, substring), index, count, orderingPropertyName, descending);

            public Task<Champion?> UpdateItem(Champion? oldItem, Champion? newItem)
                => parent.champions.UpdateItem(oldItem, newItem);
        }
    }
}

