static string GetOverlayForItem(SupportPowerManager.SupportPowerInstance item)
 {
     if (item.Disabled)
     {
         return("ON HOLD");
     }
     if (item.Ready)
     {
         return("READY");
     }
     return(WidgetUtils.FormatTime(item.RemainingTime));
 }
Exemplo n.º 2
0
        public SupportPowerTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, SupportPowersWidget palette)
        {
            widget.IsVisible = () => palette.TooltipPower != null;
            var nameLabel  = widget.Get <LabelWidget>("NAME");
            var timeLabel  = widget.Get <LabelWidget>("TIME");
            var descLabel  = widget.Get <LabelWidget>("DESC");
            var nameFont   = Game.Renderer.Fonts[nameLabel.Font];
            var timeFont   = Game.Renderer.Fonts[timeLabel.Font];
            var descFont   = Game.Renderer.Fonts[descLabel.Font];
            var name       = "";
            var time       = "";
            var desc       = "";
            var baseHeight = widget.Bounds.Height;
            var timeOffset = timeLabel.Bounds.X;

            SupportPowerManager.SupportPowerInstance lastPower = null;
            tooltipContainer.BeforeRender = () =>
            {
                var sp = palette.TooltipPower;
                if (sp == null)
                {
                    return;
                }

                if (sp.Info == null)
                {
                    return;                             // no instances actually exist (race with destroy)
                }
                time = "{0} / {1}".F(WidgetUtils.FormatTime(sp.RemainingTime),
                                     WidgetUtils.FormatTime(sp.Info.ChargeTime * 25));

                if (sp == lastPower)
                {
                    return;
                }

                name = sp.Info.Description;
                desc = sp.Info.LongDesc.Replace("\\n", "\n");
                var timeWidth = timeFont.Measure(time).X;
                var topWidth  = nameFont.Measure(name).X + timeWidth + timeOffset;
                var descSize  = descFont.Measure(desc);
                widget.Bounds.Width  = 2 * nameLabel.Bounds.X + Math.Max(topWidth, descSize.X);
                widget.Bounds.Height = baseHeight + descSize.Y;
                timeLabel.Bounds.X   = widget.Bounds.Width - nameLabel.Bounds.X - timeWidth;
                lastPower            = sp;
            };

            nameLabel.GetText = () => name;
            timeLabel.GetText = () => time;
            descLabel.GetText = () => desc;
        }
Exemplo n.º 3
0
        public override bool HandleMouseInput(MouseInput mi)
        {
            if (mi.Event == MouseInputEvent.Move)
            {
                var icon = Icons.Where(i => i.Key.Contains(mi.Location))
                    .Select(i => i.Value).FirstOrDefault();
                TooltipPower = (icon != null) ? icon.Power : null;
                return false;
            }

            if (mi.Event != MouseInputEvent.Down)
                return false;

            var clicked = Icons.Where(i => i.Key.Contains(mi.Location))
                .Select(i => i.Value).FirstOrDefault();

            if (clicked != null)
                spm.Target(clicked.Power.Info.OrderName);

            return true;
        }