public void AddVerteidigung(Tabular t, CharakterMan cm) { Tabular a = new Tabular(2); a.addRow(); a[0, 0] = GetText("Akrobatik:"); a[0, 1] = GetText("W20 + " + cm.Statisch.Fertigkeiten.FinalWert.Value()[Universe.Fertigkeiten.GetElement("Akrobatik")] + " + Boni:____ = W20 + ____"); a.addRow(); a[1, 0] = GetText("RK:"); a[1, 1] = GetText("10 + Rüstung:____ * " + (cm.Statisch.Fertigkeiten.FinalWert.Value()[Universe.Fertigkeiten.GetElement("Rüstung")] / 20f).ToString("P0") + " + Boni:____ = ____" ); a.addRow(); a[2, 0] = GetText("FK:"); a[2, 1] = GetText("RK:____ + " + cm.Statisch.Fertigkeiten.FinalWert.Value()[Universe.Fertigkeiten.GetElement("Verstecken")] + " + Boni:____ = ____" ); AddEntry(t, GetText(@"\dVerteidigung\d"), a); }
public DrawBox Aktionen(CharakterMan cm) { Tabular t = new Tabular(1); t.columnPens[0] = t.columnPens[1] = base.Line; AddLaufen(t); AddAngriff(t); AddAngriff(t); AddVerteidigung(t, cm); AddZaubern(t); return t; }
public override DrawBox MakeBogen(CharakterMan Charakter) { this.ab = 2; Charakter.Update(); float seite = 400; CString Haupt = new CString(); Tabular Splitter = new Tabular(2); CString Left = new CString(); CString Right = new CString(); Assistment.Texts.Text Name = GetName(Charakter, GetLP(Charakter)); Haupt.add(new Word("Alsland-Personenakte", Schrift, Germanica, 0, Line)); Haupt.addAbsatz(); Haupt.add(Splitter); Haupt.alignment = 0.5f; Splitter.addRow(); Splitter[0, 0] = Left; Splitter[0, 1] = Right; Right.addWhitespace(seite); Right.add(base.GetBemerkungen(Charakter.Charakter.Super.Bemerkungen).Geometry(5)); Right.alignment = 0.5f; Right.add(new Whitespace(300, 50, true)); Right.add(Resistenzen()); Left.alignment = 0.5f; Left.addWhitespace(seite); Left.addAbsatz(); Left.add(Name.Geometry(30)); Left.addAbsatz(); #region Porträt try { Image img = Image.FromFile(Charakter.Charakter.Super.RP.Portrait); Left.add(new DynamicImageBox(img, 100, 100, 400, 400)); Left.addAbsatz(); } catch (Exception) { } #endregion Tabular leftTab = new Tabular(2); leftTab.addRow(); CString AttRett = new CString(); AttRett.add(GetEigenschaftenTabelleMitModif("Attribute", Charakter, Charakter.Statisch.Attribute, (a => (int)Math.Floor((a - 10f) / 2)), Universe.Attribute.Where(x => !x.Hidden)).Geometry(5)); AttRett.add(GetEigenschaftenTabelle("Rettungswürfe", Charakter, Charakter.Statisch.Fertigkeiten, Universe.Fertigkeiten.Menge.Where(x => x.Rettungswurf)).Geometry(5)); leftTab[0, 0] = AttRett; leftTab[0, 1] = GetEigenschaftenTabelle("Fertigkeiten", Charakter, Charakter.Statisch.Fertigkeiten, Universe.Fertigkeiten.Menge.Where(x => !x.Rettungswurf)).Geometry(5); Left.add(leftTab); Left.add(new Whitespace(300, 10, true)); Left.add(Aktionen(Charakter)); return Haupt.Geometry(rand); }
public Tabular GetTabelle(CharakterMan Charakter) { Abbildung<Attribut, int> w0 = Charakter.Charakter.Super.Attribute.Attribute; Abbildung<Attribut, int> w = Charakter.Statisch.Attribute.FinalWert.Value(); Abbildung<Fertigkeit, int> f0 = Charakter.Charakter.Super.GetGrundwerteFertigkeiten(Charakter.Stufe); Tabular t = new Tabular(9); bool Master = Charakter.Stufe > Universe.CharakterDaten.StufenBachelor; IEnumerable<Fertigkeit> z = Charakter.Charakter.Super.Fertigkeiten.GetGelernteFertigkeiten(Master, Universe.CharakterDaten); Pen p = Pens.Black; int n = 0; int l = 0; int m = 0; Fertigkeit[][] fert = new Fertigkeit[3][]; Attribut[] att = Universe.Attribute.GetElemente("Stärke", "Geschick", "Charisma"); fert.CountMap(i => { IEnumerable<Fertigkeit> y = z.Where(x => x.Attribut == att[i]); n = Math.Max(n, y.Count()); return y.ToArray(); }); t.addRow(n + 1, p); for (int c = 0; c < 3; c++) { t[m, c * 3 + 0] = att[c].SchreibName; t[m, c * 3 + 1] = w0[att[c]] + ""; t[m, c * 3 + 2] = w[att[c]] + ""; } for (m = 1; m < n + 1; m++) for (int c = 0; c < 3; c++) if (m < fert[c].Length) { Fertigkeit f = fert[c][m]; t[m, c * 3 + 0] = f.SchreibName; t[m, c * 3 + 1] = f0[f] + ""; t[m, c * 3 + 2] = Charakter.FertigkeitsWert(f) + ""; } m = n + 1; att = Universe.Attribute.GetElemente("Intelligenz", "Intuition", "Wahrnehmung"); fert.CountMap(i => { IEnumerable<Fertigkeit> y = z.Where(x => x.Attribut == att[i]); l = Math.Max(l, y.Count()); return y.ToArray(); }); t.addRow(l + 1, p); for (int c = 0; c < 3; c++) { t[m, c * 3 + 0] = att[c].SchreibName; t[m, c * 3 + 1] = w[att[c]] + ""; t[m, c * 3 + 2] = w0[att[c]] + ""; } for (m = n + 2; m < n + l + 2; m++) for (int c = 0; c < 3; c++) if (m < fert[c].Length) { Fertigkeit f = fert[c].ElementAt(m); t[m, c * 3 + 0] = f.SchreibName; t[m, c * 3 + 1] = Charakter.FertigkeitsWert(f) + ""; t[m, c * 3 + 2] = f0[f] + ""; } return t; }
public int GetLP(CharakterMan cm) { int ko = cm.Statisch.Attribute.FinalWert.Value().Get(Universe.Attribute.GetElement("Konstitution")) ; ko = (int)Math.Floor((ko - 10f) / 2); switch (cm.Charakter.Super.Klassen.Bachelor.Name) { case "Blutmagier": case "Magier": case "Druide": ko += 4; break; case "Technomagier": case "Diebesmagier": case "Dieb": case "Assassine": case "Wegbereiter": ko += 6; break; case "Organ_Krosas": case "Cyrics_Lakai": case "Hexenjäger": case "Abenteurer": case "Rebell": case "Schmied": ko += 8; break; case "Soldat": ko += 10; break; case "Schlächter": case "Barbar": ko += 12; break; default: throw new NotImplementedException(); } return ko * cm.Stufe; }
public override DrawBox MakeBogen(CharakterMan Charakter) { Charakter.Update(); float seite = 400; CString Haupt = new CString(); CString Oben = new CString(); CString Unten = new CString(); Haupt.add(new Word("Alsland-Personenakte", Schrift, Germanica, 0, Line)); Haupt.addAbsatz(); Haupt.add(Oben); Haupt.addAbsatz(); Haupt.add(Unten); Haupt.alignment = Oben.alignment = Unten.alignment = 0.5f; Tabular Splitter = new Tabular(2); CString Left = new CString(); CString Right = new CString(); Assistment.Texts.Text Name = base.GetName(Charakter); Oben.add(Splitter); Splitter.addRow(); Splitter[0, 0] = Left; Splitter[0, 1] = Right; Tabular Talente = GetTalente(Charakter, seite); //if (Talente.Rows > 0) // Talente.setRowPen(Talente.Rows - 1, Pens.Black); //Talente.addRow(); //Talente[Talente.Rows - 1, 0] = this.GetHarte(Charakter); Right.add(Talente.Geometry(5)); Right.alignment = 0.5f; Left.alignment = 0.5f; Left.addWhitespace(seite); Left.addAbsatz(); Left.add(Name.Geometry(30)); Left.addAbsatz(); #region Porträt try { Image img = Image.FromFile(Charakter.Charakter.Super.RP.Portrait); Left.add(new DynamicImageBox(img, 100, 100, 400, 400)); } catch (Exception) { } #endregion ab = 18; Title = new FontMeasurer("Calibri", 16); Normal = new FontMeasurer("Calibri", 14); Tabular t = new Tabular(3); t.addRow(2); t[0, 0] = GetAttributFertigkeitenTabelle(Charakter, Universe.Attribute.GetElement("Stärke")).Geometry(ab); t[0, 1] = GetAttributFertigkeitenTabelle(Charakter, Universe.Attribute.GetElement("Geschick")).Geometry(ab); t[0, 2] = GetAttributFertigkeitenTabelle(Charakter, Universe.Attribute.GetElement("Charisma")).Geometry(ab); t[1, 0] = GetAttributFertigkeitenTabelle(Charakter, Universe.Attribute.GetElement("Intelligenz")).Geometry(ab); t[1, 1] = GetAttributFertigkeitenTabelle(Charakter, Universe.Attribute.GetElement("Intuition")).Geometry(ab); t[1, 2] = GetAttributFertigkeitenTabelle(Charakter, Universe.Attribute.GetElement("Wahrnehmung")).Geometry(ab); Unten.add(t); Title = new FontMeasurer("Calibri", 12); Normal = new FontMeasurer("Calibri", 11); ab = 5; return Haupt.Geometry(rand); }
public CharakterDynamisch(CharakterMan Charakter) : base("Dynamische Eigenschaften", "dynamisch", Charakter.Charakter.Super.Universe) { Geschwindigkeit = new Eigenschaft<float>(new SummeF()); Fertigkeiten = new Eigenschaft<Abbildung<Fertigkeit, int>>(new ZVektor<Fertigkeit>(Charakter.Charakter.Super.Universe.Fertigkeiten)); KannAgieren = new Eigenschaft<bool>(new Verband(Verband.OperationArt.Und)); Resistenzen = new Eigenschaft<Abbildung<Schadenstyp, int>>(new ZVektor<Schadenstyp>(Universe.Schadenstypen)); CharakterDynamisch cs = Charakter.Charakter.Universe.CharakterDaten.DynamischeBuffs; Geschwindigkeit.add(cs.Geschwindigkeit); Fertigkeiten.add(cs.Fertigkeiten); KannAgieren.add(cs.KannAgieren); Resistenzen.add(cs.Resistenzen); }
public CharakterStatisch(CharakterMan Charakter) : base("Statische Eigenschaften", "statisch", Charakter.Charakter.Universe) { Attribute = new Eigenschaft<Abbildung<Attribut, int>>(Charakter.Charakter.Super.Attribute.Attribute); Fertigkeiten = new Eigenschaft<Abbildung<Fertigkeit, int>>(Charakter.GrundwerteFertigkeiten()); Korperwerte = new Eigenschaft<Abbildung<Korperwert, int>>(new ZVektor<Korperwert>(Charakter.Charakter.Universe.Korperwerte)); Resistenzen = new Eigenschaft<Abbildung<Schadenstyp, int>>(new ZVektor<Schadenstyp>(Charakter.Charakter.Universe.Schadenstypen)); CharakterStatisch cs = Charakter.Charakter.Universe.CharakterDaten.StatischeBuffs; Attribute.add(cs.Attribute); Fertigkeiten.add(cs.Fertigkeiten); Korperwerte.add(cs.Korperwerte); Resistenzen.add(cs.Resistenzen); foreach (var item in Charakter.Talente()) if (item != null) foreach (var buff in item.Buffs) AddBuff(buff); }
public CharakterMan Create(int Stufe) { CharakterMan c = new CharakterMan(this, this.InstanzNummern++); Instanzen.Add(c); c.MakeStatisch(Stufe); return c; }
public override Manifest Create(ManifestData Data) { CharakterMan c = new CharakterMan(this, this.InstanzNummern++); Instanzen.Add(c); c.Read(Data); return c; }