public override IText AddText(string text, double fontSize, System.Windows.Media.SolidColorBrush brush)
        {
            if (cachedTypeface == null) {
                cachedTypeface = CreateTypeface();
            }
            var textFormat = d2d.DirectWriteFactory.CreateTextFormat(
                cachedTypeface.FontFamily.Source,
                FontWeight.Normal,
                FontStyle.Normal,
                FontStretch.Normal,
                (float)fontSize);
            textFormat.TextAlignment = TextAlignment.Leading;
            textFormat.ParagraphAlignment = ParagraphAlignment.Near;

            var textLayout = d2d.DirectWriteFactory.CreateTextLayout(
                text,
                textFormat,
                300, 100);

            MyText myText = new MyText {
                parent = this,
                textFormat = textFormat,
                textLayout = textLayout,
                color = Color.FromRGB(brush.Color.R / 255f, brush.Color.G / 255f, brush.Color.B / 255f)
            };
            texts.Add(myText);
            return myText;
        }
示例#2
0
    public MyButton(UnityEngine.Events.UnityAction eventListner, Sprite sprite, Rect rect, string text = "Button")
        : base("Button")
    {
        var trans = Element.AddComponent<RectTransform>();
        SetSize(trans, rect.size);
        SetSize(trans, new Vector2(120, 32));
        trans.anchoredPosition3D = new Vector3(0, 0, 0);
        trans.anchoredPosition = new Vector2(0, 0);
        trans.localScale = new Vector3(1.0f, 1.0f, 1.0f);
        trans.localPosition = rect.position;

        Element.AddComponent<CanvasRenderer>();

        var image = Element.AddComponent<Image>();
        image.sprite = sprite;
        image.type = Image.Type.Sliced;

        var title = new MyText(text);
        var titleRect = title.Element.GetComponent<RectTransform>();
        title.SetAnchor(new Vector2(0, 0), new Vector2(1, 1));
        titleRect.sizeDelta.Set(0, 0);
        titleRect.offsetMin = new Vector2(0, 0);
        titleRect.offsetMax = new Vector2(0, 0);
        titleRect.localScale = new Vector3(1, 1, 1);
        AddElement(title);

        var button = Element.AddComponent<Button>();
        button.interactable = true;
        button.onClick.AddListener(eventListner);
    }
示例#3
0
    public MyInputField(string name, Sprite sprite, Rect rect)
        : base(name)
    {
        Element = new MyPanel(sprite, rect).Element;
        var inputScript = Element.AddComponent<InputField>();
        var text = new MyText("");
        var placeholder = new MyText("Enter Text...");
        text.SetAnchor(0, 0, 1, 1);
        placeholder.SetAnchor(0, 0, 1, 1);
        text.Element.GetComponent<Text>().alignment = TextAnchor.MiddleLeft;
        placeholder.Element.GetComponent<Text>().alignment = TextAnchor.MiddleLeft;
        placeholder.Element.GetComponent<Text>().fontStyle = FontStyle.Italic;
        placeholder.Element.GetComponent<Text>().color = Color.gray;

        var rectT = text.Element.GetComponent<RectTransform>();
        rectT.offsetMin = new Vector2(10, 5);
        rectT.offsetMax = new Vector2(-10, -5);

        rectT = placeholder.Element.GetComponent<RectTransform>();
        rectT.offsetMin = new Vector2(10, 5);
        rectT.offsetMax = new Vector2(-10, -5);

        AddElement(text);
        AddElement(placeholder);
        inputScript.placeholder = placeholder.Element.GetComponent<Text>();
        inputScript.textComponent = text.Element.GetComponent<Text>();
    }
 public override IText AddText(string text, double fontSize, SolidColorBrush brush)
 {
     if (cachedTypeface == null) {
         cachedTypeface = CreateTypeface();
     }
     FormattedText f = new FormattedText(text, CultureInfo.InvariantCulture, FlowDirection.LeftToRight, cachedTypeface,
                                         fontSize, brush, null, TextFormattingMode.Display);
     MyText myText = new MyText { line = f, parent = this };
     texts.Add(myText);
     return myText;
 }
 public override IText AddText(string text, double fontSize, SolidColorBrush brush)
 {
     if (cachedTypeface == null) {
         cachedTypeface = CreateTypeface();
     }
     GlobalTextRunProperties p = new GlobalTextRunProperties {
         typeface = cachedTypeface,
         fontRenderingEmSize = fontSize,
         foregroundBrush = brush,
         cultureInfo = CultureInfo.CurrentCulture
     };
     MyTextSource myTextSource = new MyTextSource { text = text, textRunProperties = p };
     TextLine line = formatter.FormatLine(myTextSource, 0, 500, new MyTextParagraphProperties {defaultTextRunProperties = p}, null);
     MyText myText = new MyText { line = line, parent = this };
     texts.Add(myText);
     return myText;
 }
        public override IText AddText(string text, double fontSize, SolidColorBrush brush)
        {
            if (cachedTypeface == null) {
                var t = CreateTypeface();
                if (!t.TryGetGlyphTypeface(out cachedTypeface))
                    throw new NotSupportedException();
            }

            ushort[] glyphIndexes = new ushort[text.Length];
            double[] advanceWidths = new double[text.Length];

            double totalWidth = 0;
            for (int n = 0; n < text.Length; n++) {
                ushort glyphIndex;
                cachedTypeface.CharacterToGlyphMap.TryGetValue(text[n], out glyphIndex);
                glyphIndexes[n] = glyphIndex;
                double width = cachedTypeface.AdvanceWidths[glyphIndex] * fontSize;
                advanceWidths[n] = width;
                totalWidth += width;
            }

            GlyphRun run = new GlyphRun(cachedTypeface,
                                        bidiLevel: 0,
                                        isSideways: false,
                                        renderingEmSize: fontSize,
                                        glyphIndices: glyphIndexes,
                                        baselineOrigin: new Point(0, Math.Round(cachedTypeface.Baseline * fontSize)),
                                        advanceWidths: advanceWidths,
                                        glyphOffsets: null,
                                        characters: null,
                                        deviceFontName: null,
                                        clusterMap: null,
                                        caretStops: null,
                                        language: null);
            MyText myText = new MyText { run = run, parent = this, brush = brush };
            texts.Add(myText);
            return myText;
        }
        public override IText AddText(string text, double fontSize, System.Windows.Media.SolidColorBrush brush)
        {
            if (cachedTypeface == null) {
                cachedTypeface = CreateTypeface();
            }

            LOGFONT logfont = new LOGFONT();
            logfont.lfFaceName = cachedTypeface.FontFamily.Source;
            logfont.lfHeight = -(int)fontSize;
            //logfont.lfOutPrecision = 4;
            //logfont.lfQuality = 5;

            MyText myText = new MyText {
                parent = this,
                text = text,
                color = brush.Color.R | (brush.Color.G << 8) | (brush.Color.B << 16),
                font = CreateFontIndirect(ref logfont)
            };
            //myText.brush = new SolidBrush(myText.color);

            texts.Add(myText);
            return myText;
        }
示例#8
0
 string DescriptionTemplate(Ruinlvl[] AllLvls, int Index)
 {
     return("\nUpon dealing damage, you have " + MyText.Colofied(AllLvls[Index].TriggerChance + "%", highlight) + " chance to slow down enemy movement speed by " + MyText.Colofied(AllLvls[Index].MOVESPD_DEC_Percentage + "%", highlight) + " for " + Duration + " secs.");
 }
示例#9
0
    public MyWindow(Sprite sprite, string title, Rect rect)
        : base()
    {
        isOpen = true;
        Head = new MyPanel(sprite, rect);
        Head.Element.name = "Window" + title;
        var trans = Head.Element.GetComponent<RectTransform>();
        Head.SetAnchor(new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f));

        trans.anchoredPosition3D = new Vector3(0, 0, 0);
        trans.anchoredPosition = new Vector2(0, 0);
        trans.localPosition = new Vector3(0, 0, 0);
        trans.localScale = new Vector3(1, 1, 1);
        SetSize(trans, rect.size);

        var header = new MyPanel(sprite, rect);

        trans = header.Element.GetComponent<RectTransform>();
        header.Element.GetComponent<Image>().color = new Color32(230, 230, 230, 200);
        header.SetAnchor(new Vector2(0, 1), new Vector2(1, 1));
        trans.anchoredPosition3D = new Vector3(0, 0, 0);
        trans.anchoredPosition = new Vector2(0, 0);
        trans.offsetMin = new Vector2(0, 0);
        trans.offsetMax = new Vector2(0, 0);
        trans.localPosition = new Vector3(0, -10, 0);
        trans.sizeDelta = new Vector2(0, 20);
        trans.localScale = new Vector3(1, 1, 1);

        var titleWindow = new MyText(title);
        header.AddElement(titleWindow);

        var buttonClosed = new MyButton(() => SetActive(false), sprite, new Rect(0, 0, 64, 48), "X");
        var rectButton = buttonClosed.Element.GetComponent<RectTransform>();
        buttonClosed.SetAnchor(new Vector2(1, 1), new Vector2(1, 1));
        rectButton.sizeDelta = new Vector2(50, 20);
        rectButton.localPosition = new Vector3(-25, -10, 0);
        //rectButton.pivot = new Vector2(1, 1);
        var buttonScript = buttonClosed.Element.GetComponent<Button>();
        buttonScript.transition = Selectable.Transition.ColorTint;
        var selColor = new ColorBlock();
        selColor.normalColor = buttonClosed.Element.GetComponent<Button>().colors.normalColor;
        selColor.pressedColor = new Color32(255, 80, 80, 255);
        selColor.highlightedColor = new Color32(255, 0, 0, 255);
        selColor.colorMultiplier = 1;
        selColor.fadeDuration = 0.2f;

        buttonClosed.Element.GetComponent<Button>().colors = selColor;

        Element = new MyPanel(sprite, rect).Element;
        var transM = Element.GetComponent<RectTransform>();

        SetAnchor(new Vector2(0, 0), new Vector2(1, 1));
        transM.anchoredPosition3D = new Vector3(0, 0, 0);
        transM.anchoredPosition = new Vector2(0, 0);

        transM.sizeDelta = new Vector2(0, 0);
        transM.localPosition = new Vector3(0, -20, 0);
        transM.offsetMin = new Vector2(transM.offsetMin.x, 0);

        transM.localScale = new Vector3(1, 1, 1);

        header.AddElement(buttonClosed);
        Head.AddElement(header);
        Head.AddElement(this);
    }
示例#10
0
 string DescriptionTemplate(Ragelvl[] AllLvls, int Index)
 {
     return("\nIncrease your damage by " + MyText.Colofied(AllLvls[Index].Damage_INC_Percentage + "%", highlight) + " for " + Duration + " secs when your health fall below " + HealthTriggerThreshold + "%. Effect can not be triggered again within " + TriggerCD + " secs.");
 }
示例#11
0
 public override void Remove(int i)
 {
     MyTexts[i] = new MyText();
 }
示例#12
0
 public string Cost()
 {
     return(MyText.DollarFormat(MoneyNeeded()));
 }
示例#13
0
 string DescriptionTemplate(BloodyHandlvl[] AllLvls, int Index)
 {
     return("\nSummon a size " + MyText.Colofied(AllLvls[Index].RangeScale, highlight) + " bloody hand to deal " + MyText.Colofied(AllLvls[Index].DamageScale + "%", highlight) + " damage and grab enemies for you.\n\nCost: " + MyText.Colofied(AllLvls[Index].EssenseCost + " Essense", highlight) + "\nCD: " + MyText.Colofied(AllLvls[Index].CD + " secs", highlight));
 }
示例#14
0
 string DescriptionTemplate(WarStomplvl[] AllLvls, int Index)
 {
     return("\nHeavily stomp the ground, dealing " + MyText.Colofied(AllLvls[Index].DamageScale + "%", highlight) + " * Stomp Charge (Up to 2) damage to nearby foes and stun them for " + MyText.Colofied(AllLvls[Index].StunDuration + " secs", highlight) + ". Chagre it for bigger stomp.\n\nCost: " + MyText.Colofied(AllLvls[Index].EssenseCost + " Essense", highlight) + "\nCD: " + MyText.Colofied(AllLvls[Index].CD + " secs", highlight));
 }
示例#15
0
 string DescriptionTemplate(BloodForBloodlvl[] AllLvls, int Index)
 {
     return("\nIncrease your life steal by " + MyText.Colofied(AllLvls[Index].LPH_INC_Perentage + "%", highlight) + " when your health fall below " + HealthTriggerThreshold + " %.Effect lasts " + Duration + " secs and can not be triggered again within " + TriggerCD + " secs.");
 }
示例#16
0
 string DescriptionTemplate(Bashlvl[] AllLvls, int Index)
 {
     return("\nUpon dealing damage, you have " + MyText.Colofied(AllLvls[Index].TriggerChance + "%", highlight) + " chance to stun your targets for " + StunDuration + " secs.");
 }
示例#17
0
 string DescriptionTemplate(IronWilllvl[] AllLvls, int Index)
 {
     return("\nIncrease your defense by " + MyText.Colofied(AllLvls[Index].DEF_INC_Percentage + "%", highlight) + ".");
 }