public static void Postfix(CharacterVM __instance, int currentFocusAmount, ref bool __result) { if (Settings.Instance.Enabled && Settings.Instance.CharacterUpgrades) { __result = currentFocusAmount < 5 && __instance.UnspentCharacterPoints > 0; } }
public ActionResult EditCharacter(CharacterVM model) { if (ModelState.IsValid) { if (IsNameAvailable(model.Name)) { #region Update character info try { UpdateInfo(model); return(RedirectToAction("Index", "Character")); } catch (Exception e) { ViewBag.ErrorMessage = e.Message; return(View("Error")); } #endregion } else { //Add custom error to the ModelState if the character already exists ModelState.AddModelError("Name", "That name already exists"); } } return(View("EditCharacter", model)); }
async Task SaveCharacter() { var isInsert = false; if (string.IsNullOrWhiteSpace(CharacterVM._id)) { CharacterVM._id = Guid.NewGuid().ToString(); isInsert = true; } var hpCharacter = CharacterVM.GetCharacter(); var success = 0; var useLocalStorage = Preferences.Get("UsingLocalStorage", true); if (useLocalStorage) { success = await App.Context.SaveItemAsync <HPCharacter>(hpCharacter, isInsert); } else { // TODO: Call REST Service here } await UserDialogs.Instance.AlertAsync((success > 0)? "Success!" : "Error!", "Saving...", "OK"); }
private void GetBlankPrimaryTab(CharacterVM vm) { PrimaryTabVM primaryTab = new PrimaryTabVM(); GetSelectableRaces(primaryTab); ClassRowCM[] selectedClasses = new ClassRowCM[1]; selectedClasses[0] = new ClassRowCM { Index = 1 }; GetSelectableClasses(selectedClasses); primaryTab.Classes = new ClassesCM { SelectedClasses = selectedClasses }; primaryTab.Stats = new StatsCM { Bonus = new StatBonusCM() }; primaryTab.Saves = new SavesCM(); primaryTab.Combat = new CombatCM(); primaryTab.Skills = new ProficiencyCM { isProficient = new IsProficientCM(), TotalBonus = new SkillBonusCM() }; vm.PrimaryTab = primaryTab; }
async Task DeleteCharacter() { var confirm = await UserDialogs.Instance.ConfirmAsync("Are you sure?", "Delete?", "Yes", "No"); if (confirm) { var hpCharacter = CharacterVM.GetCharacter(); var success = 0; var useLocalStorage = Preferences.Get("UsingLocalStorage", true); if (useLocalStorage) { success = await App.Context.DeleteItemAsync <HPCharacter>(hpCharacter); } else { var service = new RESTService(); var result = await service.DeleteCharacter(hpCharacter._id); success = result ? 2 : 0; } await UserDialogs.Instance.AlertAsync((success > 0)? "Success!" : "Error!", "Deleting...", "OK"); } }
public CharacterVM CreateCharacterINVALID(CharacterVM vm) { //The reference sets won't be subimitted by the user - and even if they were, they may have been tampered with. //make sure we reset the reference sets to ensure accurate information is displayed. GetSelectableRaces(vm.PrimaryTab); GetSelectableClasses(vm.PrimaryTab.Classes.SelectedClasses); return(vm); }
private void GetBlankSpellsTab(CharacterVM vm) { SpellsTabVM spellsTab = new SpellsTabVM(); KnownSpellRowCM[] KnownSpells = new KnownSpellRowCM[0]; spellsTab.KnownSpells = KnownSpells; vm.SpellsTab = spellsTab; }
public CharacterVM CreateCharacterGET() { CharacterVM vm = new CharacterVM(); GetBlankPrimaryTab(vm); GetBlankNotesTab(vm); GetBlankInventoryTab(vm); GetBlankSpellsTab(vm); return(vm); }
public static void Update(CharacterVM character) { try { _dal.Update(MapToCharacter(character)); } catch (Exception e) { throw new NotImplementedException(e.Message); } }
static Character MapToCharacter(CharacterVM characterModel) { return(new Character() { Id = characterModel.Id, Name = characterModel.Name, Region = characterModel.Region, Vision = characterModel.Vision, CanWield = characterModel.Weapon, }); }
private void GetBlankNotesTab(CharacterVM vm) { NoteCM[] noteCollection = new NoteCM[1]; NoteCM blankNote = new NoteCM(); noteCollection[0] = blankNote; NoteTabVM noteTab = new NoteTabVM(); noteTab.Notes = noteCollection; vm.NotesTab = noteTab; }
private void GetBlankInventoryTab(CharacterVM vm) { MoneyCM money = new MoneyCM(); HeldItemRowCM[] heldItems = new HeldItemRowCM[0]; InventoryTabVM inventoryTab = new InventoryTabVM(); inventoryTab.Items = heldItems; inventoryTab.Money = money; vm.InventoryTab = inventoryTab; }
static void Postfix(SkillVM __instance, ref int ____fullLearningRateLevel, CharacterVM ____developerVM) { int attr = ____developerVM.GetCurrentAttributePoint(__instance.Skill.CharacterAttributesEnum); ____fullLearningRateLevel = (int)(__instance.Level + __instance.CurrentFocusLevel * Reworked_SkillsSubModule.__FOCUS_VALUE + attr * Reworked_SkillsSubModule.__ATTR_VALUE); TextObject attrname = CharacterAttributes.GetCharacterAttribute(__instance.Skill.CharacterAttributeEnum).Name; __instance.LearningRateTooltip = new BasicTooltipViewModel(() => GetLearningRateTooltip(attr, __instance.CurrentFocusLevel, __instance.Level, ____developerVM.Hero.CharacterObject.Level, attrname)); __instance.LearningLimitTooltip = new BasicTooltipViewModel(() => { Patch4.SKILLLEVEL = __instance.Level; return(GetLearningLimitTooltip(attr, __instance.CurrentFocusLevel, attrname)); }); }
public void UpdateInfo(CharacterVM character) { var model = new CharacterVM() { Id = character.Id, Name = character.Name, Region = character.Region, Weapon = character.Weapon, Vision = character.Vision }; CharacterDALMapper.Update(model); }
public ActionResult CharacterDetails(int id, string viewName) { CharacterVM model = CharacterDALMapper.FindById(id); if (model == null) { return(HttpNotFound()); } //Get actual name and save it in a temporary state object TempData[ACTUAL_NAME_KEY] = model.Name; return(View(viewName, model)); }
public static SkillVM CurrentSkill(SkillVM __result, CharacterVM __instance) { if (__result == null) { return(__result); } var bonuses = new CharacterAttributeBonuses(__instance.Hero.CharacterObject); var lerningRate = __result.LearningRate; var bonus = lerningRate * bonuses.XPMultiplier; __result.CurrentLearningRateText = "Learning Rate: x " + (lerningRate + bonus).ToString("F2"); return(__result); }
public void CreateCharacterPOST(Guid user_id, CharacterVM vm) { Guid character_id = Guid.NewGuid(); CreateModelMapper <PrimaryTabVM, CharacterDM> characterMapper = new CreateModelMapper <PrimaryTabVM, CharacterDM>(); CreateModelMapper <CombatCM, CharacterDM> combatMapper = new CreateModelMapper <CombatCM, CharacterDM>(); CharacterDM character = characterMapper.mapViewModelToDataModel(vm.PrimaryTab); if (_commons.raceExists(vm.PrimaryTab.Race) == true) { character.Race_id = vm.PrimaryTab.Race; } ; combatMapper.mapViewModelToDataModel(vm.PrimaryTab.Combat, character); character.Character_id = character_id; Health health = CharacterMapper.mapCombatCMToNewHealthEntity(vm.PrimaryTab.Combat); IsProficient skills = mapIsProficient(vm.PrimaryTab.Skills.isProficient); CreateModelMapper <SavesCM, IsProficient> mapSaves = new CreateModelMapper <SavesCM, IsProficient>(); mapSaves.mapViewModelToDataModel(vm.PrimaryTab.Saves, skills); Stats stats = CharacterMapper.mapStatsCMToNewEntity(vm.PrimaryTab.Stats); Currency money = CharacterMapper.mapCurrencyCMToNewEntity(vm.InventoryTab.Money); character.Character_id = character_id; character.User_id = user_id; health.Character_id = character_id; stats.Character_id = character_id; skills.Character_id = character_id; money.Character_id = character_id; _userAccess.AddCharacter(character); _userAccess.AddHealthRecord(health); _userAccess.AddStatsRecord(stats); _userAccess.AddProficiencyRecord(skills); _userAccess.AddCurrencyRecord(money); LearnSpells(vm.SpellsTab.KnownSpells, character_id); SetInventory(vm.InventoryTab.Items, character_id); SetNotes(vm.NotesTab.Notes, character_id); SetClasses(vm.PrimaryTab.Classes.SelectedClasses, character_id); _userAccess.SaveChanges(); }
public void UpdateCharacterPOST(Guid user_id, CharacterVM vm) { throw new NotImplementedException(); }
public static void Add(CharacterVM character) { _dal.Add(MapToCharacter(character)); }
public SearchCommand(CharacterVM vm) { VM = vm; }
public void CreateCharacter_GET_ReturnNonNullCharacterVM() { //Arrange PrimaryTabVM primaryTab = new PrimaryTabVM { Races = CreateTestData.GetRacesListModels(), Classes = CreateTestData.GetNonNullClassesCM(), Stats = new StatsCM { Bonus = new StatBonusCM() }, Saves = new SavesCM(), Combat = new CombatCM(), Skills = new ProficiencyCM { isProficient = new IsProficientCM(), TotalBonus = new SkillBonusCM() } }; NoteCM blankNote = new NoteCM(); NoteCM[] noteArray = new NoteCM[1]; noteArray[0] = blankNote; NoteTabVM notesTab = new NoteTabVM { Notes = noteArray }; InventoryTabVM inventory = new InventoryTabVM { Money = new MoneyCM(), Items = new HeldItemRowCM[0] }; SpellsTabVM spells = new SpellsTabVM { KnownSpells = new KnownSpellRowCM[0] }; CharacterVM expected = new CharacterVM { PrimaryTab = primaryTab, NotesTab = notesTab, InventoryTab = inventory, SpellsTab = spells }; using (var mocks = AutoMock.GetLoose()) { mocks.Mock <IBaseUserAccess>() .Setup(x => x.GetAllRaces()).Returns(CreateTestData.GetListOfRace()); mocks.Mock <IBaseUserAccess>() .Setup(x => x.GetAllPlayableClasses()).Returns(CreateTestData.GetPlayableClasses()); mocks.Mock <ICharacterCommonFunctions>() .Setup(x => x.itemExists(Guid.NewGuid())).Returns(false); var access = mocks.Create <IBaseUserAccess>(); var commons = mocks.Create <ICharacterCommonFunctions>(); //Act var toTest = ProcessorFactory.getCreateCharacterProcessor(access, commons); var actual = toTest.CreateCharacterGET(); //Assert actual.Should().BeEquivalentTo(expected); } }
public static void Postfix(CharacterAttributeItemVM __instance, Hero hero, CharacterAttributesEnum currAtt, CharacterVM developerVM, Action <CharacterAttributeItemVM> onInpectAttribute, Action <CharacterAttributeItemVM> onAddAttributePoint) { var bonuses = new CharacterAttributeBonuses(hero.CharacterObject); var text = ""; switch (currAtt) { case CharacterAttributesEnum.Vigor: text += bonuses.MeleeDamageMultiplier > 0 ? "Increases melee damage by " + bonuses.MeleeDamageMultiplier.ToString("P") + "\n" : ""; text += bonuses.MeleeSpeedMultiplier > 0 ? "Increases melee atack speed by " + bonuses.MeleeSpeedMultiplier.ToString("P") + "\n" : ""; text += bonuses.PositiveMoraleMultiplier > 0 ? "Increases morale gain by " + bonuses.PositiveMoraleMultiplier.ToString("P") + "\n" : ""; break; case CharacterAttributesEnum.Control: text += bonuses.RangeDamageMultiplier > 0 ? "Increases range damage by " + bonuses.RangeDamageMultiplier.ToString("P") + "\n" : ""; text += bonuses.RangeSpeedMultiplier > 0 ? "Increases range atack speed by " + bonuses.RangeSpeedMultiplier.ToString("P") + "\n" : ""; text += bonuses.NegativeMoraleMultiplier < 0 ? "Decrease morale loss by " + (-bonuses.NegativeMoraleMultiplier).ToString("P") + "\n" : ""; break; case CharacterAttributesEnum.Endurance: text += bonuses.HPMultiplier > 0 ? "Increases HP by " + bonuses.HPMultiplier.ToString("P") + "\n" : ""; text += bonuses.MoveSpeedMultiplier > 0 ? "Increases move speed by " + bonuses.MoveSpeedMultiplier.ToString("P") + "\n" : ""; break; case CharacterAttributesEnum.Cunning: text += bonuses.AttributeEffectMultiplier > 0 ? "Increases effect of other attributes by " + (bonuses.AttributeEffectMultiplier - 1).ToString("P") + "\n" : ""; break; case CharacterAttributesEnum.Social: text += bonuses.PartySizeMultiplier > 0 ? "Increases party size limit by " + bonuses.PartySizeMultiplier.ToString("P") + "\n" : ""; text += bonuses.PersuadeAddition > 0 ? "Increases persuade chance by " + bonuses.PersuadeAddition.ToString("P") + "\n" : ""; text += bonuses.RenownMultiplier > 0 ? "Increases renown gain by " + bonuses.RenownMultiplier.ToString("P") + "\n" : ""; text += bonuses.InfluenceMultiplier > 0 ? "Increases influnce gain by " + bonuses.InfluenceMultiplier.ToString("P") + "\n" : ""; text += bonuses.RenownAddition > 0 ? "Increases renown by " + bonuses.RenownAddition.ToString("F2") + " when you meet somebody at first\n" : ""; break; case CharacterAttributesEnum.Intelligence: text += bonuses.XPMultiplier > 0 ? "Increases learning rate for all skills by " + bonuses.XPMultiplier.ToString("P") + "\n" : ""; text += bonuses.IncomeMultiplier > 0 ? "Increases clan income by " + bonuses.IncomeMultiplier.ToString("P") + "\n" : ""; text += bonuses.ExpensesMultiplier < 0 ? "Decrease clan spendings by " + (-bonuses.ExpensesMultiplier).ToString("P") + "\n" : ""; break; } __instance.IncreaseHelpText = text + __instance.IncreaseHelpText; }
private static bool Prefix(CharacterVM __instance, ref bool __result, int currentFocusAmount) { __result = currentFocusAmount < 5 && __instance.UnspentCharacterPoints > 0; return(false); }
public void UpdateCharacterINVALID(CharacterVM vm) { throw new NotImplementedException(); }
private CharacterVM buildPOSTArgument() { ClassesCM postedClasses = new ClassesCM { SelectedClasses = new ClassRowCM[1] }; postedClasses.SelectedClasses[0] = new ClassRowCM { Index = 1, Level = 12, RemainingHitDice = 12, SelectedClass_id = Guid.Parse("4e82620a-0496-4ecc-b6d4-05faa064310b"), SelectedSubclass_id = Guid.Parse("c8d2e23a-a193-4e06-8814-9180d4830732") }; PrimaryTabVM primaryTab = new PrimaryTabVM { Name = "Caleb Widowgast", Alignment = "Chaotic Good", Background = "blah", isInspired = false, Exp = 0, Race = Guid.Parse("14f91515-0107-4c79-a3da-be3cf48d7a26"), Classes = postedClasses, Stats = new StatsCM { Strength = 10, Dexterity = 12, Constitution = 14, Intelligence = 20, Wisdom = 16, Charisma = 16 }, Combat = new CombatCM { MaxHP = 15, CurrentHP = 15, TempHP = 0, DeathSaveFails = 0, DeathSaveSuccesses = 0, ArmorClass = 14, MovementSpeed = 30 }, Skills = new ProficiencyCM { isProficient = new IsProficientCM { Acrobatics = false, AnimalHandling = false, Arcana = true, Athletics = false, Deception = true, History = true, Intimidation = false, Investigation = true, Medicine = false, Nature = false, Perception = false, Performance = false, Persuasion = false, Religion = true, SleightOfHand = false, Stealth = false, Survival = true } }, Saves = new SavesCM { StrengthSave = false, DexteritySave = false, ConstitutionSave = true, IntelligenceSave = true, WisdomSave = false, CharismaSave = false, } }; NoteTabVM noteTab = new NoteTabVM { Notes = new NoteCM[1] }; noteTab.Notes[0] = new NoteCM { Name = "The Cat Prince", Contents = "A children's picture book. The text is in Zemnian" }; InventoryTabVM inventoryTab = new InventoryTabVM { Money = new MoneyCM { GoldPieces = 3, SilverPieces = 50 }, Items = new HeldItemRowCM[1] }; inventoryTab.Items[0] = new HeldItemRowCM { Item_id = Guid.Parse("2caa23dc-15e6-4a57-9bb6-62f6d8636ff7"), isAttuned = false, isEquipped = false, Count = 1 }; SpellsTabVM spellsTab = new SpellsTabVM { KnownSpells = new KnownSpellRowCM[1] }; spellsTab.KnownSpells[0] = new KnownSpellRowCM { Spell_id = Guid.Parse("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"), isPrepared = true }; CharacterVM Argument = new CharacterVM { PrimaryTab = primaryTab, NotesTab = noteTab, InventoryTab = inventoryTab, SpellsTab = spellsTab }; return(Argument); }
public void CreateCharacterPOST(Guid user_id, CharacterVM vm) { _creator.CreateCharacterPOST(user_id, vm); }
static void Postfix(SkillVM __instance, ref int ____fullLearningRateLevel, CharacterVM ____developerVM) { int attr = ____developerVM.GetCurrentAttributePoint(__instance.Skill.CharacterAttributeEnum); ____fullLearningRateLevel = (int)(__instance.Level + __instance.CurrentFocusLevel * Reworked_SkillsSubModule.__FOCUS_VALUE + attr * Reworked_SkillsSubModule.__ATTR_VALUE); __instance.OnPropertyChanged(nameof(__instance.FullLearningRateLevel)); __instance.SkillEffects.Clear(); int skillValue = (int)(__instance.Level + __instance.CurrentFocusLevel * Reworked_SkillsSubModule.__FOCUS_VALUE + attr * Reworked_SkillsSubModule.__ATTR_VALUE); foreach (SkillEffect effect in DefaultSkillEffects.GetAllSkillEffects().Where <SkillEffect>((Func <SkillEffect, bool>)(x => ((IEnumerable <SkillObject>)x.EffectedSkills).Contains <SkillObject>(__instance.Skill)))) { __instance.SkillEffects.Add(new BindingListStringItem(CampaignUIHelper.GetSkillEffectText(effect, skillValue))); } }
//Create public static CharacterDM mapCharacterVMToNewEntity(CharacterVM vm) { ICreateModelMapper <CharacterVM, CharacterDM> mapper = new CreateModelMapper <CharacterVM, CharacterDM>(); return(mapper.mapViewModelToDataModel(vm)); }