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);
        }
Beispiel #4
0
        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;
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
 public CharakterMan Create(int Stufe)
 {
     CharakterMan c = new CharakterMan(this, this.InstanzNummern++);
     Instanzen.Add(c);
     c.MakeStatisch(Stufe);
     return c;
 }
Beispiel #10
0
 public override Manifest Create(ManifestData Data)
 {
     CharakterMan c = new CharakterMan(this, this.InstanzNummern++);
     Instanzen.Add(c);
     c.Read(Data);
     return c;
 }