public void Read(ManifestData data)
        {
            DynamischeBuffs = new CharakterDynamisch(data.Universe);
            StatischeBuffs = new CharakterStatisch(data.Universe);

            FertigkeitsGeber = Universe.Attribute.GetElemente(data.getStrings("fertigkeitsgeber"));
            SkillbareAttribute = Universe.Attribute.GetElemente(data.getStrings("skillbar"));

            data.NextElement();
            data.Section("charaktererstellungsdaten", () =>
            {
                switch (data.Reader.Name)
                {
                    case "attribute":
                        ReadAttribute(data);
                        break;
                    case "klassen":
                        ReadKlassen(data);
                        break;
                    case "fertigkeiten":
                        ReadFertigkeiten(data);
                        break;
                    case "now":
                        Now = data.getDateTime("date");
                        data.NextElement();
                        break;
                    case "buffs":
                        ReadBuffs(data);
                        break;
                    case "standardfertigkeiten":
                        StandardFertigkeiten = data.ReadAufzahlungFertigkeiten();
                        data.NextElement();
                        break;
                    default:
                        throw new NotImplementedException();
                }
            });
        }
Exemple #2
0
        public override void Read(ManifestData reader, int ID)
        {
            base.Read(reader, ID);
            Master = reader.getBoolean("master");
            Fokus5 = reader.getBoolean("fokus5");
            Fokus10 = reader.getBoolean("fokus10");
            this.Attribute = reader.getAttribute("attribute");
            this.Daten = reader.Universe.CharakterDaten;
            this.Stufen = Master ? Daten.StufenMaster : Daten.StufenBachelor;

            Fertigkeiten = new List<Fertigkeit>();
            List<string[]> talente = new List<string[]>();
            Fertigkeitsmodi = new ZVektor<Fertigkeit>[Stufen];
            FertigkeitsmodiSummen = new ZVektor<Fertigkeit>[Stufen];
            for (int i = 0; i < Stufen; i++)
            {
                Fertigkeitsmodi[i] = new ZVektor<Fertigkeit>(reader.Universe.Fertigkeiten);
                FertigkeitsmodiSummen[i] = new ZVektor<Fertigkeit>(reader.Universe.Fertigkeiten);
            }

            reader.Section(() =>
            {
                switch (reader.FlatName)
                {
                    case "fertigkeiten":
                        Fertigkeiten.AddRange(reader.ReadAufzahlungFertigkeiten());
                        reader.NextElement();
                        break;
                    case "fertigkeitsmodi":
                        reader.Section(() =>
                        {
                            switch (reader.FlatName)
                            {
                                case "rate":
                                    float rate = reader.getFloat("rate");
                                    Fertigkeit fert = reader.getFertigkeit("fertigkeit");
                                    int alt = 0;
                                    int neu;
                                    for (int i = 0; i < Stufen; i++)
                                    {
                                        neu =(int)Math.Ceiling((i+1) * rate);
                                        Fertigkeitsmodi[i].Add(fert, neu - alt);
                                        alt = neu;
                                    }
                                    break;
                                default:
                                    throw new NotImplementedException();
                            }
                            reader.NextElement();
                        });
                        FertigkeitsmodiSummen[0] = Fertigkeitsmodi[0];
                        for (int i = 1; i < Stufen; i++)
                        {
                            FertigkeitsmodiSummen[i] = FertigkeitsmodiSummen[i - 1] + Fertigkeitsmodi[i];
                        }
                        break;
                    case "stufen":
                        reader.Section(() =>
                        {
                            talente.Add(reader.getStrings("talente"));
                            reader.NextElement();
                        });
                        break;
                    default:
                        throw new NotImplementedException();
                }
            });
            if (talente != null)
                TalentTags = talente.ToArray();
        }