public List <Action> actions(RacesEnum race) { //read the file var path = Directory.GetCurrentDirectory() + "//SavedActions.json"; StreamReader reader = new StreamReader(path); List <Action> tmp = JsonSerializer.Deserialize <List <Action> >(reader.ReadToEnd()); reader.Close(); //choose for the given class List <Action> actions = new List <Action>(); foreach (Action action in tmp) { if (action.race.Contains(race)) { actions.Add(action); } } return(actions); }
public Character(RacesEnum charRace, ClassesEnum charClass) { ClassModel charClassDefaults = Dictionaries.ClassDictionary.List[charClass.ToString()]; RaceModel charRaceDefaults = Dictionaries.RacesDictionary.List[charRace.ToString()]; var languages = Dictionaries.PHB.LanguagesDictionary.List; var commonLanguages = languages.Where(l => l.Value.Type == LanguageTypesEnum.Common).ToDictionary(i => i.Key, i => i.Value); var skills = Dictionaries.PHB.SkillsDictionary.List; Random rng = new Random(); //var parentClasses = Dictionaries.ClassDictionary.List.Where(c => c.Value.ParentClass == null).ToDictionary(i => i.Key, i => i.Value); this.classes.Add(charClass); this.feats = new List <string>() { }; this.features = new List <string>() { }; this.hitDice = charClassDefaults.HitDice; this.hitPointCurrent = charClassDefaults.HitDice; this.hitPointMax = charClassDefaults.HitDice; this.languages = new List <string>() { }; this.level = 1; this.name = "Huumon"; this.race = charRace; this.size = charRaceDefaults.Size; this.skills = new List <string>() { }; this.speed = charRaceDefaults.Speed; if (charRaceDefaults.Feats != null) { foreach (string feat in charRaceDefaults.Feats) { this.feats.Add(feat); } } if (charRaceDefaults.Languages != null) { foreach (string item in charRaceDefaults.Languages) { string lang = item; //if (lang == "selectLanguage") //{ // while (this.Languages.Contains(lang) || lang == "selectLanguage") // { // lang = commonLanguages.Keys.ToArray()[rng.Next(0, commonLanguages.Count)]; // } //} this.languages.Add(lang); } } if (charClassDefaults.SavingThrows != null) { foreach (var ability in charClassDefaults.SavingThrows.ToArray()) { this.savingThrows.Add(ability.ToString()); } } if (charRaceDefaults.Skills != null) { foreach (string skill in charRaceDefaults.Skills) { this.skills.Add(skill); } } if (charClass.ToString() == "barbarian") { var barbarian = Dictionaries.PHB.Classes.Barbarian.Levels[1]; this.proficiencyBonus = barbarian.ProficiencyBonus; foreach (var feature in barbarian.Features) { this.features.Add(feature); } } switch (charRace) { case RacesEnum.dragonbornBlack: break; case RacesEnum.dragonbornBlue: break; case RacesEnum.dragonbornBronze: break; case RacesEnum.dragonbornCopper: break; case RacesEnum.dragonbornGold: break; case RacesEnum.dragonbornGreen: break; case RacesEnum.dragonbornRed: break; case RacesEnum.dragonbornSilver: break; case RacesEnum.dragonbornWhite: break; case RacesEnum.dwarfGray: break; case RacesEnum.dwarfHill: break; case RacesEnum.dwarfMountain: break; case RacesEnum.elfDark: break; case RacesEnum.elfHigh: break; case RacesEnum.elfWood: break; case RacesEnum.gnome: break; case RacesEnum.halfElf: break; case RacesEnum.halfOrc: break; case RacesEnum.halfling: break; case RacesEnum.humanStandard: break; case RacesEnum.humanVariant: break; case RacesEnum.tiefling: break; default: break; } }
/// <summary> /// Méthode qui retourne une ObservableCollection d'Enums de monstres correspondants à l'Enum de Race donné /// </summary> /// <param name="CreaturesByRaceCollection"></param> /// <param name="SelectedRace"></param> /// <returns></returns> public static ObservableCollection <Enum> GetEnumCreatureListWithRace(Dictionary <RacesEnum, List <Enum> > CreaturesByRaceCollection, RacesEnum SelectedRace) { ObservableCollection <Enum> EnumCreaturesList = new ObservableCollection <Enum>(); foreach (Enum creature in CreaturesByRaceCollection[SelectedRace]) { EnumCreaturesList.Add(creature); } return(EnumCreaturesList); }
static void Main() { var abilityList = AbilitiesDictionary.List; var weaponList = Dictionaries.PHB.Classes.Barbarian.BerserkerLevels; var barbarian = Dictionaries.PHB.Classes.Barbarian.TotemWarriorLevels; //foreach (var item in weaponList.Keys) //{ // Console.WriteLine($"{item} - {abilityList[item].Name}"); //} //foreach (var item in abilityList.Values) //{ // Console.WriteLine($"{item.Name} - {item.HasSavingThrow}"); //} var classes = EnumUtil.GetValues <ClassesEnum>(); var races = EnumUtil.GetValues <RacesEnum>(); Console.WriteLine("Select your race:"); // Get enum descriptions foreach (var r in races) { Console.WriteLine(r.GetAttributeOfType <DescriptionAttribute>().Description); } string raceString = Console.ReadLine(); // Get enum value from selected description and store it RacesEnum race = EnumUtil.GetValueFromDescription <RacesEnum>(raceString); Console.WriteLine($"\n\nSelect yoru class:"); // Get enum descriptions foreach (var c in classes) { Console.WriteLine(c.GetAttributeOfType <DescriptionAttribute>().Description); } string classString = Console.ReadLine(); // Get enum value from selected description and store it ClassesEnum charClass = EnumUtil.GetValueFromDescription <ClassesEnum>(classString); Console.WriteLine("\n\n"); //Character character1 = new Character(race, charClass); Character character1 = new Character(); Console.WriteLine( $"Name: {character1.Name}\n" + $"Level: {character1.Level}\n" + $"Race: {character1.Race}\n" + $"Class: {string.Join(", ", character1.Classes.ToArray())}\n" + $"Proficiency Bonus: +{character1.ProficiencyBonus}\n" + $"Hit Dice: d{character1.HitDice}\n" + $"HP: {character1.HitPointCurrent}/{character1.HitPointMax}\n" + $"Speed: {character1.Speed} ft.\n" + $"Size: {character1.Size}\n" + $"Skills: {string.Join(", ", character1.Skills.ToArray())}\n" + $"Languages: {string.Join(", ", character1.Languages.ToArray())}\n" + $"Feats: {string.Join(", ", character1.Feats.ToArray())}\n" + $"Features: {string.Join(", ", character1.Features.ToArray())}\n" + $"Savinbg Throws: {string.Join(", ", character1.SavingThrows.ToArray())}\n" ); }