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; }
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; }
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(); }
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); }
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]; }
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; }
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; }
public override void ReadElement(ManifestData Data) { Attribute = Data.getAttribute("attribute"); Data.NextElement(); }
public override void Read(ManifestData reader, int ID) { base.Read(reader, ID); Hartebonus = reader.getSchaden("harteboni"); }
public CharakterAttribute(ManifestData Data) : base(Data, "Attribute", "attribute") { Attribute = new ZVektor<Attribut>(Data.Attribute); }
public CharakterAttribute(Universe Universe) : this(Universe.Attribute.NewZVektor()) { Attribute = new ZVektor<Attribut>(Universe.Attribute); }
public CharakterAttribute(ZVektor<Attribut> Attribute) : base("Attribute", "attribute", Attribute.Menge.Universe) { this.Attribute = Attribute; }
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; }
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; } }
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(); }