Beispiel #1
0
        public Charakterbogen(CharakterMan Charakter, Universe Universe)
        {
            float width = 1000;

            this.Charakter = Charakter;
            this.Universe = Universe;
            Charakter.Update();

            xFont font = new FontGraphicsMeasurer("Calibri", 11);

            this.Titel = new CString();
            this.Titel.addWhitespace(width, 0, true);
            this.Titel.add(new Word("Gestapo-Personenakte", Brushes.Black, new FontGraphicsMeasurer("PlainGermanica", 44), 0, Pens.Black).Geometry(10));
            this.Titel.addWhitespace(width, 50);
            Titel.alignment = 0.5f;

            this.Portrait = new ImageBox(300, Charakter.Charakter.Super.RP.Portrait == null ? StandardPortrait : new Bitmap(Charakter.Charakter.Super.RP.Portrait));

            Whitespace EinschubLinks = new Whitespace(100, 100, false);
            Whitespace EinschubOben = new Whitespace(width, 50, true);

            Bogen = new CString();
            Bogen.add(EinschubOben);
            Bogen.add(Titel);
            Bogen.addAbsatz();

            Bogen.add(EinschubLinks);
            Bogen.add(Portrait);
            Bogen.addWhitespace(width / 20);
            Bogen.add(RPBlock());
            Bogen.addAbsatz();

            Bogen.add(EinschubOben);
            Bogen.addWhitespace(160, 50);
            Bogen.add(TabelleLinks(font));
            Bogen.addWhitespace(160, 50);
            Bogen.add(TabelleRechts(font));
        }
        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 #3
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 #4
0
        public override Assistment.Texts.DrawBox GetDrawBox(SizeF Size)
        {
            int z = 0;
            TwoColumnTabular t = new TwoColumnTabular(Size.Width);

            if (HatZielen())
            {
                t.addRow();
                t[z, 0] = Fett("Zielwurf");
                t[z, 1] = Word("W20 Rechts - W20 Links");
                z++;
                t.addRow();
                t[z, 1] = Word("um " + GetZielen() + " korrigiert");
                z++;
                t.addRow();
                t[z, 0] = Fett("Abweichung");
                t[z, 1] = Word("Distanz x Zielwurf / 20");
                t.setRowPen(z, Strich);
                z++;
            }

            t.addRow();
            t[z, 0] = Fett("Schadenstyp");
            t[z, 1] = Word(Waffe.Schadenstyp);
            z++;
            t.addRow();
            t[z, 0] = Fett("Angriff");
            t[z, 1] = Word("W20 + " + GetFertigkeit() + " - Härtewurf");

            if (HatParade())
            {
                z++;
                t.addRow();
                t[z, 0] = Fett("Parade");
                t[z, 1] = Word("W20 + " + GetParade() + " - Härtewurf");
            }

            //z++;
            //t.addRow();
            //t[z, 0] = Word("Kritisch");
            //t[z, 1] = Word(GetKrit());

            for (int i = 0; i < LowerBound.Length; i++)
            {
                int s = GetSchaden();
                z++;
                t.addRow();
                if (LowerBound[i] == int.MinValue)
                    t[z, 0] = Regex(@" < \d" + (UpperBound[i] + 1 - s));
                else if (UpperBound[i] == int.MaxValue)
                    t[z, 0] = Regex(@" > \d" + (LowerBound[i] - 1 - s));
                else
                    t[z, 0] = Regex(@"\d" + (LowerBound[i] - s) + @"\d bis \d" + (UpperBound[i] - s));
                t[z, 1] = Word(Wunde[i]);
            }
            t.setRowPen(z, Strich);
            CString cs = new CString();
            cs.add(t);
            cs.addAbsatz();
            cs.add(Regex("Kritische Treffer bei " + GetKrit()));
            cs.addAbsatz();
            cs.add(Regex(@"Abstechen ab Wunden \d3\d. Grades"));

            return cs;
        }