예제 #1
0
        private void DrawBodyPartsOders(Rect rect)
        {
            CalculateBodyPartValues();

            Text.Anchor = TextAnchor.MiddleCenter;
            Rect buttonRect = new Rect(rect.x + 10, rect.y, rect.width - 20, 25);

            if (GUIUtils.DrawCustomButton(buttonRect, "RogerEdmonson_OrderWindow_SelectGroup".Translate($"{group}_group".Translate()), Color.white))
            {
                List <FloatMenuOption> options = new List <FloatMenuOption>();
                foreach (OrderBodypartGroup group in Enum.GetValues(typeof(OrderBodypartGroup)))
                {
                    options.Add(new FloatMenuOption($"{group}_group".Translate(), delegate {
                        this.group = group;
                    }));
                }

                Find.WindowStack.Add(new FloatMenu(options));
            }
            Text.Anchor = TextAnchor.UpperLeft;

            Rect intRect = new Rect(rect.x + 10, rect.y + 32, 250, 25);

            Widgets.Label(intRect, "RogerEdmonson_OrderWindow_Range".Translate());
            intRect.x    += 255;
            intRect.width = rect.width - 275;
            Widgets.TextFieldNumeric(intRect, ref delay, ref delayBuff, 1);

            Rect fullLabel = new Rect(rect.x + 10, rect.y + 60, rect.width - 10, 300);

            Widgets.Label(fullLabel, "RogerEdmonson_OrderWindow_Full".Translate($"{group}_desc".Translate(), totalValue, chance, prepayment));
            TooltipHandler.TipRegion(fullLabel, "RogerEdmonson_OrderWindow_Full2".Translate($"{group}_group".Translate(), baseValue, trader.GetPriceMultiplier(group), delay, trader.ArriveTime, totalValue, prepayment, chance, baseChance, trader.GetChanceMultiplier(group)));

            Text.Anchor = TextAnchor.MiddleCenter;
            if (GUIUtils.DrawCustomButton(new Rect(rect.x + 10, rect.height - 40, rect.width - 20, 30), "RogerEdmonson_OrderWindow_CreateOrder".Translate(), trader.Order == null ? Color.white : Color.gray))
            {
                if (trader.Order != null)
                {
                    Messages.Message("RogerEdmonson_OrderWindow_Only1Order".Translate(), MessageTypeDefOf.NeutralEvent, false);
                }
                else
                {
                    if (TakePrePayment(prepayment))
                    {
                        MakeBodyPartOrder(group, chance, totalValue, delay);
                    }
                }
            }
            if (trader.Order != null)
            {
                if (GUIUtils.DrawCustomButton(new Rect(rect.x + 10, rect.height, rect.width - 20, 30), "DarkNetButtons_CancelOrder".Translate(), Color.white))
                {
                    trader.DeclineOrder();
                }
            }
            Text.Anchor = TextAnchor.UpperLeft;
        }
예제 #2
0
            public void DrawOrderCard(Rect rect, Order item)
            {
                trader.bgCardColor.a = 150;
                Widgets.DrawBoxSolid(rect, trader.bgCardColor);

                GUI.color = GUIUtils.CommBorderColor;
                Widgets.DrawBox(rect);
                GUI.color = Color.white;

                Widgets.ThingIcon(new Rect(rect.x + 8, rect.y + 18, 64, 64), item.OrderedItem);

                Text.Anchor = TextAnchor.MiddleCenter;
                Widgets.Label(new Rect(rect.x + 80, rect.y + 8, rect.width - 88, 25), item.OrderedItem.Label);
                Text.Anchor = TextAnchor.UpperLeft;

                GUIUtils.DrawLineHorizontal(rect.x + 80, rect.y + 34, rect.width - 88, Color.gray);
                float y = rect.y + 36;

                Widgets.Label(new Rect(rect.x + 80, y, rect.width - 88, 25), $"DarkNetModificator_Price".Translate(item.Price));

                Text.Anchor = TextAnchor.MiddleCenter;
                if (GUIUtils.DrawCustomButton(new Rect(rect.x, rect.y + 105, rect.width, 25), "DarkNetButtons_Buy".Translate(), Color.white))
                {
                    if (trader.AcceptOrder())
                    {
                        Close();
                        Text.Anchor = TextAnchor.UpperLeft;
                        return;
                    }
                }
                if (GUIUtils.DrawCustomButton(new Rect(rect.x, rect.y + 132, rect.width, 25), "DarkNetButtons_CancelOrder".Translate(), Color.white))
                {
                    trader.DeclineOrder();
                    Close();
                    Text.Anchor = TextAnchor.UpperLeft;
                    return;
                }
                Text.Anchor = TextAnchor.UpperLeft;

                if (Mouse.IsOver(rect))
                {
                    StringBuilder builder = new StringBuilder();
                    builder.Append("TraderWorker_RogerEdmonson_FullDesc".Translate(item.OrderedItem.Label, item.OrderedItem.DescriptionFlavor, item.Price));

                    TooltipHandler.TipRegion(rect, builder.ToString());
                }
            }