public int GetClassMysterySpellLevels(string ClassName) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class.ClassInstance.GetMysteriesPerLevel(one_class.Level)); } return(0); }
public List <int> GetClassSpellLevels(string ClassName, int overloadLevel) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class.ClassInstance.GetSpellsPerLevel(one_class.Level + overloadLevel)); } return(null); }
public int GetSkillRanksPerLevel(string ClassName) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class.ClassInstance.SkillRanksPerLevel); } return(0); }
private ClassWrapper FindClass(string ClassName) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class); } return(null); }
public StatBlockInfo.HitDiceCategories GetClassHDType(string ClassName) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class.ClassInstance.HitDiceType); } return(StatBlockInfo.HitDiceCategories.None); }
public string FindClassDiety(string ClassName) { ClassWrapper one_class = FindClass(ClassName); if (one_class != null) { return(one_class.ClassInstance.ClassDiety); } return(string.Empty); }
public bool CanClassCastDomainSpells(string ClassName) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class.ClassInstance.DomainSpellUse); } return(false); }
public ClassWrapper GetClass(string ClassName) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class); } return(null); }
public int GetDomainSpellCount(string ClassName) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null && one_class.ClassInstance.DomainSpellUse) { return(one_class.ClassInstance.GetDomainSpellsPerLevel(one_class.Level)); } return(0); }
public List <string> GetClassAlignments(string ClassName) { ClassWrapper temp = GetClass(ClassName); if (temp == null) { return(new List <string>()); } return(temp.ClassInstance.ClassAlignments); }
public List <string> GetPrestigePreReqFeats(string ClassName) { ClassWrapper temp = GetClass(ClassName); if (temp == null) { return(new List <string>()); } return(temp.ClassInstance.PrestigePreReqFeats()); }
public int GetClassBloodlineSpellLevels(string ClassName, int overloadLevel) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class.ClassInstance.GetBloodlineSpellsPerLevel(one_class.Level + overloadLevel)); } return(0); }
public List <CheckClassError> CheckClass(string ClassName) { if (!Classes.Any()) { return(new List <CheckClassError>()); } ClassWrapper wrapper = FindClassInstance(ClassName); return(wrapper.ClassInstance.CheckClass(wrapper.Level)); }
public int FindClassLevel(string ClassName) { if (!Classes.Any()) { return(0); } ClassWrapper wrapper = FindClassInstance(ClassName); return(wrapper == null ? 0 : wrapper.Level); }
public List <string> GetClassArchetypeSkills(string ClassName, string Archetype) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class.ClassInstance.ClassArchetypeSkills(Archetype.ProperCase())); } return(new List <string>()); }
public List <string> GetClassSkills(string ClassName) { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class.ClassInstance.ClassSkills()); } return(new List <string>()); }
public string GetBloodlineName() { ClassWrapper temp = GetClass("sorcerer"); if (temp != null) { return(temp.ClassInstance.Bloodline.Name); } temp = GetClass("bloodrager"); if (temp != null) { return(temp.ClassInstance.Bloodline.Name); } return(string.Empty); }
public SkillData.SkillNames GetBloodlineClassSkill() { ClassWrapper temp = GetClass("sorcerer"); if (temp != null) { return(temp.ClassInstance.Bloodline.ClassSkillName); } temp = GetClass("bloodrager"); if (temp != null) { return(temp.ClassInstance.Bloodline.ClassSkillName); } return(SkillData.SkillNames.Unknown); }
public bool IsClassArchetype(string ClassName, string Archetype) { if (!Classes.Any()) { return(false); } ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { List <string> Archetypes = one_class.ClassInstance.ClassArchetypes; if (Archetypes.Exists(p => p == Archetype.ProperCase())) { return(true); } } return(false); }
public string GetSpellBonusAbility(string ClassName) { if (!Classes.Any()) { Type ClassInst = Assemb.GetType("ClassDetails." + ClassName); if (ClassInst != null) { object obj = Activator.CreateInstance(ClassInst); CW = new ClassWrapper(); ClassFoundation Class = (ClassFoundation)obj; return(Class.GetSpellBonusAbility()); } } else { ClassWrapper one_class = FindClassWrapper(ClassName); if (one_class != null) { return(one_class.ClassInstance.GetSpellBonusAbility()); } } return(string.Empty); }
private void ParseClassList(ClassMasterInput classMasterInput) { List <string> tempClasses = classMasterInput.ClassList.Split('/').ToList(); tempClasses.RemoveAll(x => x == string.Empty); string className, classLevel, archetype; string diety = string.Empty; int Pos, Pos2; foreach (string tempclass in tempClasses) { archetype = string.Empty; string holdClass = tempclass.ToLower(); Pos = tempclass.IndexOf(" ("); if (Pos == -1) { Pos = tempclass.Length; } else { archetype = tempclass.Substring(Pos); archetype = Utility.RemoveSuperScripts(archetype); Pos2 = archetype.IndexOf(PathfinderConstants.PAREN_RIGHT); archetype = archetype.Substring(0, Pos2 + 1); holdClass = holdClass.Replace(archetype, string.Empty).Trim(); archetype = archetype.Replace("*", string.Empty); archetype = Utility.RemoveParentheses(archetype); archetype = Utility.RemoveSuperScripts(archetype); archetype = archetype.ProperCase().Trim(); Pos = holdClass.IndexOf(" ("); if (Pos == -1) { Pos = holdClass.Length; } } Pos = holdClass.LastIndexOf(PathfinderConstants.SPACE, Pos); className = holdClass.Substring(0, Pos).Trim().ToLower(); classLevel = holdClass.Replace(className, string.Empty).Trim(); Pos = className.IndexOf(" of "); if (Pos >= 0) { var IgnoreOfs = new List <string> { "arclord of", "knight of", "prophet of", "brother of", "zealot of", "disciple of" }; bool foundIgnoreOf = false; foreach (var oneIgnore in IgnoreOfs) { if (className.Contains(oneIgnore)) { foundIgnoreOf = true; break; } } if (!foundIgnoreOf) { diety = className.Substring(Pos); diety = diety.Replace("of ", string.Empty).Trim(); className = className.Substring(0, Pos); } } if (className.IndexOf("Ex-") >= 0 || className.IndexOf("ex-") >= 0) { className = className.Replace("Ex-", string.Empty); className = className.Replace("ex-", string.Empty); className = className.ProperCase(); className = "Ex" + className; } else { className = className.ProperCase(); } className = className.Replace(PathfinderConstants.SPACE, string.Empty); Type ClassInst = Assemb.GetType("ClassDetails." + className); if (ClassInst == null) { throw new Exception("Class " + className + " not defined"); } try { object obj = Activator.CreateInstance(ClassInst); CW = new ClassWrapper(); ClassFoundation Class = (ClassFoundation)obj; CW.ClassInstance = Class; CW.ClassInstance.ClassDiety = diety; int classlevel; if (!int.TryParse(classLevel, out classlevel)) { throw new Exception("classLevel not int -" + classLevel + " for class " + Class); } CW.Level = classlevel; Class.ProcessPowers(CW.Level); CW.Archetype = archetype; List <string> archetypes = archetype.Split(',').ToList(); archetypes.RemoveAll(x => x == string.Empty);; foreach (string oneArchetype in archetypes) { if (oneArchetype.Length > 0 && !CW.ClassInstance.ClassArchetypes.Contains(oneArchetype.Trim())) { throw new Exception(className + " does not have archetype " + oneArchetype + " defined."); } } if (Class.DomainSpellUse) { if (classMasterInput.Domians.Contains("subdomain") || classMasterInput.Domians.Contains(PathfinderConstants.PAREN_LEFT) || classMasterInput.Domians.Contains(",")) { List <string> tempDomains = classMasterInput.Domians.Split(',').ToList(); for (int a = 0; a < tempDomains.Count; a++) { Pos = tempDomains[a].IndexOf(PathfinderConstants.PAREN_LEFT); if (Pos >= 0) { tempDomains[a] = tempDomains[a].Substring(Pos); tempDomains[a] = tempDomains[a].Replace("subdomain", string.Empty); } tempDomains[a] = Utility.RemoveParentheses(tempDomains[a]); tempDomains[a] = Utility.RemoveSuperScripts(tempDomains[a]); } classMasterInput.Domians = string.Join(",", tempDomains.ToArray()); } classMasterInput.Domians = Utility.RemoveSuperScripts(classMasterInput.Domians); classMasterInput.Domians = Utility.RemoveParentheses(classMasterInput.Domians); Class.ProcessDomains(classMasterInput.Domians); } if (Class.MysteryUse) { Class.ProcessMysteries(classMasterInput.Mysteries); } if (Class.BloodlineUse) { Class.ProcessBloodline(classMasterInput.Bloodline); } if (Class.PatronUse) { Class.ProcessPatron(classMasterInput.Patron.ProperCase()); } } catch (Exception ex) { throw new Exception("Initalize Class Issue with " + className + PathfinderConstants.SPACE + ex.Message, ex); } Classes.Add(CW); } }