private MonsterStatBlock ApplyStackedTemplates(TemplateManager.TemplateManager TM, MonsterStatBlock TestMonSB, List <string> stackedTemplateList, string stackedTemplateBase, out List <string> Failures) { TestMonSB = TM.ApplyTemplate(_sbCheckerBaseInput.MonsterSB, stackedTemplateBase, stackedTemplateList, out Failures); if (Failures.Any()) { _sbCheckerBaseInput.MessageXML.AddInfo("Failed Application of Template - " + string.Join(",", Failures.ToArray())); } return(TestMonSB); }
private MonsterStatBlock ApplyAdvancedHDTemplate(TemplateManager.TemplateManager TM, MonsterStatBlock TestMonSB) { try { TestMonSB = TM.ApplyAdvancedHDTemplate(TestMonSB, "Advanced HD", _sbCheckerBaseInput.MonsterSB.Size, Convert.ToInt32(_sbCheckerBaseInput.MonsterSB.CR), Convert.ToInt32(TestMonSB.CR));// _sbCheckerBaseInput.MonsterSB.HD; } catch { } _sbCheckerBaseInput.Race_Base.ApplyTemplatedRaceSB(TestMonSB, false); _sbCheckerBaseInput.MessageXML.AddInfo("Template Applied - Advanced HD"); return(TestMonSB); }
private MonsterStatBlock ApplyMultipleTemplates(TemplateManager.TemplateManager TM, MonsterStatBlock TestMonSB, List <string> templates, List <string> stackedTemplateList) { List <string> Failures; TestMonSB = TM.ApplyMultipleTemplates(TestMonSB, templates, out Failures); if (Failures.Any()) { _sbCheckerBaseInput.MessageXML.AddInfo("Failed Application of Template - " + string.Join(",", stackedTemplateList.ToArray())); } return(TestMonSB); }
private MonsterStatBlock ApplyOneTemplate(string CheckName, TemplateManager.TemplateManager TM, MonsterStatBlock TestMonSB) { bool success; TestMonSB = TM.ApplyTemplate(TestMonSB, _sbCheckerBaseInput.MonsterSB.TemplatesApplied.Trim(), out success); if (success) { _sbCheckerBaseInput.MessageXML.AddInfo("Template Applied - " + _sbCheckerBaseInput.MonsterSB.TemplatesApplied.Trim()); } else { _sbCheckerBaseInput.MessageXML.AddFail(CheckName, "Failed Application of Template - " + _sbCheckerBaseInput.MonsterSB.TemplatesApplied.Trim()); } return(TestMonSB); }
public void CheckTemplates() { if (_sbCheckerBaseInput.Race_Base.RaceBaseType != RaceBase.RaceType.None) { TemplateManager.TemplateManager TM = new TemplateManager.TemplateManager(); MonsterStatBlock TestMonSB = _sbCheckerBaseInput.Race_Base.RaceSB; if (TestMonSB == null) { return; } if (_sbCheckerBaseInput.MonsterSB.TemplatesApplied.Length != 0) { CheckAppliedTemplates(TM, ref TestMonSB); } else { if (_sbCheckerBaseInput.Race_Base.Size() != _sbCheckerBaseInput.MonsterSB.Size) { string temp = _sbCheckerBaseInput.MonsterSB.CR; try { if (temp == "1/2") { return; } string temp2 = TestMonSB.CR; if (temp2 == "1/2") { return; } TestMonSB = TM.ApplyAdvancedHDTemplate(TestMonSB, "Advanced HD", _sbCheckerBaseInput.MonsterSB.Size, Convert.ToInt32(temp), Convert.ToInt32(temp2)); _sbCheckerBaseInput.Race_Base.ApplyTemplatedRaceSB(TestMonSB, false); } catch { } } } } }
private void CheckAppliedTemplates(TemplateManager.TemplateManager TM, ref MonsterStatBlock TestMonSB) { string CheckName = "CheckAppliedTemplates"; bool stackedTemplates = false; if (_sbCheckerBaseInput.MonsterSB.TemplatesApplied.Contains(",")) { stackedTemplates = true; //|1,2,3…@sk| } List <string> templates = _sbCheckerBaseInput.MonsterSB.TemplatesApplied.Split('|').ToList(); templates.RemoveAll(x => x == string.Empty); List <string> stackedTemplateList = new List <string>(); string stackedTemplateBase = string.Empty; if (stackedTemplates) { FindStackTemplates(templates, ref stackedTemplateList, ref stackedTemplateBase); } foreach (string appliedTemplate in templates) { string lowerAppliedTemplate = appliedTemplate.ToLower(); if (lowerAppliedTemplate.Contains("advanced") || lowerAppliedTemplate.Contains("advanced hd") || lowerAppliedTemplate.Contains("advanced-hd")) { if (_sbCheckerBaseInput.MonsterSB.HDValue() - _sbCheckerBaseInput.CharacterClasses.FindTotalClassLevels() != _sbCheckerBaseInput.Race_Base.RacialHDValue()) { TestMonSB = ApplyAdvancedHDTemplate(TM, TestMonSB); } else { if (TestMonSB != null) { List <string> Failures; if (stackedTemplates) { TestMonSB = ApplyStackedTemplates(TM, TestMonSB, stackedTemplateList, stackedTemplateBase, out Failures); } else { if (templates.Count == 1) { TestMonSB = ApplyOneTemplate(CheckName, TM, TestMonSB); } else { TestMonSB = ApplyMultipleTemplates(TM, TestMonSB, templates, stackedTemplateList); } } _sbCheckerBaseInput.Race_Base.ApplyTemplatedRaceSB(TestMonSB, true); } } } else { if (TestMonSB != null) { bool Success; MonsterStatBlock tempmonSB = null; List <string> Failures; if (stackedTemplates) { TestMonSB = ApplyStackedTemplates(TM, TestMonSB, stackedTemplateList, stackedTemplateBase, out Failures); Success = !Failures.Any(); } else { TM.ApplyTemplate(TestMonSB, lowerAppliedTemplate.Trim(), out Success); } if (tempmonSB != null) { TestMonSB = tempmonSB; } if (!Success) { _sbCheckerBaseInput.MessageXML.AddFail("CheckTemplates", "Template not applied for " + lowerAppliedTemplate.Trim()); } else { _sbCheckerBaseInput.MessageXML.AddInfo("Template Applied - " + lowerAppliedTemplate.Trim()); _sbCheckerBaseInput.Race_Base.ApplyTemplatedRaceSB(TestMonSB, true); } } } } }