static public int DetermineMaxFeetByRank(CharacterRank rank) { switch (rank) { case CharacterRank.Acolyte: return(10); case CharacterRank.Apprentice: return(15); case CharacterRank.Knight: return(20); case CharacterRank.Lord: return(30); case CharacterRank.Archon: return(40); case CharacterRank.Elder: return(50); case CharacterRank.Emperor: return(60); default: return(0); } }
private async Task SeedGuildRanksAsync(WowGuildManagerDbContext context) { var guildrankNames = new List <string> { GuildRanksConstants.GuildMaster, GuildRanksConstants.Officer, GuildRanksConstants.Veteran, GuildRanksConstants.Raider, GuildRanksConstants.PvP, GuildRanksConstants.Member, GuildRanksConstants.Alt, }; var guildRanks = new List <CharacterRank>(); foreach (var guildRankName in guildrankNames) { var guildRank = new CharacterRank { Name = guildRankName }; guildRanks.Add(guildRank); } await context.CharacterRanks.AddRangeAsync(guildRanks); await context.SaveChangesAsync(); }
public CharacterSheet(string _name, CharacterRank _rank, CharacterAlignment _alignment, List <string> abilities, string _author) { Name = _name; rank = _rank; alignment = _alignment; Abilities = abilities; Author = _author; characterDescription = ""; }
public Ability(string _name, string _desc, string _detailDesc, int _skill, string _prereq, CharacterRank _rank, AbilityCategory _category, CharacterAlignment _alignment) { Name = _name; Description = _desc; detailedDescription = _detailDesc; skillCost = _skill; prereqAbilities = new ArrayList(); prereqAbilities.Add(_prereq); rank = _rank; category = _category; isFeat = (category == AbilityCategory.Feat) ? true : false; alignment = _alignment; }
public CharacterSheet(string _name, List <string> _abilities, CharacterRank _rank, CharacterAlignment _alignment) { Name = _name; Abilities = new List <string>(_abilities); rank = _rank; alignment = _alignment; //max_skill_points = DetermineMaxSkillByRank(_rank); //current_skill_points = CalculateCurrentSkillPoints(); //max_feat_points = DetermineMaxFeetByRank(_rank); //current_feat_points = CalculateCurrentFeatPoints(); lastEdit = "UNKNOWN"; wasChanged = false; characterDescription = ""; }
public CharacterSheet(string _name, CharacterRank _rank, CharacterAlignment _alignment, List <string> abilities, string _lastEdit, string author) { Name = _name; Abilities = abilities; rank = _rank; alignment = _alignment; //max_skill_points = DetermineMaxSkillByRank(_rank); //current_skill_points = CalculateCurrentSkillPoints(); //max_feat_points = DetermineMaxFeetByRank(_rank); //current_feat_points = CalculateCurrentFeatPoints(); lastEdit = _lastEdit; wasChanged = false; Author = author; characterDescription = ""; }
private void RunServer() { while (true) { if (listener.Pending()) { TcpClient client = listener.AcceptTcpClient(); NetworkStream ns = client.GetStream(); Console.WriteLine("TCP: Incoming Character . . ."); byte[] bytes = new byte[MAX_BYTE_READ]; int bytesRead = ns.Read(bytes, 0, bytes.Length); Console.WriteLine("TCP: Translating bytes . . ."); string jsonString = Encoding.ASCII.GetString(bytes, 0, bytesRead); #if DEBUG Console.WriteLine(jsonString); #endif using (JsonDocument document = JsonDocument.Parse(jsonString)) { JsonElement root = document.RootElement; bool overrideExisting = false; string Author = ""; string Date = ""; if (root.TryGetProperty("submissionDetails", out JsonElement datapackElement)) { if (datapackElement.TryGetProperty("Author", out JsonElement authorElement)) { Author = authorElement.GetString(); } if (datapackElement.TryGetProperty("Date", out JsonElement dateElement)) { Date = dateElement.GetString(); } if (datapackElement.TryGetProperty("OverrideSubmission", out JsonElement overrideElement)) { overrideExisting = overrideElement.GetBoolean(); } } string CharacterName = ""; string characterDescription = ""; CharacterRank characterRank = CharacterRank.NoRank; CharacterAlignment characterAlignment = CharacterAlignment.None; List <string> abilities = new List <string>(); if (root.TryGetProperty("characterSheet", out JsonElement characterElement)) { if (characterElement.TryGetProperty("Name", out JsonElement nameElement)) { CharacterName = nameElement.GetString(); } if (characterElement.TryGetProperty("rank", out JsonElement rankElement)) { characterRank = (CharacterRank)rankElement.GetInt32(); } if (characterElement.TryGetProperty("alignment", out JsonElement alignElement)) { characterAlignment = (CharacterAlignment)alignElement.GetInt32() + 1; } if (characterElement.TryGetProperty("characterDescription", out JsonElement descElement)) { characterDescription = descElement.GetString(); } if (root.TryGetProperty("Abilities", out JsonElement jsonElement3)) { foreach (var abilityElem in jsonElement3.EnumerateArray()) { abilities.Add(abilityElem.GetString()); } } } CharacterSheet characterSheet = new CharacterSheet(CharacterName, characterRank, characterAlignment, abilities, Date, Author); characterSheet.characterDescription = characterDescription; Program.characterLibrary.AddCharacter(characterSheet, overrideExisting, true); Console.WriteLine($"New character sheet added to the bots library."); } ns.Close(); client.Close(); } } }
static public List <CharacterSheet> ImportCharacterSheetsFromDisk() { List <CharacterSheet> importedSheets = new List <CharacterSheet>(); string curDir = Directory.GetCurrentDirectory(); if (!Directory.Exists($"{curDir}\\CharacterSheets")) { Directory.CreateDirectory($"{curDir}\\CharacterSheets"); return(importedSheets); } // start with all txts DirectoryInfo directoryInfo = new DirectoryInfo(curDir + "\\CharacterSheets\\"); FileInfo[] files = directoryInfo.GetFiles("*.txt"); foreach (FileInfo file in files) { string jsonString = File.ReadAllText(file.FullName); using (JsonDocument document = JsonDocument.Parse(jsonString)) { JsonElement root = document.RootElement; string charName = ""; string charDesc = ""; string charAuth = ""; CharacterRank charRank = CharacterRank.NoRank; CharacterAlignment charAlignment = CharacterAlignment.None; List <string> abilities = new List <string>(); if (root.TryGetProperty("Name", out JsonElement nameElement)) { charName = nameElement.GetString(); } if (root.TryGetProperty("rank", out JsonElement rankElement)) { charRank = (CharacterRank)rankElement.GetInt32(); } if (root.TryGetProperty("alignment", out JsonElement alignElement)) { charAlignment = (CharacterAlignment)alignElement.GetInt32(); } if (root.TryGetProperty("characterDescription", out JsonElement descElement)) { charDesc = descElement.GetString(); } if (root.TryGetProperty("Abilities", out JsonElement prereqsElement)) { foreach (var abilityElem in prereqsElement.EnumerateArray()) { abilities.Add(abilityElem.GetString()); } } if (root.TryGetProperty("Author", out JsonElement authorElement)) { charAuth = authorElement.GetString(); } CharacterSheet characterSheet = new CharacterSheet(charName, charRank, charAlignment, abilities, charAuth); characterSheet.characterDescription = charDesc; if (characterSheet.IsValid()) { importedSheets.Add(characterSheet); } } } return(importedSheets); }
/*********************************************************************************************** * LoadAbilityLibrary -- Will load library json from AbilityLibrary.txt and cast the json * * format to the needed Ability class template. * * * * * * * * INPUT: Nothing * * * * OUTPUT: Nothing * * * * WARNINGS: Should any changes be made in the ability class (such as the addition of vars), * * then the validation check must be updated to read and configure any updated * * class variables. Ability class constructor will set any vars to 'invalid' by * * default. * * * * HISTORY: * * 2020-09-25 11:12AM EST : Created * * 2020-10-01 03:38PM EST : Added input param for if we are refreshing the library. * *=============================================================================================*/ static public void LoadAbilityLibrary(bool isRefreshing = true) { string curDir = Directory.GetCurrentDirectory() + "\\Lists\\"; if (!Directory.Exists(curDir)) { Directory.CreateDirectory(curDir); Console.WriteLine("Error! List Folder could not be found! Made directory at " + curDir); return; } string JsonString = System.IO.File.ReadAllText(curDir + "AbilityLibrary.txt"); using (JsonDocument document = JsonDocument.Parse(JsonString)) { List <Ability> abilityList = new List <Ability>(); JsonElement root = document.RootElement; foreach (JsonElement ability in root.EnumerateArray()) { string name = ""; string desc = ""; CharacterRank rank = CharacterRank.NoRank; CharacterAlignment align = CharacterAlignment.None; AbilityCategory cat = AbilityCategory.NoCategory; int skill = 0; List <string> prereqs = new List <string>(); if (ability.TryGetProperty("Name", out JsonElement nameElement)) { name = nameElement.GetString(); } if (ability.TryGetProperty("rank", out JsonElement rankElement)) { rank = (CharacterRank)rankElement.GetInt32(); } if (ability.TryGetProperty("Description", out JsonElement descElement)) { desc = descElement.GetString(); } if (ability.TryGetProperty("alignment", out JsonElement alignElement)) { align = (CharacterAlignment)alignElement.GetInt32(); } if (ability.TryGetProperty("skillCost", out JsonElement skillElement)) { skill = skillElement.GetInt32(); } if (ability.TryGetProperty("category", out JsonElement categElement)) { cat = (AbilityCategory)categElement.GetInt32(); } if (ability.TryGetProperty("Prereqs", out JsonElement prereqsElement)) { foreach (var abilityElem in prereqsElement.EnumerateArray()) { if (abilityElem.TryGetProperty("Name", out JsonElement prereqName)) { prereqs.Add(prereqName.GetString()); } } } Ability ab = new Ability(name, desc, "", skill, prereqs, rank, cat, align); if (ab.IsValid()) { abilityList.Add(ab); } } foreach (Ability ab in abilityList) { Program.abilityLibrary.AddAbility(ab); } } System.Console.WriteLine("Loaded Ability List"); }