public CharakterSimpleFertigkeitenControl(CharakterErstellungsDaten Daten, bool Master)
            : base(Daten)
        {
            this.Master = Master;
            Fertigkeiten = new List<Fertigkeit>();
            Fertigkeitspunkte = new ZVektor<Attribut>(Attribute);
            RestFertigkeitspunkte = new ZVektor<Attribut>(Attribute);

            this.Info = new Label();
            this.Info.AutoSize = true;

            this.Neu = new Button();
            Neu.Text = "Neue Fertigkeit";
            Neu.AutoSize = true;
            Neu.Click += (sender, e) =>
            {
                Form.Chose(null);
                Form.Filter(x => !Fertigkeiten.Contains(x) && x.Kosten <= RestFertigkeitspunkte);
                Form.ShowDialog();
                if (Form.MyStatus == ElementAuswahlForm<Fertigkeit>.Status.OK)
                    CreatePaar(Form.Ergebnis);
                UpdateInfo();
            };

            this.Stufe = Master ? Daten.StufenBachelor : 0;
        }
Exemple #2
0
 public Stufe(int WiderstandMin, int WiderstandMax, ZVektor<Korperwert> Mali, Verletzung Verletzung)
 {
     this.WiderstandMax = WiderstandMax;
     this.WiderstandMin = WiderstandMin;
     this.Mali = Mali;
     this.Verletzung = Verletzung;
 }
 public CharakterAttribute Get()
 {
     ZVektor<Attribut> zv = new ZVektor<Attribut>(Attribute);
     for (int i = 0; i < Menge.Length; i++)
         zv.Add(Menge[i], GetAttribut(i));
     CharakterAttribute ca = new CharakterAttribute(zv);
     return ca;
 }
 public ZVektor<Fertigkeit> GetGrundwerteFertigkeiten(int Stufe)
 {
     ZVektor<Fertigkeit> Grundwerte = new ZVektor<Fertigkeit>(Universe.Fertigkeiten);
     Grundwerte.Add(Fertigkeiten.FertigkeitsSummen[Stufe - 1]);
     if (Klassen.Bachelor != null)
         Grundwerte.Add(Klassen.Bachelor.GetFertigkeitsmodiSumme(Stufe));
     if (Klassen.Master != null)
         Grundwerte.Add(Klassen.Master.GetFertigkeitsmodiSumme(Stufe));
     return Grundwerte;
 }
Exemple #5
0
        public void SetAttribute(ZVektor<Attribut>[] Attribute)
        {
            PreKosten = new ZVektor<Attribut>[Stufen];
            Kosten = new ZVektor<Attribut>[Stufen];
            this.Kontingente = new ZVektor<Attribut>[Stufen];
            Frei = new ZVektor<Attribut>[Stufen];

            CalculateKontingente(Attribute);
            for (int i = 0; i < Stufen; i++)
                CalculatePreKosten(i);
            CalculateKosten();
        }
Exemple #6
0
 private void SummiereFertigkeiten()
 {
     FertigkeitsSummen[0] = (ZVektor<Fertigkeit>)FertigkeitsWerte[0].Clone();
     for (int i = 1; i < Stufen; i++)
     {
         FertigkeitsSummen[i] = new ZVektor<Fertigkeit>(Universe.Fertigkeiten);
         FertigkeitsSummen[i].Add(FertigkeitsWerte[i]);
         FertigkeitsSummen[i].Add(FertigkeitsSummen[i - 1]);
     }
 }
        public override void Apply(SuperCharakter Charakter)
        {
            ZVektor<Fertigkeit> f = new ZVektor<Fertigkeit>(Universe.Fertigkeiten);
            foreach (var item in Fertigkeiten)
                f.Add(item, 1);

            int a, b;
            if (Master)
            {
                a = Daten.StufenBachelor + 1;
                b = Daten.StufenBachelor + Daten.StufenMaster;
            }
            else
            {
                a = 1;
                b = Daten.StufenBachelor;
            }
            Charakter.Fertigkeiten.TakeLinear(f, a, b);
        }
Exemple #8
0
 private void CalculateKosten()
 {
     Kosten[0] = (ZVektor<Attribut>)PreKosten[0].Clone();
     for (int i = 1; i < Stufen; i++)
     {
         ZVektor<Attribut> Vektor = new ZVektor<Attribut>(Universe.Attribute);
         Vektor.Add(Kosten[i - 1]);
         Vektor.Add(PreKosten[i]);
         Kosten[i] = Vektor;
     }
     for (int i = 0; i < Stufen; i++)
         Frei[i] = Kontingente[i] - Kosten[i];
 }
Exemple #9
0
 public void TakeLinear(ZVektor<Fertigkeit> Step, int AnfangsStufe, int EndStufe)
 {
     for (int i = AnfangsStufe - 1; i < EndStufe; i++)
         FertigkeitsWerte[i] = (ZVektor<Fertigkeit>)Step.Clone();
     SummiereFertigkeiten();
 }
 public ZVektor<Attribut>[] GetFertigkeitspunkte()
 {
     int n = Daten.StufenBachelor + Daten.StufenMaster;
     ZVektor<Attribut>[] Attribute = new ZVektor<Attribut>[n];
     for (int i = 1; i <= n; i++)
         Attribute[i - 1] = GetFertigkeitspunkte(i);
     return Attribute;
 }
Exemple #11
0
 private void CalculatePreKosten(int Stufe)
 {
     ZVektor<Attribut> Vektor = new ZVektor<Attribut>(Universe.Attribute);
     foreach (var fertigkeit in Universe.Fertigkeiten)
         Vektor.Add(fertigkeit.Kosten * FertigkeitsWerte[Stufe][fertigkeit]);
     PreKosten[Stufe] = Vektor;
 }
Exemple #12
0
        public override void ReadElement(ManifestData Data)
        {
            Attribute = Data.getAttribute("attribute");

            Data.NextElement();
        }
Exemple #13
0
 public override void Read(ManifestData reader, int ID)
 {
     base.Read(reader, ID);
     Hartebonus = reader.getSchaden("harteboni");
 }
Exemple #14
0
 public CharakterAttribute(ManifestData Data)
     : base(Data, "Attribute", "attribute")
 {
     Attribute = new ZVektor<Attribut>(Data.Attribute);
 }
Exemple #15
0
 public CharakterAttribute(Universe Universe)
     : this(Universe.Attribute.NewZVektor())
 {
     Attribute = new ZVektor<Attribut>(Universe.Attribute);
 }
Exemple #16
0
 public CharakterAttribute(ZVektor<Attribut> Attribute)
     : base("Attribute", "attribute", Attribute.Menge.Universe)
 {
     this.Attribute = Attribute;
 }
Exemple #17
0
 public ZVektor<Korperwert> Verletzt()
 {
     ZVektor<Korperwert> zv = new ZVektor<Korperwert>(Charakter.Universe.Korperwerte);
     foreach (var item in Objekte.Verletzungen)
         zv.Add(item.Mali);
     return zv;
 }
 public ZVektor<Attribut> GetFertigkeitspunkte(int Stufe)
 {
     ZVektor<Attribut> att = new ZVektor<Attribut>(Universe.Attribute);
     att.Add(Attribute.Attribute);
     if (Stufe > Daten.StufenBachelor && Klassen.Master != null)
         att.Add(Klassen.Master.Attribute);
     else if (Klassen.Bachelor != null)
         att.Add(Klassen.Bachelor.Attribute);
     return att;
 }
Exemple #19
0
 private void CalculateKontingente(ZVektor<Attribut>[] Attribute)
 {
     Kontingente[0] = Attribute[0];
     for (int i = 1; i < Stufen; i++)
     {
         ZVektor<Attribut> a = new ZVektor<Attribut>(Universe.Attribute);
         a.Add(Kontingente[i - 1]);
         a.Add(Attribute[i]);
         Kontingente[i] = a;
     }
 }
Exemple #20
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();
        }