public static async Task <bool> ShowDialog(JSONCharakter jSON_Charakter) { var title = "Charakter Löschen"; var message = "Soll der Folgende Charakter wirklich gelöcht werden? \n" + " ID: " + jSON_Charakter.ID + " \n" + " Name: " + jSON_Charakter.Name + " \n" + " Letze Speicherung: " + jSON_Charakter.SaveTime + " \n"; var dialog = new MessageDialog(message, title); dialog.Commands.Add(new UICommand("Abbrechen") { Id = 0 }); dialog.Commands.Add(new UICommand("Löschen") { Id = 1 }); var result = await dialog.ShowAsync(); if ((int)result.Id == 0) { return(false); } return(true); }
public LoadPage() { this.InitializeComponent(); var items = new ObservableCollection <JSONCharakter>(); var cFileList = FileManagment.GetFilesDictionary(Game.CharakterSaveFolder, out DSAError error); foreach (var item in cFileList) { var file = Path.Combine(Game.CharakterSaveFolder, item); var fileContent = FileManagment.LoadTextFile(file, out error); var json_charakter = JSONCharakter.DeSerializeJson(fileContent, out string errorstring); if (string.IsNullOrEmpty(json_charakter.Name)) { json_charakter.Name = CHARNAME; charGivenName.Add(json_charakter, true); } else { charGivenName.Add(json_charakter, false); } items.Add(json_charakter); } items.OrderBy(x => x.Name).ThenBy(x => x.SaveTime); Items = items; }
public string Import([FromBody] DataRequest <string> request) { JSONCharakter x = JSONCharakter.DeSerializeJson(request.Data, out string errorstring); var charakter = new SQLCharakterRepository(Context).CreateDSACharakter(Context, "New Charakter"); var abstractcharakter = GetDSASQLCharakter(charakter.Id); abstractcharakter.Import(x); return(CreateResponse(charakter)); }
private void TalentMissing(JSONCharakter json_charakter, Guid guid) { var talent = json_charakter.TalentGuidsNames.Where(x => x.Key == guid).FirstOrDefault(); LogStrings.LogString(LogLevel.ErrorLog, "Talent Fehlt: " + talent.Key + " " + talent.Value); }
public void Load(JSONCharakter jsonCharakter, List <ITalent> talentListe) { #region Nullprüfungen if (jsonCharakter == null) { throw new ArgumentNullException(nameof(jsonCharakter)); } else if (talentListe == null) { throw new ArgumentNullException(nameof(talentListe)); } if (jsonCharakter.MotherLanguages == null) { jsonCharakter.MotherLanguages = new Dictionary <Guid, bool>(); } if (jsonCharakter.DeductionTalent == null) { jsonCharakter.DeductionTalent = new Dictionary <Guid, Guid>(); } #endregion CreateNew(jsonCharakter.ID); Name = jsonCharakter.Name; #region Attribute Laden foreach (var item in jsonCharakter.AttributeBaseValue.Keys) { Attribute.SetAKTValue(item, jsonCharakter.AttributeBaseValue[item]); } #endregion #region Values Laden if (jsonCharakter.SettableValues != null) { foreach (var item in jsonCharakter.SettableValues) { var settableValue = Values.UsedValues.Where(x => x.Name == item.Key).FirstOrDefault(); if (settableValue != null && typeof(AbstractSettableValue).IsAssignableFrom(settableValue.GetType())) { Values.SetAKTValue((AbstractSettableValue)settableValue, item.Value); } } } #endregion #region Resources Laden //kein Laden notwendig #endregion #region Traits Laden if (jsonCharakter.Traits != null) { foreach (var item in jsonCharakter.Traits) { var trait = new Trait { TraitType = item.TraitType, Description = item.Description, GP = item.GP, Title = item.Title, Value = item.Value, APEarned = item.APEarned, APInvest = item.APInvest }; foreach (var innerItems in item.AttributeValues) { trait.SetValue(innerItems.Key, innerItems.Value); } foreach (var innerItems in item.ValueValues) { var value = GetValue(innerItems.Key); if (value != null) { trait.SetValue(value, innerItems.Value); } } foreach (var innerItems in item.ResourceValues) { var res = GetResource(innerItems.Key); if (res != null) { trait.SetValue(res, innerItems.Value); } } foreach (var innerItems in item.TawBonus) { var talent = talentListe.Where(x => x.ID == innerItems.Key).FirstOrDefault(); if (talent != null) { trait.SetTaWBonus(talent, innerItems.Value); } } foreach (var innerItems in item.AtBonus) { var talent = talentListe.Where(x => x.ID == innerItems.Key).FirstOrDefault(); if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType())) { trait.SetATBonus((AbstractTalentFighting)talent, innerItems.Value); } } foreach (var innerItems in item.PaBonus) { var talent = talentListe.Where(x => x.ID == innerItems.Key).FirstOrDefault(); if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType())) { trait.SetPABonus((AbstractTalentFighting)talent, innerItems.Value); } } if (item.BLBonus != null) { foreach (var innerItems in item.BLBonus) { var talent = talentListe.Where(x => x.ID == innerItems.Key).FirstOrDefault(); if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType())) { trait.SetBLBonus((AbstractTalentFighting)talent, innerItems.Value); } } } Traits.AddTrait(trait); } } #endregion #region Talente Laden foreach (var item in jsonCharakter.TalentTAW) { var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault(); if (talent != null) { Talente.SetTAW(talent, item.Value); } else { TalentMissing(jsonCharakter, item.Key); } } foreach (var item in jsonCharakter.TalentAT) { var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault(); if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType())) { Talente.SetFightingValue(FightingValue.Attacke, (AbstractTalentFighting)talent, item.Value); } else { TalentMissing(jsonCharakter, item.Key); } } foreach (var item in jsonCharakter.TalentPA) { var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault(); if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType())) { Talente.SetFightingValue(FightingValue.Parade, (AbstractTalentFighting)talent, item.Value); } else { TalentMissing(jsonCharakter, item.Key); } } if (jsonCharakter.TalentBL != null) { foreach (var item in jsonCharakter.TalentBL) { var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault(); if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType())) { Talente.SetFightingValue(FightingValue.Blocken, (AbstractTalentFighting)talent, item.Value); } else { TalentMissing(jsonCharakter, item.Key); } } } foreach (var item in jsonCharakter.MotherLanguages) { var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault(); Talente.SetMother((TalentSpeaking)talent, item.Value); } foreach (var item in jsonCharakter.DeductionTalent) { try { var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault(); var talentDeductions = talent.Deductions.Where(x => x.GetType().IsAssignableFrom(typeof(TalentDeductionTalent))).Cast <TalentDeductionTalent>().ToList(); var deduction = talentDeductions.Where(x => x.Talent.ID == item.Value).FirstOrDefault(); Talente.SetDeduction(talent, deduction); } catch (Exception ex) { LogStrings.LogString(LogLevel.ErrorLog, "Fehler beim Laden einer Deduction: " + item.Key + " " + item.Value); } } #endregion #region Descriptoren Laden foreach (var item in jsonCharakter.Descriptors) { this.Descriptions.AddDescripton(new Descriptor { Priority = item.Priority, DescriptionText = item.DescriptionText, DescriptionTitle = item.DescriptionTitle }); } #endregion #region Money #region Money if (jsonCharakter.Money != null) { var money = jsonCharakter.Money; Money.Bank = money.Bank; Money.D = money.D; Money.H = money.H; Money.K = money.K; Money.S = money.S; } #endregion #endregion #region Anderes Laden Other.APEarned = jsonCharakter.AktAP; Other.APInvested = jsonCharakter.InvestAP; #endregion }
public JSONCharakter CreateSave() { var charakter = new JSONCharakter { ID = ID, Name = Name, SaveTime = DateTime.Now }; #region Values Speichern charakter.SettableValues = new Dictionary <string, int>(); var settableValues = Values.UsedValues.Where(x => typeof(AbstractSettableValue).IsAssignableFrom(x.GetType())); foreach (var item in settableValues) { var value = Values.GetAKTValue(item, out DSAError error); charakter.SettableValues.Add(item.Name, value); } #endregion #region Attribute Speichern var attributeDictionary = new Dictionary <CharakterAttribut, int>(); var attribute = Attribute.UsedAttributs; foreach (var attribut in attribute) { var value = Attribute.GetAttributAKTValue(attribut); attributeDictionary.Add(attribut, value); } charakter.AttributeBaseValue = attributeDictionary; #endregion #region Resources Speichern //kein Speichern notwendig #endregion #region Talente Speichern charakter.TalentTAW = new Dictionary <Guid, int>(); charakter.TalentAT = new Dictionary <Guid, int>(); charakter.TalentPA = new Dictionary <Guid, int>(); charakter.TalentBL = new Dictionary <Guid, int>(); charakter.DeductionTalent = new Dictionary <Guid, Guid>(); charakter.MotherLanguages = new Dictionary <Guid, bool>(); foreach (var item in Talente.TAWDictionary) { if (item.Value > 0) { charakter.TalentTAW.Add(item.Key.ID, item.Value); } } var allTalents = new List <ITalent>(Talente.TAWDictionary.Keys); foreach (var fightingDictionaryList in Talente.FightingValueDictionary) { Dictionary <AbstractTalentFighting, int> fightingDictioary = fightingDictionaryList.Value; foreach (var item in fightingDictioary) { if (fightingDictionaryList.Key == FightingValue.Attacke) { charakter.TalentAT.Add(item.Key.ID, item.Value); } else if (fightingDictionaryList.Key == FightingValue.Blocken) { charakter.TalentPA.Add(item.Key.ID, item.Value); } else { charakter.TalentBL.Add(item.Key.ID, item.Value); } } allTalents.AddRange(fightingDictioary.Keys); } foreach (var item in Talente.MotherDicionary) { charakter.MotherLanguages.Add(item.Key.ID, item.Value); } foreach (var item in Talente.DeductionTalent) { charakter.DeductionTalent.Add(item.Key.ID, item.Value.Talent.ID); } charakter.TalentGuidsNames = new Dictionary <Guid, string>(); foreach (var item in allTalents) { if (!charakter.TalentGuidsNames.ContainsKey(item.ID)) { charakter.TalentGuidsNames.Add(item.ID, item.Name); } } #endregion #region Descriptor Speichern charakter.Descriptors = new List <JSONDescriptor>(); foreach (var item in this.Descriptions.Descriptions) { charakter.Descriptors.Add(new JSONDescriptor { Priority = item.Priority, DescriptionTitle = item.DescriptionTitle, DescriptionText = item.DescriptionText }); } #endregion #region Traits Speichern charakter.Traits = new List <JSONTrait>(); foreach (var item in Traits.traits) { var jTrait = new JSONTrait { TraitType = item.TraitType, Description = item.Description, GP = item.GP, Title = item.Title, Value = item.Value, APEarned = item.APEarned, APInvest = item.APInvest, AttributeValues = new Dictionary <CharakterAttribut, int>(), ResourceValues = new Dictionary <string, int>(), ValueValues = new Dictionary <string, int>(), TawBonus = new Dictionary <Guid, int>(), AtBonus = new Dictionary <Guid, int>(), PaBonus = new Dictionary <Guid, int>(), BLBonus = new Dictionary <Guid, int>() }; foreach (var innerItem in item.UsedAttributs()) { jTrait.AttributeValues.Add(innerItem, item.GetValue(innerItem)); } foreach (var innerItem in item.UsedResources()) { jTrait.ResourceValues.Add(innerItem.Name, item.GetValue(innerItem)); } foreach (var innerItem in item.UsedValues()) { jTrait.ValueValues.Add(innerItem.Name, item.GetValue(innerItem)); } foreach (var innerItem in item.GetTawBonus()) { jTrait.TawBonus.Add(innerItem.Key.ID, innerItem.Value); } foreach (var innerItem in item.GetATBonus()) { jTrait.AtBonus.Add(innerItem.Key.ID, innerItem.Value); } foreach (var innerItem in item.GetPABonus()) { jTrait.PaBonus.Add(innerItem.Key.ID, innerItem.Value); } foreach (var innerItem in item.GetBLBonus()) { jTrait.BLBonus.Add(innerItem.Key.ID, innerItem.Value); } charakter.Traits.Add(jTrait); } #endregion #region Money charakter.Money = new JSONMoney(Money); #endregion #region Anderes Laden charakter.AktAP = Other.APEarned; charakter.InvestAP = Other.APInvested; #endregion return(charakter); }
public static void LoadCharakter(JSONCharakter json_charakter, out DSAError error) { error = null; charakter.Load(json_charakter, TalentList.ToList()); }