public static string AttackModifier(this Item item, Character charecterToUse, bool isForAttack = true) { int dex = charecterToUse.Abilities.Dexterity.Modifier(); int str = charecterToUse.Abilities.Strength.Modifier(); int modToUse; string display; bool isThrown = item.Thrown; bool isFinesse = item.Finesse; bool isRanged = !string.IsNullOrWhiteSpace(item.Range); if(isThrown || isFinesse) { if(str > dex) { modToUse = str; } else { modToUse = dex; } } else { if(isRanged) { modToUse = dex; } else { modToUse = str; } } if(isForAttack) { if (charecterToUse.SpecialOverides.ProfiencyBonus != 0) { modToUse += charecterToUse.SpecialOverides.ProfiencyBonus; } else { modToUse += charecterToUse.ProfiencyBonus(); } } if (isForAttack) { display = modToUse.ToString("+#;-#;+0"); } else { if(modToUse == 0) { display = string.Empty; } else { display = modToUse.ToString("+#;-#;+0"); } } return display; }
public ActionResult Create(Character character) { if (ModelState.IsValid) { character.Save(); return RedirectToAction("Index"); } return View(character); }
// GET: Characters/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Character character = new Character().Load(id.Value); if (character == null) { return HttpNotFound(); } return View(character); }
public ActionResult CharecterSheet(int? id, bool isAlt = false) { ActionResult response; if (id == null) { response = new HttpStatusCodeResult(HttpStatusCode.BadRequest); } else { Character character = new Character().Load(id.Value); if (character == null) { response = HttpNotFound(); } else { string charecterSheet = character.GetPdf(isAlt); FileStreamResult result = new FileStreamResult(new System.IO.FileStream(charecterSheet, System.IO.FileMode.Open), "application/pdf"); result.FileDownloadName = charecterSheet.Split('\\').Last(); response = result; } } return response; }
// GET: Characters/Details/5 public ActionResult Details(int? id) { ActionResult response; if (id == null) { response = new HttpStatusCodeResult(HttpStatusCode.BadRequest); } else { Character character = new Character().Load(id.Value); if (character == null) { response = HttpNotFound(); } else { string sheetLocation = CharecterExtensions.Common.folderBase + "Character Sheet - Form Fillable.pdf"; character.GetPdf(false); sheetLocation = CharecterExtensions.Common.folderBase + "Character Sheet - Alternative - Form Fillable.pdf"; character.GetPdf(true); response = View(character); } } return response; }
public ActionResult DeleteConfirmed(int id) { Character character = new Character().Load(id); character.Delete(); return RedirectToAction("Index"); }
public ActionResult Edit(Character character) { ActionResult returnView; var invalidKeys = character.ClassLevels.Keys.Where(x => string.IsNullOrWhiteSpace(x)).ToList(); var duplicateKeys = character.ClassLevels.Keys.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList(); character.Languages = character.Languages.First().Split(new string[] { ",", Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToList(); character.OtherProfiencies = character.OtherProfiencies.First().Split(new string[] { ",", Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToList(); character.Items.RemoveAll(x => x.Count == 0); if (invalidKeys.Any()) { foreach (string invalidKey in invalidKeys) { character.ClassLevels.Remove(invalidKey); } character.Save(); returnView = View(character); } else { if (ModelState.IsValid) { character.Save(); returnView = View(character); } else { returnView = View(character); } } return returnView; }