Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
 public static void LoadCharakter(JSONCharakter json_charakter, out DSAError error)
 {
     error = null;
     charakter.Load(json_charakter, TalentList.ToList());
 }