documentation
continuous-integration/drone/push Build is failing Details

master
cedric.charbonnel 2 years ago
parent 88049af672
commit 70efdce613

@ -6,12 +6,30 @@ using System.Xml;
namespace LOLAPP.DataContractPersistance
{
/// <summary>
/// Implémentation de l'interface IPersistanceManager utilisant la sérialisation DataContract.
/// </summary>
public class DataContract : IPersistanceManager
{
/// <summary>
/// Chemin du répertoire de sauvegarde des fichiers.
/// </summary>
public string FilePath { get; set; } = FileSystem.Current.AppDataDirectory;
/// <summary>
/// Nom du fichier de sauvegarde des champions.
/// </summary>
public string FileNameC { get; set; } = "championsSave.xml";
/// <summary>
/// Nom du fichier de sauvegarde des utilisateurs.
/// </summary>
public string FileNameU { get; set; } = "utilisateurSave.xml";
/// <summary>
/// Charge les données des champions et des utilisateurs à partir des fichiers de sauvegarde.
/// </summary>
/// <returns>Un tuple contenant la liste des champions et des utilisateurs chargés.</returns>
public (List<Champion>, List<Utilisateur>) Chargdon()
{
var champserializer = new DataContractSerializer(typeof(DataToPersist));
@ -47,36 +65,11 @@ namespace LOLAPP.DataContractPersistance
return (champ, util);
}
public void Sauvdon(List<Utilisateur> s, List<Champion> c)
{
var serializer = new DataContractSerializer(typeof(DataToPersist),
new DataContractSerializerSettings()
{
PreserveObjectReferences = true
}
);
if (!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory crée à l'instant");
Debug.WriteLine(Directory.GetDirectoryRoot(FileNameC));
Debug.WriteLine(FilePath);
Directory.CreateDirectory(FilePath);
}
DataToPersist data = new DataToPersist();
data.util = s;
data.champ = c;
var settings = new XmlWriterSettings() { Indent = true };
using (TextWriter st = File.CreateText(Path.Combine(FilePath, FileNameC)))
{
using (XmlWriter writer = XmlWriter.Create(st, settings))
{
serializer.WriteObject(writer, data);
}
}
}
/*Méthode permettant de sauvegarder les données*/
/// <summary>
/// Sauvegarde les données des champions et des utilisateurs dans des fichiers séparés.
/// </summary>
/// <param name="c">La liste des champions à sauvegarder.</param>
/// <param name="u">La liste des utilisateurs à sauvegarder.</param>
public void Sauvdon(List<Champion> c, List<Utilisateur> u)
{
var champserializer = new DataContractSerializer(typeof(DataToPersist));

@ -7,9 +7,19 @@ using System.Threading.Tasks;
namespace LOLAPP.DataContractPersistance
{
/// <summary>
/// Classe de données utilisée pour la persistance des champions et des utilisateurs.
/// </summary>
public class DataToPersist
{
/// <summary>
/// Liste des champions à persister.
/// </summary>
public List<Champion> champ { get; set; } = new List<Champion>();
/// <summary>
/// Liste des utilisateurs à persister.
/// </summary>
public List<Utilisateur> util { get; set; } = new List<Utilisateur>();
}
}

@ -15,7 +15,7 @@ public partial class Main : ContentPage
private void ImageTapped(object sender, EventArgs e)
{
Champion champ= null;
Champion champ = null;
var image = (Image)sender;
foreach (var champion in Mgr._champions)
{

@ -8,21 +8,41 @@ using System.Threading.Tasks;
namespace Models
{
[DataContract]
/// <summary>
/// Représente une capacité d'un champion.
/// </summary>
public class Ability
{
[DataMember]
/// <summary>
/// Définit le nom de l'abilité.
/// </summary>
public string Name { get; private set; }
[DataMember]
/// <summary>
/// Définit le nom du fichier image associé à l'abilité.
/// </summary>
public string Image { get; private set; }
[DataMember]
/// <summary>
/// Définit la description de l'abilité.
/// </summary>
public string Description { get; private set; }
public Ability(string name,string image,string description)
/// <summary>
/// Initialise une nouvelle instance de la classe Ability avec le nom, l'image et la description spécifiés.
/// </summary>
/// <param name="name">Le nom de l'abilité.</param>
/// <param name="image">Le nom du fichier image associé à l'abilité.</param>
/// <param name="description">La description de l'abilité.</param>
public Ability(string name, string image, string description)
{
// Le constructeur de la classe Ability initialise le nom de l'abilitée.
Name = name;
Image= image;
Image = image;
Description = description;
}
}
}

@ -8,28 +8,59 @@ using System.Threading.Tasks;
namespace Models
{
[DataContract]
/// <summary>
/// Représente un champion.
/// </summary>
public class Champion
{
/// <summary>
/// Définit ou définit le nom du champion.
/// </summary>
[DataMember]
public string Name { get; private set; }
/// <summary>
/// Définit ou définit le titre du champion.
/// </summary>
[DataMember]
public string Titre { get; private set; }
/// <summary>
/// Définit ou définit le nom de l'image associée au champion.
/// </summary>
[DataMember]
public string Image { get; private set; }
/// <summary>
/// Définit ou définit la liste des abilités du champion.
/// </summary>
[DataMember]
public List<Ability> Abilities { get; private set; }
public Champion(string name,string titre,string image, List<Ability> abilities)
/// <summary>
/// Initialise une nouvelle instance de la classe Champion avec un nom, un titre, une image et une liste d'abilités.
/// </summary>
/// <param name="name">Le nom du champion</param>
/// <param name="titre">Le titre du champion</param>
/// <param name="image">Le nom de l'image associée au champion</param>
/// <param name="abilities">La liste des abilités du champion</param>
public Champion(string name, string titre, string image, List<Ability> abilities)
{
// Le constructeur de la classe Champion initialise le nom le titre le nom de l'image et les abilités du champion.
Name = name;
Titre = titre;
Image = image;
Abilities = new List<Ability>(abilities);
}
/// <summary>
/// Initialise une nouvelle instance de la classe Champion avec un nom, un titre et une image.
/// La liste des abilités est initialisée avec une liste vide.
/// </summary>
/// <param name="name">Le nom du champion</param>
/// <param name="titre">Le titre du champion</param>
/// <param name="image">Le nom de l'image associée au champion</param>
public Champion(string name, string titre, string image)
{
// Le constructeur de la classe Champion initialise le nom le titre et le nom de l'image du champion.
Name = name;
Titre = titre;
Image = image;

@ -7,9 +7,22 @@ using System.Threading.Tasks;
namespace Models
{
/// <summary>
/// Définit les opérations de persistance pour sauvegarder et charger les données.
/// </summary>
public interface IPersistanceManager
{
/// <summary>
/// Charge les données à partir de la source de persistance.
/// </summary>
/// <returns>Un tuple contenant la liste des champions chargés et la liste des utilisateurs chargés</returns>
(List<Champion>, List<Utilisateur>) Chargdon();
/// <summary>
/// Sauvegarde les données dans la source de persistance.
/// </summary>
/// <param name="c">La liste des champions à sauvegarder</param>
/// <param name="u">La liste des utilisateurs à sauvegarder</param>
void Sauvdon(List<Champion> c, List<Utilisateur> u);
}
}

@ -8,44 +8,83 @@ using System.Xml.Linq;
namespace Models
{
/// <summary>
/// Gère les opérations liées aux champions et aux utilisateurs dans le système.
/// </summary>
public class Manager
{
/// <summary>
/// Définit la liste des champions.
/// </summary>
public List<Champion> _champions { get; private set; }
/// <summary>
/// Définit la liste des utilisateurs.
/// </summary>
public List<Utilisateur> _utilisateur { get; private set; }
/// <summary>
/// Définit le gestionnaire de persistance utilisé pour sauvegarder et charger les données.
/// </summary>
public IPersistanceManager? Persistance { get; set; }
public Utilisateur? UtilisateurConnecte { get; set; } = null; //rajouté pour login register
/// <summary>
/// Définit l'utilisateur connecté. Utilisé pour la fonctionnalité de connexion et d'inscription.
/// </summary>
public Utilisateur? UtilisateurConnecte { get; set; } = null; //zzrajouté pour login register
/// <summary>
/// Initialise une nouvelle instance de la classe Manager avec un gestionnaire de persistance.
/// </summary>
/// <param name="Pers">Le gestionnaire de persistance</param>
public Manager(IPersistanceManager Pers)
{
_champions = new List<Champion>();
_utilisateur = new List<Utilisateur>();
Persistance = Pers;
}
/// <summary>
/// Initialise une nouvelle instance de la classe Manager.
/// </summary>
public Manager()
{
_champions = new List<Champion>();
_utilisateur = new List<Utilisateur>();
}
/// <summary>
/// Ajoute un utilisateur à la liste des utilisateurs.
/// </summary>
/// <param name="utilisateur">L'utilisateur à ajouter</param>
public void AddUtilisateur(Utilisateur utilisateur)
{
_utilisateur.Add(utilisateur);
}
/// <summary>
/// Supprime un utilisateur de la liste des utilisateurs.
/// </summary>
/// <param name="utilisateur">L'utilisateur à supprimer</param>
public void RemoveUtilisateur(Utilisateur utilisateur)
{
_utilisateur.Remove(utilisateur);
}
public void Chargdon() {
/// <summary>
/// Charge les données à partir de la source de persistance.
/// </summary>
public void Chargdon()
{
var don = Persistance!.Chargdon();
_champions.AddRange(don.Item1);
_utilisateur.AddRange(don.Item2);
}
/// <summary>
/// Sauvegarde les données dans la source de persistance.
/// </summary>
public void Sauvdon()
{
Persistance?.Sauvdon(_champions, _utilisateur);

@ -7,19 +7,38 @@ using System.Threading.Tasks;
namespace Models
{
/// <summary>
/// Représente une stratégie dans le système.
/// </summary>
[DataContract]
public class Strategie
{
[DataMember]
/// <summary>
/// Définit le nom de la stratégie.
/// </summary>
public string Name { get; private set; }
[DataMember]
/// <summary>
/// Définit la description de la stratégie.
/// </summary>
public string Description { get; private set; }
[DataMember]
/// <summary>
/// Définit la liste des champions associés à la stratégie.
/// </summary>
public List<Champion> Champions { get; private set; }
/// <summary>
/// Initialise une nouvelle instance de la classe Strategie avec un nom, une description et une liste de champions.
/// </summary>
/// <param name="name">Le nom de la stratégie</param>
/// <param name="description">La description de la stratégie</param>
/// <param name="champions">La liste des champions associés à la stratégie</param>
public Strategie(string name, string description, List<Champion> champions)
{
// Le constructeur de la classe Strategie initialise le nom et les champions de la stratégie.
Name = name;
Description = description;
Champions = champions;

@ -8,15 +8,35 @@ using System.Threading.Tasks;
namespace Models
{
[DataContract]
/// <summary>
/// Représente un utilisateur.
/// </summary>
public class Utilisateur
{
[DataMember]
/// <summary>
/// Définit le nom d'utilisateur de l'utilisateur.
/// </summary>
public string Username { get; private set; }
[DataMember]
/// <summary>
/// Définit le mot de passe de l'utilisateur.
/// </summary>
public string Password { get; private set; }
[DataMember]
/// <summary>
/// Définit la liste de stratégies de l'utilisateur.
/// </summary>
public List<Strategie> _strat { get; private set; }
/// <summary>
/// Initialise une nouvelle instance de la classe Utilisateur avec un nom d'utilisateur, un mot de passe et une liste de stratégies.
/// </summary>
/// <param name="username">Le nom d'utilisateur</param>
/// <param name="password">Le mot de passe</param>
/// <param name="strat">La liste de stratégies</param>
public Utilisateur(string username, string password, List<Strategie> strat)
{
Username = username;
@ -24,18 +44,32 @@ namespace Models
_strat = strat;
}
public Utilisateur(string username,string password)
{ Username = username;
/// <summary>
/// Initialise une nouvelle instance de la classe Utilisateur avec un nom d'utilisateur et un mot de passe.
/// La liste de stratégies est initialisée avec une liste vide.
/// </summary>
/// <param name="username">Le nom d'utilisateur</param>
/// <param name="password">Le mot de passe</param>
public Utilisateur(string username, string password)
{
Username = username;
Password = password;
_strat = new List<Strategie>();
}
/// <summary>
/// Ajoute une stratégie à la liste des stratégies de l'utilisateur.
/// </summary>
/// <param name="strat">La stratégie à ajouter</param>
public void AddStrategie(Strategie strat)
{
_strat.Add(strat);
}
/// <summary>
/// Supprime une stratégie de la liste des stratégies de l'utilisateur.
/// </summary>
/// <param name="strat">La stratégie à supprimer</param>
public void RemoveStrategie(Strategie strat)
{
_strat.Remove(strat);

@ -7,34 +7,49 @@ using System.Threading.Tasks;
namespace Stub
{
/// <summary>
/// Cette classe représente une classe d'exemple utilisant l'interface IPersistanceManager.
/// </summary>
public class Stub : IPersistanceManager
{
public Stub() {}
/// <summary>
/// Initialise une nouvelle instance de la classe Stub.
/// </summary>
public Stub() { }
/// <summary>
/// Charge les données de champions et d'utilisateurs.
/// </summary>
/// <returns>
/// Un tuple contenant une liste de champions et une liste d'utilisateurs.
/// </returns>
public (List<Champion>, List<Utilisateur>) Chargdon()
{
List<Utilisateur> u = new List<Utilisateur>();
List<Champion> c = new List<Champion>();
List<Ability> a = new List<Ability>();
Ability c1a1 = new Ability("Runic Blade", "runicblade.png", "Riven's abilities charge her blade, and her basic attacks expend charges to deal an additional damage.");
Ability c1a2 = new Ability("Broken Wings", "brokenwings.png", "Riven lashes out in a series of strikes. This ability can be reactivated three times in a short time frame with the third hit knocking back nearby enemies.");
Ability c1a3 = new Ability("Ki Burst", "kiburst.png", "Riven emits a Ki Burst, damaging and stunning nearby enemies.");
Ability c1a4 = new Ability("Valor", "valor.png", "Riven steps forward a short distance and blocks incoming damage.");
Ability c1a5 = new Ability("Blade of the Exile", "bladeoftheexile.png", "Riven empowers her keepsake weapon with energy, and gains Attack Damage and Range. During this time, she also gains the ability to use Wind Slash, a powerful ranged attack, once.");
// Création des capacités pour le champion Riven
Ability c1a1 = new Ability("Runic Blade", "runicblade.png", "Les compétences de Riven chargent sa lame et ses attaques de base consomment ces charges pour infliger des dégâts supplémentaires.");
Ability c1a2 = new Ability("Broken Wings", "brokenwings.png", "Riven frappe avec une série de coups. Cette compétence peut être réactivée trois fois dans un court laps de temps, le troisième coup repoussant les ennemis proches.");
Ability c1a3 = new Ability("Ki Burst", "kiburst.png", "Riven libère une explosion de Ki, infligeant des dégâts et étourdissant les ennemis proches.");
Ability c1a4 = new Ability("Valor", "valor.png", "Riven fait un pas en avant sur une courte distance et bloque les dégâts entrants.");
Ability c1a5 = new Ability("Blade of the Exile", "bladeoftheexile.png", "Riven renforce son arme précieuse avec de l'énergie, ce qui lui confère des dégâts d'attaque et une portée supplémentaires. Pendant ce temps, elle obtient également la capacité d'utiliser Vent tranchant, une attaque à distance puissante, une fois.");
a.Add(c1a1);
a.Add(c1a2);
a.Add(c1a3);
a.Add(c1a4);
a.Add(c1a5);
Champion c1 = new Champion("Riven","The Exile", "riven.jpg", a);
Champion c1 = new Champion("Riven", "The Exile", "riven.jpg", a);
c.Add(c1);
a.Clear();
Ability c2a1 = new Ability("Rage Gene", "ragegene.png", "While in combat Gnar generates Rage. At maximum Rage his next ability will transform him into Mega Gnar, granting increased survivability and access to new spells.");
Ability c2a2 = new Ability("Boomerang Throw / Boulder Toss", "boomerangthrow.png", "Gnar throws a boomerang that damages and slows enemies it hits before returning to him. If he catches the boomerang its cooldown is reduced.\r\n\r\nMega Gnar instead throws a boulder that stops on the first unit hit, damaging and slowing everything nearby. It can then be picked up to reduce the cooldown.");
Ability c2a3 = new Ability("Hyper / Wallop", "hyper.png", "Gnar's attacks and spells hype him up, dealing bonus damage and granting him Movement Speed.\r\n\r\nMega Gnar is too enraged to be hyper and instead can rear up on his hind legs and smash down on the area in front of him, stunning enemies in an area.");
Ability c2a4 = new Ability("Hop / Crunch", "hop.png", "Gnar leaps to a location and bounces off the head of any unit he lands on, traveling further.\r\n\r\nMega Gnar is too large to bounce and instead lands with earth-shattering force, dealing damage in an area around him.");
Ability c2a5 = new Ability("GNAR!", "gnarr.png", "Mega Gnar throws everything around him in a chosen direction, dealing damage and slowing them. Any enemy that hits a wall is stunned and takes bonus damage.");
// Création des capacités pour le champion Gnar
Ability c2a1 = new Ability("Rage Gene", "ragegene.png", "Lorsqu'il est en combat, Gnar génère de la Rage. À la Rage maximale, sa prochaine compétence le transforme en Méga Gnar, lui conférant une survie accrue et de nouvelles compétences.");
Ability c2a2 = new Ability("Boomerang Throw / Boulder Toss", "boomerangthrow.png", "Gnar lance un boomerang qui inflige des dégâts et ralentit les ennemis touchés avant de revenir vers lui. S'il attrape le boomerang, son temps de recharge est réduit.\r\n\r\nMéga Gnar lance plutôt un rocher qui s'arrête au premier ennemi touché, infligeant des dégâts et ralentissant tout ce qui se trouve à proximité. Il peut ensuite le ramasser pour réduire le temps de recharge.");
Ability c2a3 = new Ability("Hyper / Wallop", "hyper.png", "Les attaques et les sorts de Gnar l'excitent, lui infligeant des dégâts supplémentaires et lui octroyant de la vitesse de déplacement.\r\n\r\nMéga Gnar est trop enragé pour être excité et peut plutôt se dresser sur ses pattes arrière et frapper violemment la zone devant lui, étourdissant les ennemis dans une zone.");
Ability c2a4 = new Ability("Hop / Crunch", "hop.png", "Gnar saute vers une position et rebondit sur la tête de toute unité sur laquelle il atterrit, parcourant une plus grande distance.\r\n\r\nMéga Gnar est trop grand pour rebondir et atterrit plutôt avec une force dévastatrice, infligeant des dégâts dans une zone autour de lui.");
Ability c2a5 = new Ability("GNAR!", "gnarr.png", "Méga Gnar projette tout ce qui l'entoure dans une direction choisie, infligeant des dégâts et les ralentissant. Tout ennemi qui heurte un mur est étourdi et subit des dégâts supplémentaires.");
a.Add(c2a1);
a.Add(c2a2);
a.Add(c2a3);
@ -44,11 +59,12 @@ namespace Stub
c.Add(c2);
a.Clear();
Ability c3a1 = new Ability("Daredevil Impulse", "daredevilimpulse.png", "Samira builds a combo by hitting attacks or abilities unique from the previous hit. Samira's attacks in melee range deal additional magic damage. Samira's attacks against enemies affected by Immobilizing effects will dash her to her attack range. If the enemy is Knocked Up, she also keeps them Knocked Up briefly.");
Ability c3a2 = new Ability("Flair", "flair.png", "Samira fires a shot or swings her sword, dealing damage. If cast during Wild Rush, strike all enemies in her path upon completion.");
Ability c3a3 = new Ability("Blade Whirl", "bladewhirl.png", "Samira slashes around her, damaging enemies and destroying enemy missiles.");
Ability c3a4 = new Ability("Wild Rush", "wildrush.png", "Samira dashes through an enemy (including structures), slashing enemies she passes through and gaining Attack Speed. Killing an enemy champion refreshes this ability's cooldown.");
Ability c3a5 = new Ability("Inferno Trigger", "infernotrigger.png", "Samira unleashes a torrent of shots from her weapons, wildly shooting all enemies surrounding her.");
// Création des capacités pour le champion Samira
Ability c3a1 = new Ability("Daredevil Impulse", "daredevilimpulse.png", "Samira accumule une combinaison en infligeant des attaques ou des compétences différentes de la précédente. Les attaques de Samira en mêlée infligent des dégâts magiques supplémentaires. Les attaques contre des ennemis affectés par des effets d'immobilisation la font se précipiter vers leur portée d'attaque. Si l'ennemi est projeté en l'air, elle le maintient brièvement en l'air.");
Ability c3a2 = new Ability("Flair", "flair.png", "Samira tire un coup de feu ou balance son épée, infligeant des dégâts. Si utilisée pendant Ruée sauvage, elle frappe tous les ennemis sur son chemin à la fin.");
Ability c3a3 = new Ability("Blade Whirl", "bladewhirl.png", "Samira tourbillonne autour d'elle, infligeant des dégâts aux ennemis et détruisant les projectiles ennemis.");
Ability c3a4 = new Ability("Wild Rush", "wildrush.png", "Samira se précipite vers un ennemi (y compris les structures), frappant les ennemis qu'elle traverse et augmentant sa vitesse d'attaque. Tuer un champion ennemi réinitialise le temps de recharge de cette compétence.");
Ability c3a5 = new Ability("Inferno Trigger", "infernotrigger.png", "Samira déchaîne un torrent de tirs de ses armes, tirant sauvagement sur tous les ennemis qui l'entourent.");
a.Add(c3a1);
a.Add(c3a2);
a.Add(c3a3);
@ -58,11 +74,12 @@ namespace Stub
c.Add(c3);
a.Clear();
Ability c4a1 = new Ability("Bop 'n' Block", "bopnblock.png", "Periodically, when Yuumi attacks a champion, she restores mana and gains a shield that follows her, protecting her and the ally she's attached to.");
Ability c4a2 = new Ability("Prowling Projectile", "prowlingprojectile.png", "Yuumi fires a missile, dealing damage to the first target hit. It deals bonus damage and slows if it takes at least 1 second to get to its target.\r\n\r\nWhile Attached, the missile can be controlled with your cursor.");
Ability c4a3 = new Ability("You and Me!", "youandme.png", "Passively, Yuumi increases her ally's Adaptive Force and her own. Actively, Yuumi dashes to a target ally, becoming untargetable from everything except turrets.");
Ability c4a4 = new Ability("Zoomies", "zoomies.png", "Heals Yuumi and boosts Movement Speed and Attack Speed. If she's attached, she passes it to her ally instead.");
Ability c4a5 = new Ability("Final Chapter", "finalchapter.png", "Yuumi channels seven waves of damage, rooting anyone hit by three or more. Yuumi can move, attach, and cast Zoomies! while channeling.");
// Création des capacités pour le champion Yuumi
Ability c4a1 = new Ability("Bop 'n' Block", "bopnblock.png", "Périodiquement, lorsque Yuumi attaque un champion, elle restaure du mana et obtient un bouclier qui la suit, la protégeant ainsi que l'allié auquel elle est attachée.");
Ability c4a2 = new Ability("Prowling Projectile", "prowlingprojectile.png", "Yuumi tire un missile qui inflige des dégâts au premier ennemi touché. Il inflige des dégâts bonus et ralentit s'il met au moins 1 seconde pour atteindre sa cible.\r\n\r\nLorsqu'elle est attachée, le missile peut être contrôlé avec votre curseur.");
Ability c4a3 = new Ability("You and Me!", "youandme.png", "Passivement, Yuumi augmente la force d'adaptation de son allié et de la sienne. Activement, Yuumi se précipite vers un allié ciblé, devenant insensible à tout sauf aux tourelles.");
Ability c4a4 = new Ability("Zoomies", "zoomies.png", "Soigne Yuumi et augmente sa vitesse de déplacement et sa vitesse d'attaque. Si elle est attachée, elle le transmet à son allié à la place.");
Ability c4a5 = new Ability("Final Chapter", "finalchapter.png", "Yuumi canalise sept vagues de dégâts, immobilisant quiconque est touché par au moins trois vagues. Yuumi peut se déplacer, s'attacher et lancer Zoomies! tout en canalisant.");
a.Add(c4a1);
a.Add(c4a2);
a.Add(c4a3);
@ -72,11 +89,12 @@ namespace Stub
c.Add(c4);
a.Clear();
Ability c5a1 = new Ability("The Relentless Storm", "therelentlessstorm.png", "Riven's abilities charge her blade, and her basic attacks expend charges to deal an additional damage.");
Ability c5a2 = new Ability("Thundering Smash", "thunderingsmash.png", "Riven lashes out in a series of strikes. This ability can be reactivated three times in a short time frame with the third hit knocking back nearby enemies.");
Ability c5a3 = new Ability("Frenzied Maul", "frenziedmaul.png", "Riven emits a Ki Burst, damaging and stunning nearby enemies.");
Ability c5a4 = new Ability("Sky Splitter", "skysplitter.png", "Riven steps forward a short distance and blocks incoming damage.");
Ability c5a5 = new Ability("Stormbringer", "stormbringer.png", "Riven empowers her keepsake weapon with energy, and gains Attack Damage and Range. During this time, she also gains the ability to use Wind Slash, a powerful ranged attack, once.");
// Création des capacités pour le champion Volibear
Ability c5a1 = new Ability("The Relentless Storm", "therelentlessstorm.png", "Les capacités de Volibear chargent sa griffe, et ses attaques de base consomment des charges pour infliger des dégâts supplémentaires.");
Ability c5a2 = new Ability("Thundering Smash", "thunderingsmash.png", "Volibear déclenche une série de coups violents. Cette capacité peut être réactivée trois fois en peu de temps, et le troisième coup repousse les ennemis à proximité.");
Ability c5a3 = new Ability("Frenzied Maul", "frenziedmaul.png", "Volibear inflige des dégâts supplémentaires et repousse légèrement sa cible avec une attaque de base après avoir utilisé une compétence.");
Ability c5a4 = new Ability("Sky Splitter", "skysplitter.png", "Volibear plonge vers une cible avec une attaque foudroyante, infligeant des dégâts et ralentissant les ennemis proches. Il peut ensuite sauter sur un ennemi différent.");
Ability c5a5 = new Ability("Stormbringer", "stormbringer.png", "Volibear fait appel à la foudre pour transformer et augmenter en taille. En tombant du ciel, il inflige des dégâts et ralentit les ennemis, puis les étourdit brièvement.");
a.Add(c5a1);
a.Add(c5a2);
a.Add(c5a3);
@ -86,9 +104,13 @@ namespace Stub
c.Add(c5);
a.Clear();
// Création des utilisateurs
Utilisateur u1 = new Utilisateur("John Doe", 25, "john.doe@example.com");
Utilisateur u2 = new Utilisateur("Jane Smith", 30, "jane.smith@example.com");
u.Add(u1);
u.Add(u2);
Utilisateur s1 = new Utilisateur("Broken", "Kala");
return (c,u);
return (c, u);
}
public void Sauvdon(List<Champion> c, List<Utilisateur> u)

Loading…
Cancel
Save