Пример #1
0
        public SecondaryTaskbar(Screen screen)
        {
            this.CurrentScreen = screen;

            // monitor window & process events
            ProcessMonitor.Instance.OnFocus           += new WindowActionDelegate(processLogic_OnFocus);
            ProcessMonitor.Instance.OnWindowMoved     += new WindowActionDelegate(processLogic_OnWindowMoved);
            ProcessMonitor.Instance.OnWindowDestroyed += new WindowActionDelegate(processLogic_OnWindowDestroyed);
            ProcessMonitor.Instance.OnLocationChanged += new WindowActionDelegate(processLogic_OnLocationChanged);
            ProcessMonitor.Instance.OnStartMenu       += new StartMenuActionDelegate(processLogic_OnStartMenu);
            ProcessMonitor.Instance.OnWindowHidden    += new WindowActionDelegate(processLogic_OnWindowHidden);

            WindowManager.Instance.OnProcessMovedToPrimary   += new WindowActionDelegate(windowManager_OnProcessMovedToPrimary);
            WindowManager.Instance.OnProcessMovedToSecondary += new ProcessMovedDelegate(windowManager_OnProcessMovedToSecondary);

            Microsoft.Win32.SystemEvents.DisplaySettingsChanged += new EventHandler(SystemEvents_DisplaySettingsChanged);

            tooltipManager = new ToolTipManager(this);

            InitializeComponent();

            pnlNotificationArea.Initialize();
            pnlNotificationArea.SizeChanged += new EventHandler(pnlNotificationArea_SizeChanged);

            tsmiLockTaskbar.Checked = TaskbarPropertiesManager.Instance.Properties.Locked;
            pnlResize.BringToFront();

            this.AllowDrop = true;
        }
Пример #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UIScreen"/> class.
        /// </summary>
        /// <param name="name">The name of the screen.</param>
        /// <param name="renderer">
        /// The renderer that defines the styles and visual appearance for controls in this screen.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="name"/> or <paramref name="renderer"/> is <see langword="null"/>.
        /// </exception>
        /// <exception cref="ArgumentException">
        /// <paramref name="name"/> is an empty string.
        /// </exception>
        public UIScreen(string name, IUIRenderer renderer)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (name.Length == 0)
            {
                throw new ArgumentException("String is empty.", "name");
            }
            if (renderer == null)
            {
                throw new ArgumentNullException("renderer");
            }

            Name     = name;
            Renderer = renderer;

            Style = "UIScreen";

            Children = new NotifyingCollection <UIControl>(false, false);
            Children.CollectionChanged += OnChildrenChanged;

            _focusManager  = new FocusManager(this);
            ToolTipManager = new ToolTipManager(this);

#if !SILVERLIGHT
            // Call OnVisibleChanged when IsVisible changes.
            var isVisible = Properties.Get <bool>(IsVisiblePropertyId);
            isVisible.Changed += (s, e) => OnVisibleChanged(EventArgs.Empty);
#endif

            InputEnabled = true;
        }
Пример #3
0
    public string ToolTip()
    {
        StringBuilder sb = ToolTipManager.TipBody;

        if (ShowExplicitDescription)
        {
            sb.AppendFormat("<color={0}>", DarkestDungeonManager.Data.HexColors["equipment_tooltip_body"]);
            string buffTooltip = "";
            for (int i = 0; i < Buffs.Count; i++)
            {
                string newBuffTip = Buffs[i].ToolTip;

                if (newBuffTip.Length > 0)
                {
                    if (buffTooltip.Length > 0)
                    {
                        buffTooltip += ToolTipManager.GetConcat("\n", newBuffTip);
                    }
                    else
                    {
                        buffTooltip += newBuffTip;
                    }
                }
            }
            sb.Append(buffTooltip);
            sb.Append("</color>");
        }
        else
        {
            sb.AppendFormat("<color={0}>", DarkestDungeonManager.Data.HexColors["equipment_tooltip_body"]);
            sb.Append(LocalizationManager.GetString(ToolTipManager.GetConcat("str_quirk_description_", Id)));
            sb.Append("</color>");
        }
        return(sb.ToString());
    }
Пример #4
0
    /// <summary>
    ///   Registers tooltip for the existing Controls
    /// </summary>
    public void RegisterTooltips()
    {
        foreach (Control organelleSelection in organelleSelectionElements)
        {
            ToolTipManager.RegisterToolTipForControl(
                organelleSelection, tooltipCallbacks, ToolTipManager.Instance.GetToolTip(
                    organelleSelection.Name, "organelleSelection"));
        }

        foreach (Control membraneSelection in membraneSelectionElements)
        {
            ToolTipManager.RegisterToolTipForControl(
                membraneSelection, tooltipCallbacks, ToolTipManager.Instance.GetToolTip(
                    membraneSelection.Name, "membraneSelection"));
        }

        ToolTipManager.RegisterToolTipForControl(
            rigiditySlider, tooltipCallbacks, ToolTipManager.Instance.GetToolTip("rigiditySlider", "editor"));
        ToolTipManager.RegisterToolTipForControl(
            helpButton, tooltipCallbacks, ToolTipManager.Instance.GetToolTip("helpButton"));
        ToolTipManager.RegisterToolTipForControl(
            symmetryButton, tooltipCallbacks, ToolTipManager.Instance.GetToolTip("symmetryButton", "editor"));
        ToolTipManager.RegisterToolTipForControl(
            undoButton, tooltipCallbacks, ToolTipManager.Instance.GetToolTip("undoButton", "editor"));
        ToolTipManager.RegisterToolTipForControl(
            redoButton, tooltipCallbacks, ToolTipManager.Instance.GetToolTip("redoButton", "editor"));
        ToolTipManager.RegisterToolTipForControl(
            newCellButton, tooltipCallbacks, ToolTipManager.Instance.GetToolTip("newCellButton", "editor"));
        ToolTipManager.RegisterToolTipForControl(
            timeIndicator, tooltipCallbacks, ToolTipManager.Instance.GetToolTip("timeIndicator", "editor"));
        ToolTipManager.RegisterToolTipForControl(
            finishButton, tooltipCallbacks, ToolTipManager.Instance.GetToolTip("finishButton", "editor"));
        ToolTipManager.RegisterToolTipForControl(
            menuButton, tooltipCallbacks, ToolTipManager.Instance.GetToolTip("menuButton"));
    }
Пример #5
0
    public void CommandPosition(Vector2 goalPosition, Vector2 goalDir)
    {
        if (tankVolume <= 0)
        {
            ToolTipManager.ShowText("Need to refill first!");
            return;
        }

        SetGoalPosition(goalPosition, goalDir);
    }
        }   // end of GetHelpDescription()

        /// <summary>
        /// Activates the AddItem help card.
        /// </summary>
        /// <param name="parent">Parent pie selector.</param>
        /// <param name="typeName">This is the string that identifies the type of the object we're getting help for.  This is used to get the correct help data from the Help class.</param>
        /// <param name="objectName">This the displayed name of the object/actor.  This comes from the Strings class and may be localized.</param>
        public void Activate(PieSelector parent, string typeName, string objectName)
        {
            ToolTipManager.Clear();

            if (typeName == null || objectName == null)
            {
                return;
            }

            this.parent = parent;

            if (state != States.Active)
            {
                // Ensure we have valid help before activating.
                shared.actorHelp = Help.GetActorHelp(typeName);

                if (shared.actorHelp == null || shared.actorHelp.upid == null)
                {
                    return;
                }

                // Do stack handling here.  If we do it in the update object we have no
                // clue which order things get pushed and popped and madness ensues.
                CommandStack.Push(commandMap);

                state = States.Active;

                shared.curActorName = objectName;
                if (shared.actorHelp.description != null)
                {
                    shared.descBlob.RawText = shared.actorHelp.description.Trim();
                }

                shared.SetUpGrid();

                if (shared.examplesGrid != null)
                {
                    shared.examplesGrid.Active = true;
                }

                // Always start the description at the beginning.
                shared.topLine    = 0;
                shared.descOffset = 0;

                // Get the current scene thumbnail.
                shared.thumbnail = InGame.inGame.SmallThumbNail;

                // Tell InGame we're using the thumbnail so no need to do full render.
                InGame.inGame.RenderWorldAsThumbnail = true;

                HelpOverlay.Push(@"HelpCardAddItem");

                timerInstrument = Instrumentation.StartTimer(Instrumentation.TimerId.AddItemHelpCards);
            }
        }   // end of Activate
        /// <summary>
        /// Initialize an instance of the TooltipController class.
        /// </summary>
        /// <param name="manager">Reference to manager of all tooltip functionality.</param>
        /// <param name="targetElement">Target element that controller is for.</param>
        /// <param name="targetController">Target controller that we are snooping.</param>
        public ToolTipController(ToolTipManager manager,
                                 ViewBase targetElement,
                                 IMouseController targetController)
        {
            Debug.Assert(manager != null);
            Debug.Assert(targetElement != null);

            // Remember incoming references
            _manager          = manager;
            _targetElement    = targetElement;
            _targetController = targetController;
        }
	void Awake()
	{
		if (_instance == null)
		{
			_instance = this;
			//DontDestroyOnLoad(this);
		}
		else
		{
			if (this != _instance)
				Destroy(this.gameObject);
		}
	}
Пример #9
0
 public static void AddTip(this GameObject gameObj, string tip)
 {
     EventUtil.AddHover(gameObj, (o, b) => {
         if (b)
         {
             ToolTipManager.Show(tip);
         }
         else
         {
             ToolTipManager.Hide();
         }
     });
 }
Пример #10
0
 protected override void OnHover(bool b)
 {
     base.OnHover(b);
     if (b && ToolTip != "")
     {
         ToolTipManager.Show(ToolTip, tipDely, tipWidth);
     }
     else if (b == false)
     {
         ToolTipManager.Hide();
     }
     if (b == true && _isEnable)
     {
         FuncUtil.SetCursor("CURSOR_CLICK_OVER");
         //currentTouch为null是为了防止在按钮上放开鼠标时触发OnHover
         //当鼠标离开时currentTouch为null,鼠标进入时currentTouch也为null,鼠标按下时才不为null
         if (UICamera.currentTouch == null)
         {
             if (_rollOverFun != null)
             {
                 _rollOverFun(gameObject);
             }
         }
     }
     else if (_isEnable == false)
     {
         FuncUtil.SetCursor("CURSOR_NORMAL");
     }
     else
     {
         if (_rollOutFun != null)
         {
             _rollOutFun(gameObject);
         }
         //if (/*!UICamera.IsPressIng && */FuncUtil.IsUICursor()) {
         //    FuncUtil.SetCursor("CURSOR_NORMAL");
         //}
     }
     if (relateChild)
     {
         GetChildBtns();
         foreach (Component child in childBtn)
         {
             if (child != this)
             {
                 (child as CButton).isEnabled = true;
                 (child as CButton).OnHover(b);
             }
         }
     }
 }
Пример #11
0
            }   // end of ToolMenuUpdateObj c'tor

            /// <summary>
            /// ToolMenuUpdateObj Update()
            /// </summary>
            /// <param name="camera"></param>
            public override void Update()
            {
                base.Update();

                // No need to check for input focus or anything.  If
                // we're active then the ToolMenu object has focus.

                shared.ToolMenu.Update();

                // If the ToolMenu is no longer active we're done.
                if (!shared.ToolMenu.Active)
                {
                    return;
                }

                // Do the common bits of the Update().  If our child is active we
                // can temporarily push/pop our commandMap to grab input focus.
                if (shared.ToolMenu.Active)
                {
                    CommandStack.Push(commandMap);
                }
                UpdateCamera(false);
                if (shared.ToolMenu.Active)
                {
                    CommandStack.Pop(commandMap);
                }
                UpdateWorld();
                // TODO (****) Should this only be called for tools that use the edit brush?
                // TODO (****) How do we turn off the edit brush rendering if we don't need it?
                UpdateEditBrush();

                GamePadInput pad = GamePadInput.GetGamePad0();

                // Run!
                if (pad.Back.WasPressed)
                {
                    // TODO (****) Transition to RunSim.
                    // Or is this already done in the base class???
                }

                // MiniHub!
                if (pad.Start.WasPressed)
                {
                    // TODO (****) Transition to MinHub.
                    // Or is this already done in the base class???
                }

                ToolTipManager.Update();
                ThoughtBalloonManager.Update(shared.camera);
            }   // end of ToolMenuUpdateObj Update()
Пример #12
0
        private void InitToolTip()
        {
            ToolTipManager.Init(this);

            ToolTipManager.SetToolTip(extender, "색상 기록을 확장합니다.");
            ToolTipManager.SetToolTip(lbl_HTML, "색상을 HEX로 표현한 값 입니다.");
            ToolTipManager.SetToolTip(lbl_RGB, "색상을 RGB로 표현한 값 입니다.");
            ToolTipManager.SetToolTip(lbl_HSL, "색상을 HSL로 표현한 값 입니다.");
            ToolTipManager.SetToolTip(lbl_HSV, "색상을 HSB로 표현한 값 입니다.");
            ToolTipManager.SetToolTip(chkGrid, "캡쳐영역에 격자를 표시합니다.");
            ToolTipManager.SetToolTip(chkSemi, "키보드 방향키로 마우스를 미세조정합니다.");
            ToolTipManager.SetToolTip(ldcPlate, "클릭하여 생삭의 밝기를 조절할 수 있습니다.");
            ToolTipManager.SetToolTip(zoomSlider, "스크롤하여 확대를할 수 있습니다.");
        }
Пример #13
0
        /// <summary>
        /// Initialize a new instance of the KryptonBreadCrumb class.
        /// </summary>
        public KryptonBreadCrumb()
        {
            // The bread crumb cannot take the focus
            SetStyle(ControlStyles.Selectable, false);

            // Set default values
            _selectedItem                  = null;
            _dropDownNavigaton             = true;
            _buttonStyle                   = ButtonStyle.BreadCrumb;
            RootItem                       = new KryptonBreadCrumbItem("Root");
            RootItem.PropertyChanged      += OnCrumbItemChanged;
            AllowButtonSpecToolTips        = false;
            AllowButtonSpecToolTipPriority = false;

            // Create storage objects
            ButtonSpecs = new BreadCrumbButtonSpecCollection(this);

            // Create the palette storage
            StateCommon   = new PaletteBreadCrumbRedirect(Redirector, NeedPaintDelegate);
            StateDisabled = new PaletteBreadCrumbDoubleState(StateCommon, NeedPaintDelegate);
            StateNormal   = new PaletteBreadCrumbDoubleState(StateCommon, NeedPaintDelegate);
            StateTracking = new PaletteBreadCrumbState(StateCommon, NeedPaintDelegate);
            StatePressed  = new PaletteBreadCrumbState(StateCommon, NeedPaintDelegate);

            // Our view contains background and border with crumbs inside
            _layoutCrumbs = new ViewLayoutCrumbs(this, NeedPaintDelegate);
            _drawDocker   = new ViewDrawDocker(StateNormal.Back, StateNormal.Border, null)
            {
                { _layoutCrumbs, ViewDockStyle.Fill }
            };

            // Create the view manager instance
            ViewManager = new ViewManager(this, _drawDocker);

            // Create button specification collection manager
            _buttonManager = new ButtonSpecManagerDraw(this, Redirector, ButtonSpecs, null,
                                                       new[] { _drawDocker },
                                                       new IPaletteMetric[] { StateCommon },
                                                       new[] { PaletteMetricInt.HeaderButtonEdgeInsetPrimary },
                                                       new[] { PaletteMetricPadding.None },
                                                       CreateToolStripRenderer,
                                                       NeedPaintDelegate);

            // Create the manager for handling tooltips
            ToolTipManager                = new ToolTipManager();
            ToolTipManager.ShowToolTip   += OnShowToolTip;
            ToolTipManager.CancelToolTip += OnCancelToolTip;
            _buttonManager.ToolTipManager = ToolTipManager;
        }
Пример #14
0
    public void UpdateEnergyBalanceToolTips(EnergyBalanceInfo energyBalance)
    {
        // Clear previous callbacks
        processesTooltipCallbacks.Clear();

        foreach (var subBar in atpProductionBar.SubBars)
        {
            var tooltip = ToolTipManager.Instance.GetToolTip(subBar.Name, "processesProduction");

            ToolTipManager.RegisterToolTipForControl(subBar, processesTooltipCallbacks, tooltip);

            tooltip.Description =
                $"{SimulationParameters.Instance.GetOrganelleType(subBar.Name).Name}: " +
                $"+{energyBalance.Production[subBar.Name]} ATP";
        }

        foreach (var subBar in atpConsumptionBar.SubBars)
        {
            var tooltip = ToolTipManager.Instance.GetToolTip(subBar.Name, "processesConsumption");

            ToolTipManager.RegisterToolTipForControl(subBar, processesTooltipCallbacks, tooltip);

            string displayName;

            switch (subBar.Name)
            {
            case "osmoregulation":
            {
                displayName = "Osmoregulation";
                break;
            }

            case "baseMovement":
            {
                displayName = "Base Movement";
                break;
            }

            default:
            {
                displayName = SimulationParameters.Instance.GetOrganelleType(subBar.Name).Name;
                break;
            }
            }

            tooltip.Description = $"{displayName}: -{energyBalance.Consumption[subBar.Name]} ATP";
        }
    }
Пример #15
0
        /// <summary>
        /// Initialize a new instance of the KryptonHeader class.
        /// </summary>
        public KryptonHeader()
        {
            // The header cannot take the focus
            SetStyle(ControlStyles.Selectable, false);

            // Set default values
            _style                         = HeaderStyle.Primary;
            _orientation                   = VisualOrientation.Top;
            AllowButtonSpecToolTips        = false;
            AllowButtonSpecToolTipPriority = false;

            // Create storage objects
            Values              = new HeaderValues(NeedPaintDelegate);
            Values.TextChanged += OnHeaderTextChanged;
            ButtonSpecs         = new HeaderButtonSpecCollection(this);

            // Create the palette storage
            StateCommon   = new PaletteHeaderRedirect(Redirector, PaletteBackStyle.HeaderPrimary, PaletteBorderStyle.HeaderPrimary, PaletteContentStyle.HeaderPrimary, NeedPaintDelegate);
            StateDisabled = new PaletteTripleMetric(StateCommon, NeedPaintDelegate);
            StateNormal   = new PaletteTripleMetric(StateCommon, NeedPaintDelegate);

            // Our view contains background and border with content inside
            _drawDocker  = new ViewDrawDocker(StateNormal.Back, StateNormal.Border, null);
            _drawContent = new ViewDrawContent(StateNormal.Content, Values, Orientation);
            _drawDocker.Add(_drawContent, ViewDockStyle.Fill);

            // Create the view manager instance
            ViewManager = new ViewManager(this, _drawDocker);

            // Create button specification collection manager
            _buttonManager = new ButtonSpecManagerDraw(this, Redirector, ButtonSpecs, null,
                                                       new[] { _drawDocker },
                                                       new IPaletteMetric[] { StateCommon },
                                                       new[] { PaletteMetricInt.HeaderButtonEdgeInsetPrimary },
                                                       new[] { PaletteMetricPadding.HeaderButtonPaddingPrimary },
                                                       CreateToolStripRenderer,
                                                       NeedPaintDelegate);

            // Create the manager for handling tooltips
            ToolTipManager                = new ToolTipManager();
            ToolTipManager.ShowToolTip   += OnShowToolTip;
            ToolTipManager.CancelToolTip += OnCancelToolTip;
            _buttonManager.ToolTipManager = ToolTipManager;

            // We want to be auto sized by default, but not the property default!
            AutoSize     = true;
            AutoSizeMode = AutoSizeMode.GrowAndShrink;
        }
Пример #16
0
    void Start()
    {
        ToolTipMgr = GameObject.Find("_ToolTipManager");
        tooltip    = ToolTipMgr.GetComponent <ToolTipManager>();

        //Enables the ammount text if the item is stackable
        if (_Item.Stackable)
        {
            this.transform.GetChild(0).gameObject.SetActive(true);
            this.transform.GetChild(0).GetComponent <Text>().text = Ammout.ToString();
        }

        //Sets sprite and gameobject name to fit to item
        this.GetComponent <Image>().sprite = _Item.Sprite;
        this.name = _Item.Title;
    }
Пример #17
0
        }   // end of ShowHelp()

        public void Render()
        {
            // Render menu using local camera.
            Fx.ShaderGlobals.SetCamera(camera);

            grid.Render(camera);

            helpSquare.Render(camera);

            // Moved to MainMenu so they don't end up on the RT.
            //InGame.inGame.shared.smallTextDisplay.Render();
            //InGame.inGame.shared.scrollableTextDisplay.Render();

            ToolTipManager.Render(camera);

            changeLanguageMessage.Render();
        }   // end of Render()
Пример #18
0
    public void SpawnObject(bool isPlane)
    {
        UnitManager um = FindObjectOfType <UnitManager>();

        GameObject objTospawn = null;

        if (isPlane)
        {
            objTospawn = planePrefab;
            DragManager.drags[1].OnDragEnded += SpawnPlane;
            um.selectedUnits = new Unit[0];

            //ToolTip
            ToolTipManager.ShowText("Right-Click drag to select Plane path");
            return;
        }
        else
        {
            objTospawn = truckPrefab;
            truckButton.interactable     = false;
            truckButton.image.fillAmount = 0;
        }

        AbortSpawnPlane(null);


        GameObject spawned     = Instantiate(objTospawn, new Vector3(50, 50, 0), Quaternion.identity);
        Unit       spawnedUnit = spawned.GetComponent <Unit>();

        spawnedUnit.SetGoalPosition(new Vector2(50, 50), Vector2.up);


        Unit[] currentSelection = um.selectedUnits;
        Unit[] newSelection     = new Unit[currentSelection.Length + 1];
        for (int i = 0; i < currentSelection.Length; i++)
        {
            newSelection[i] = currentSelection[i];
        }
        newSelection[newSelection.Length - 1] = spawnedUnit;
        um.selectedUnits = newSelection;
    }
Пример #19
0
    public void SortByName()
    {
        DarkestSoundManager.PlayOneShot("event:/ui/town/sort_by");

        RealmInventory.Trinkets.Sort((x, y) =>
                                     LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", x.Id)).
                                     CompareTo(LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", y.Id))));

        int trinketCount   = RealmInventory.Trinkets.Count;
        int trinketsLoaded = Mathf.Min(trinketCount, InventorySlots.Count);

        for (int i = 0; i < trinketsLoaded; i++)
        {
            InventorySlots[i].CreateItem(RealmInventory.Trinkets[i]);
        }

        for (int i = trinketsLoaded; i < InventorySlots.Count; i++)
        {
            InventorySlots[i].DeleteItem();
        }
    }
Пример #20
0
        public TaskbarButton(ToolTipManager tooltipManager)
            : base()
        {
            this.EnableDragging = true;
            this.AddedToTaskbar = DateTime.Now;

            _tooltipManager = tooltipManager;
            InitializeComponent();

            _overlayIconPath = null;
            _overlayIcon     = null;
            _progress        = new TaskbarProgress();

            this.AllowDrop = true;

            _format               = (StringFormat.GenericDefault.Clone() as StringFormat);
            _format.Trimming      = StringTrimming.EllipsisCharacter;
            _format.LineAlignment = StringAlignment.Center;
            _format.FormatFlags   = _format.FormatFlags | StringFormatFlags.NoWrap;

            UpdateFont();
        }
Пример #21
0
    void Awake()
    {
        // First we check if there are any other instances conflicting
        if (Instance != null && Instance != this)
        {
            // If that is the case, we destroy other instances
            Destroy(gameObject);
            return;
        }

        DontDestroyOnLoad(this);

        // Here we save our singleton instance
        Instance = this;

        ToolTipsOrder = new Queue <ToolTip>();

        b = new bool[(int)enumToolTipsList._LastOne];
        for (enumToolTipsList tt = enumToolTipsList._FirstOne; tt < enumToolTipsList._LastOne; tt++)
        {
            b[(int)tt] = PlayerPrefs.GetInt(tt.ToString()) > 0;
        }
    }
Пример #22
0
    /// <summary>
    ///   Setup the main menu.
    /// </summary>
    private void RunMenuSetup()
    {
        Background      = GetNode <TextureRect>("Background");
        guiAnimations   = GetNode <AnimationPlayer>("GUIAnimations");
        thriveLogo      = GetNode <TextureRect>(ThriveLogoPath);
        newGameButton   = GetNode <Button>(NewGameButtonPath);
        freebuildButton = GetNode <Button>(FreebuildButtonPath);

        MenuArray?.Clear();

        // Get all of menu items
        MenuArray = GetTree().GetNodesInGroup("MenuItem");

        if (MenuArray == null)
        {
            GD.PrintErr("Failed to find all the menu items!");
            return;
        }

        RandomizeBackground();

        options = GetNode <OptionsMenu>("OptionsMenu");
        saves   = GetNode <SaveManagerGUI>("SaveManagerGUI");

        // Load settings
        if (Settings.Instance == null)
        {
            GD.PrintErr("Failed to initialize settings.");
        }

        // Set initial menu
        SwitchMenu();

        // Easter egg message
        ToolTipManager.RegisterToolTipForControl(
            thriveLogo, toolTipCallbacks, ToolTipManager.Instance.GetToolTip("thriveLogoEasterEgg", "mainMenu"));
    }
        /// <summary>
        /// Initialize a new instance of the VisualControl class.
        /// </summary>
        protected VisualControlBase()
        {
            #region Default ControlStyle Values
            // Default style values for Control are:-
            //    True  - AllPaintingInWmPaint
            //    False - CacheText
            //    False - ContainerControl
            //    False - EnableNotifyMessage
            //    False - FixedHeight
            //    False - FixedWidth
            //    False - Opaque
            //    False - OptimizedDoubleBuffer
            //    False - ResizeRedraw
            //    True  - Selectable
            //    True  - StandardClick
            //    True  - StandardDoubleClick
            //    False - SupportsTransparentBackColor
            //    False - UserMouse
            //    True  - UserPaint
            //    True  - UseTextForAccessibility
            #endregion

            // We use double buffering to reduce drawing flicker
            SetStyle(ControlStyles.OptimizedDoubleBuffer |
                     ControlStyles.AllPaintingInWmPaint |
                     ControlStyles.UserPaint, true);

            // We need to repaint entire control whenever resized
            SetStyle(ControlStyles.ResizeRedraw, true);

            // Yes, we want to be drawn double buffered by default
            base.DoubleBuffered = true;

            // Setup the invokes
            _refreshCall = OnPerformRefresh;
            _layoutCall  = OnPerformLayout;

            // Setup the need paint delegate
            NeedPaintDelegate        = OnNeedPaint;
            NeedPaintPaletteDelegate = OnPaletteNeedPaint;

            // Must layout before first draw attempt
            _layoutDirty        = true;
            _evalTransparent    = true;
            DirtyPaletteCounter = 1;

            // Set the palette and renderer to the defaults as specified by the manager
            _localPalette = null;
            SetPalette(KryptonManager.CurrentGlobalPalette);
            _paletteMode = PaletteMode.Global;

            // Create constant target for resolving palette delegates
            Redirector = CreateRedirector();

            AttachGlobalEvents();

            // Do the Tooltip Magic
            ToolTipValues = new ToolTipValues(NeedPaintDelegate);
            // Create the manager for handling tooltips
            // ReSharper disable once UseObjectOrCollectionInitializer
            _toolTipManager                = new ToolTipManager();
            _toolTipManager.ShowToolTip   += OnShowToolTip;
            _toolTipManager.CancelToolTip += OnCancelToolTip;
        }
Пример #24
0
 private ToolTipManager()
 {
     instance = this;
 }
Пример #25
0
    private string GenerateDescription()
    {
        StringBuilder sb = ToolTipManager.TipBody;

        switch (ActivityType)
        {
        case ActivityType.LevelUp:
            #region Lvl up
            if (Variables.Count < 1)
            {
                return("Not enough record variables.");
            }

            sb.AppendFormat(LocalizationManager.GetString("str_is_now_a"),
                            DarkestDungeonManager.Data.HexColors["notable"], Actor,
                            LocalizationManager.GetString("hero_class_name_" + HeroClass),
                            LocalizationManager.GetString("str_resolve_" + Variables[0]), Variables[0]);
            #endregion
            break;

        case ActivityType.StillMissing:
            #region Still missing
            if (Variables.Count < 1)
            {
                return("Not enough record variables.");
            }

            sb.AppendFormat(LocalizationManager.GetString("str_is_now_a"),
                            DarkestDungeonManager.Data.HexColors["notable"], Actor,
                            LocalizationManager.GetString("town_name_" + Variables[0]));
            #endregion
            break;

        case ActivityType.RemoveQuirk:
            #region Remove quirk
            if (Variables.Count < 1)
            {
                return("Not enough record variables.");
            }

            sb.AppendFormat(LocalizationManager.GetString("str_treatment_remove_negative_quirk"),
                            DarkestDungeonManager.Data.HexColors["notable"], Actor,
                            LocalizationManager.GetString("town_name_sanitarium"),
                            LocalizationManager.GetString("str_quirk_name_" + Variables[0]));
            #endregion
            break;

        case ActivityType.RemoveDisease:
            #region Remove disease
            if (Variables.Count < 1)
            {
                return("Not enough record variables.");
            }

            sb.AppendFormat(LocalizationManager.GetString("str_disease_treatment_remove_negative_quirk"),
                            DarkestDungeonManager.Data.HexColors["notable"], Actor,
                            LocalizationManager.GetString("town_name_sanitarium"),
                            LocalizationManager.GetString("str_quirk_name_" + Variables[0]));
            #endregion
            break;

        case ActivityType.RemoveAllDiseases:
            #region Remove all diseases
            if (Variables.Count < 1)
            {
                return("Not enough record variables.");
            }

            string diseasesString = "";
            for (int i = 0; i < Variables.Count; i++)
            {
                if (i == 0)
                {
                    diseasesString += LocalizationManager.GetString("str_quirk_name_" + Variables[i]);
                }
                else
                {
                    diseasesString += ", " + LocalizationManager.GetString("str_quirk_name_" + Variables[i]);
                }
            }

            sb.AppendFormat(LocalizationManager.GetString("str_disease_treatment_removed_diseases_crit_story"),
                            DarkestDungeonManager.Data.HexColors["notable"], Actor,
                            LocalizationManager.GetString("town_name_sanitarium"),
                            diseasesString);
            #endregion
            break;

        case ActivityType.LockQuirk:
            #region Lock quirk
            if (Variables.Count < 1)
            {
                return("Not enough record variables.");
            }

            sb.AppendFormat(LocalizationManager.GetString("str_lock_quirk_story"),
                            DarkestDungeonManager.Data.HexColors["notable"], Actor,
                            LocalizationManager.GetString("town_name_sanitarium"),
                            LocalizationManager.GetString("str_quirk_name_" + Variables[0]));
            #endregion
            break;

        case ActivityType.LockRemoveQuirk:
            #region Lock and remove quirk
            if (Variables.Count < 2)
            {
                return("Not enough record variables.");
            }

            sb.AppendFormat(LocalizationManager.GetString("str_treatment_remove_negative_quirk"),
                            DarkestDungeonManager.Data.HexColors["notable"], Actor,
                            LocalizationManager.GetString("town_name_sanitarium"),
                            LocalizationManager.GetString("str_quirk_name_" + Variables[0]));

            sb.AppendFormat("\n" + LocalizationManager.GetString("str_lock_quirk_story"),
                            DarkestDungeonManager.Data.HexColors["notable"], Actor,
                            LocalizationManager.GetString("town_name_sanitarium"),
                            LocalizationManager.GetString("str_quirk_name_" + Variables[1]));
            #endregion
            break;

        case ActivityType.BarStressHeal:
            if (ActivityEffectType != ActivityEffectType.Found)
            {
                #region Bar stress heal
                if (Variables.Count < 1)
                {
                    return("Not enough record variables.");
                }

                sb.AppendFormat(LocalizationManager.GetString("str_bar_stress_relief_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"), Variables[0]);
                #endregion
            }
            #region Bar side effect
            switch (ActivityEffectType)
            {
            case ActivityEffectType.Missing:
                #region Missing
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_go_missing_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"));
                break;

                #endregion
            case ActivityEffectType.Found:
                #region Found
                sb.AppendFormat(LocalizationManager.GetString("str_bar_go_missing_found_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"));
                break;

                #endregion
            case ActivityEffectType.Lock:
                #region Lock
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_activity_lock_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"));
                break;

                #endregion
            case ActivityEffectType.AddQuirk:
                #region Add Quirk
                switch (EffectInfo)
                {
                case "alcoholism":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_add_quirk_alcoholism_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "resolution":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_add_quirk_resolution_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                default:
                    sb.Append("Surprising quirk: " + EffectInfo);
                    break;
                }
                break;

                #endregion
            case ActivityEffectType.AddBuff:
                #region Add Buff
                switch (EffectInfo)
                {
                case "townHungoverAccDebuff":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_add_buff_townHungoverAccDebuff_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString("str_bar_add_buff_townHungoverAccDebuff_story_desc"));
                    break;

                case "townHungoverDEFDebuff":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_add_buff_townHungoverDEFDebuff_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString("str_bar_add_buff_townHungoverDEFDebuff_story_desc"));
                    break;

                default:
                    sb.Append("Surprising quirk: " + EffectInfo);
                    break;
                }
                break;

                #endregion
            case ActivityEffectType.RemoveTrinket:
                #region Remove Trinket
                Trinket trinket = (Trinket)DarkestDungeonManager.Data.Items["trinket"][EffectInfo];

                sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_remove_trinket_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"),
                                DarkestDungeonManager.Data.HexColors[trinket.RarityId],
                                LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", EffectInfo)));
                break;

                #endregion
            case ActivityEffectType.AddTrinket:
                #region Add Trinket
                sb.Append("\n Not expected to get trinket here.");
                break;

                #endregion
            case ActivityEffectType.CurrencyLost:
                #region Currency Lost
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_currency_lost_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"),
                                DarkestDungeonManager.Data.HexColors["harmful"],
                                EffectInfo);
                break;

                #endregion
            case ActivityEffectType.CurrencyGained:
                #region Currency Gained
                sb.Append("\n Not expected to gain gold here.");
                break;

                #endregion
            case ActivityEffectType.Nothing:
                break;
            }
            #endregion
            break;

        case ActivityType.GambleStressHeal:
            if (ActivityEffectType != ActivityEffectType.Found)
            {
                #region Gamble stress heal
                if (Variables.Count < 1)
                {
                    return("Not enough record variables.");
                }

                sb.AppendFormat(LocalizationManager.GetString("str_gambling_stress_relief_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"), Variables[0]);
                #endregion
            }
            #region Gamble side effect
            switch (ActivityEffectType)
            {
            case ActivityEffectType.Missing:
                #region Missing
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_go_missing_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"));
                break;

                #endregion
            case ActivityEffectType.Found:
                #region Found
                sb.AppendFormat(LocalizationManager.GetString("str_gambling_go_missing_found_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"));
                break;

                #endregion
            case ActivityEffectType.Lock:
                #region Lock
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_activity_lock_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"));
                break;

                #endregion
            case ActivityEffectType.AddQuirk:
                #region Add Quirk
                switch (EffectInfo)
                {
                case "gambler":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_add_quirk_gambler_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "bad_gambler":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_add_quirk_bad_gambler_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "known_cheat":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_add_quirk_known_cheat_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                default:
                    sb.Append("Surprising quirk: " + EffectInfo);
                    break;
                }
                break;

                #endregion
            case ActivityEffectType.AddBuff:
                #region Add Buff
                sb.Append("\n Not expected to get buffed here.");
                break;

                #endregion
            case ActivityEffectType.RemoveTrinket:
                #region Remove Trinket
                Trinket trinket = (Trinket)DarkestDungeonManager.Data.Items["trinket"][EffectInfo];

                sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_remove_trinket_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"),
                                DarkestDungeonManager.Data.HexColors[trinket.RarityId],
                                LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", EffectInfo)));
                break;

                #endregion
            case ActivityEffectType.AddTrinket:
                #region Add Trinket
                Trinket addTrinket = (Trinket)DarkestDungeonManager.Data.Items["trinket"][EffectInfo];

                sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_add_trinket_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"),
                                DarkestDungeonManager.Data.HexColors[addTrinket.RarityId],
                                LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", EffectInfo)));
                break;

                #endregion
            case ActivityEffectType.CurrencyLost:
                #region Currency Lost
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_currency_lost_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"),
                                DarkestDungeonManager.Data.HexColors["harmful"],
                                EffectInfo);
                break;

                #endregion
            case ActivityEffectType.CurrencyGained:
                #region Currency Gained
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_currency_gained_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"),
                                DarkestDungeonManager.Data.HexColors["notable"],
                                EffectInfo);
                break;

                #endregion
            case ActivityEffectType.Nothing:
                break;
            }
            #endregion
            break;

        case ActivityType.BrothelStressHeal:
            if (ActivityEffectType != ActivityEffectType.Found)
            {
                #region Brothel stress heal
                if (Variables.Count < 1)
                {
                    return("Not enough record variables.");
                }

                sb.AppendFormat(LocalizationManager.GetString("str_brothel_stress_relief_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"), Variables[0]);
                #endregion
            }
            #region Brothel side effect
            switch (ActivityEffectType)
            {
            case ActivityEffectType.Missing:
                #region Missing
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_go_missing_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"));
                break;

                #endregion
            case ActivityEffectType.Found:
                #region Found
                sb.AppendFormat(LocalizationManager.GetString("str_brothel_go_missing_found_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"));
                break;

                #endregion
            case ActivityEffectType.Lock:
                #region Lock
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_activity_lock_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_tavern"));
                break;

                #endregion
            case ActivityEffectType.AddQuirk:
                #region Add Quirk
                switch (EffectInfo)
                {
                case "love_interest":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_quirk_love_interest_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "syphilis":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_quirk_syphilis_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "deviant_tastes":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_quirk_deviant_tastes_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                default:
                    sb.Append("Surprising quirk: " + EffectInfo);
                    break;
                }
                break;

                #endregion
            case ActivityEffectType.AddBuff:
                #region Add Buff
                switch (EffectInfo)
                {
                case "townBrothelSPDBuff":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_buff_townBrothelSPDBuff_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString("str_brothel_add_buff_townBrothelSPDBuff_story_desc"));
                    break;

                case "townBrothelSPDDebuff":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_buff_townBrothelSPDDebuff_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_tavern"),
                                    LocalizationManager.GetString("str_brothel_add_buff_townBrothelSPDDebuff_story_desc"));
                    break;

                default:
                    sb.Append("Surprising buff: " + EffectInfo);
                    break;
                }
                break;

                #endregion
            case ActivityEffectType.RemoveTrinket:
                #region Remove Trinket
                sb.Append("\n Not expected to lose trinket here.");
                break;

                #endregion
            case ActivityEffectType.AddTrinket:
                #region Add Trinket
                sb.Append("\n Not expected to get trinket here.");
                break;

                #endregion
            case ActivityEffectType.CurrencyLost:
                #region Currency Lost
                sb.Append("\n Not expected to lose gold here.");
                break;

                #endregion
            case ActivityEffectType.CurrencyGained:
                #region Currency Gained
                sb.Append("\n Not expected to gain gold here.");
                break;

                #endregion
            case ActivityEffectType.Nothing:
                break;
            }
            #endregion
            break;

        case ActivityType.MeditationStressHeal:
            if (ActivityEffectType != ActivityEffectType.Found)
            {
                #region Meditation stress heal
                if (Variables.Count < 1)
                {
                    return("Not enough record variables.");
                }

                sb.AppendFormat(LocalizationManager.GetString("str_meditation_stress_relief_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"), Variables[0]);
                #endregion
            }
            #region Meditation side effect
            switch (ActivityEffectType)
            {
            case ActivityEffectType.Missing:
                #region Missing
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_go_missing_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"));
                break;

                #endregion
            case ActivityEffectType.Found:
                #region Found
                sb.AppendFormat(LocalizationManager.GetString("str_meditation_go_missing_found_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"));
                break;

                #endregion
            case ActivityEffectType.Lock:
                #region Lock
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_activity_lock_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"));
                break;

                #endregion
            case ActivityEffectType.AddQuirk:
                #region Add Quirk
                switch (EffectInfo)
                {
                case "enlightened":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_enlightened_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "improved_balance":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_improved_balance_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "meditator":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_meditator_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "calm":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_calm_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "unquiet_mind":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_unquiet_mind_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                default:
                    sb.Append("Surprising quirk: " + EffectInfo);
                    break;
                }
                break;

                #endregion
            case ActivityEffectType.AddBuff:
                #region Add Buff
                sb.Append("\n Not expected to get buffed here.");
                break;

                #endregion
            case ActivityEffectType.RemoveTrinket:
                #region Remove Trinket
                sb.Append("\n Not expected to lose trinket here.");
                break;

                #endregion
            case ActivityEffectType.AddTrinket:
                #region Add Trinket
                sb.Append("\n Not expected to get trinket here.");
                break;

                #endregion
            case ActivityEffectType.CurrencyLost:
                #region Currency Lost
                sb.Append("\n Not expected to lose gold here.");
                break;

                #endregion
            case ActivityEffectType.CurrencyGained:
                #region Currency Gained
                sb.Append("\n Not expected to gain gold here.");
                break;

                #endregion
            case ActivityEffectType.Nothing:
                break;
            }
            #endregion
            break;

        case ActivityType.PrayerStressHeal:
            if (ActivityEffectType != ActivityEffectType.Found)
            {
                #region Prayer stress heal
                if (Variables.Count < 1)
                {
                    return("Not enough record variables.");
                }

                sb.AppendFormat(LocalizationManager.GetString("str_prayer_stress_relief_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"), Variables[0]);
                #endregion
            }
            #region Prayer side effect
            switch (ActivityEffectType)
            {
            case ActivityEffectType.Missing:
                #region Missing
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_go_missing_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"));
                break;

                #endregion
            case ActivityEffectType.Found:
                #region Found
                sb.AppendFormat(LocalizationManager.GetString("str_prayer_go_missing_found_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"));
                break;

                #endregion
            case ActivityEffectType.Lock:
                #region Lock
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_activity_lock_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"));
                break;

                #endregion
            case ActivityEffectType.AddQuirk:
                #region Add Quirk
                switch (EffectInfo)
                {
                case "god_fearing":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_add_quirk_god_fearing_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "witness":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_add_quirk_witness_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                default:
                    sb.Append("Surprising quirk: " + EffectInfo);
                    break;
                }
                break;

                #endregion
            case ActivityEffectType.AddBuff:
                #region Add Buff
                sb.Append("\n Not expected to get buffed here.");
                break;

                #endregion
            case ActivityEffectType.RemoveTrinket:
                #region Remove Trinket
                sb.Append("\n Not expected to lose trinket here.");
                break;

                #endregion
            case ActivityEffectType.AddTrinket:
                #region Add Trinket
                sb.Append("\n Not expected to get trinket here.");
                break;

                #endregion
            case ActivityEffectType.CurrencyLost:
                #region Currency Lost
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_currency_lost_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"),
                                DarkestDungeonManager.Data.HexColors["harmful"],
                                EffectInfo);
                break;

                #endregion
            case ActivityEffectType.CurrencyGained:
                #region Currency Gained
                sb.Append("\n Not expected to gain gold here.");
                break;

                #endregion
            case ActivityEffectType.Nothing:
                break;
            }
            #endregion
            break;

        case ActivityType.FlagellationStressHeal:
            if (ActivityEffectType != ActivityEffectType.Found)
            {
                #region Flagellation stress heal
                if (Variables.Count < 1)
                {
                    return("Not enough record variables.");
                }

                sb.AppendFormat(LocalizationManager.GetString("str_flagellation_stress_relief_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"), Variables[0]);
                #endregion
            }
            #region Flagellation side effect
            switch (ActivityEffectType)
            {
            case ActivityEffectType.Missing:
                #region Missing
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_go_missing_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"));
                break;

                #endregion
            case ActivityEffectType.Found:
                #region Found
                sb.AppendFormat(LocalizationManager.GetString("str_flagellation_go_missing_found_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"));
                break;

                #endregion
            case ActivityEffectType.Lock:
                #region Lock
                sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_activity_lock_story"),
                                DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                LocalizationManager.GetString("town_name_abbey"));
                break;

                #endregion
            case ActivityEffectType.AddQuirk:
                #region Add Quirk
                switch (EffectInfo)
                {
                case "flagellant":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_add_quirk_flagellant_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                case "faithless":
                    sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_add_quirk_faithless_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString(EffectInfo));
                    break;

                default:
                    sb.Append("Surprising quirk: " + EffectInfo);
                    break;
                }
                break;

                #endregion
            case ActivityEffectType.AddBuff:
                #region Add Buff
                switch (EffectInfo)
                {
                case "townFlagellationDMGLowBuff":
                    sb.AppendFormat("\n" +
                                    LocalizationManager.GetString("str_flagellation_add_buff_townFlagellationDMGLowBuff_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString("str_flagellation_add_buff_townFlagellationDMGLowBuff_story_desc"));
                    break;

                case "townFlagellationDMGLowDebuff":
                    sb.AppendFormat("\n" +
                                    LocalizationManager.GetString("str_flagellation_add_buff_townFlagellationDMGLowDebuff_story"),
                                    DarkestDungeonManager.Data.HexColors["notable"], Actor,
                                    LocalizationManager.GetString("town_name_abbey"),
                                    LocalizationManager.GetString("str_flagellation_add_buff_townFlagellationDMGLowDebuff_story_desc"));
                    break;

                default:
                    sb.Append("Surprising buff: " + EffectInfo);
                    break;
                }
                break;

                #endregion
            case ActivityEffectType.RemoveTrinket:
                #region Remove Trinket
                sb.Append("\n Not expected to lose trinket here.");
                break;

                #endregion
            case ActivityEffectType.AddTrinket:
                #region Add Trinket
                sb.Append("\n Not expected to get trinket here.");
                break;

                #endregion
            case ActivityEffectType.CurrencyLost:
                #region Currency Lost
                sb.Append("\n Not expected to lose gold here.");
                break;

                #endregion
            case ActivityEffectType.CurrencyGained:
                #region Currency Gained
                sb.Append("\n Not expected to gain gold here.");
                break;

                #endregion
            case ActivityEffectType.Nothing:
                break;
            }
            #endregion
            break;
        }
        cachedDescription = sb.ToString();
        return(cachedDescription);
    }
Пример #26
0
    /// <summary>
    /// Initializes a new instance of the <see cref="UIScreen"/> class.
    /// </summary>
    /// <param name="name">The name of the screen.</param>
    /// <param name="renderer">
    /// The renderer that defines the styles and visual appearance for controls in this screen. 
    /// </param>
    /// <exception cref="ArgumentNullException">
    /// <paramref name="name"/> or <paramref name="renderer"/> is <see langword="null"/>.
    /// </exception>
    /// <exception cref="ArgumentException">
    /// <paramref name="name"/> is an empty string.
    /// </exception>
    public UIScreen(string name, IUIRenderer renderer)
    {
      if (name == null)
        throw new ArgumentNullException("name");
      if (name.Length == 0)
        throw new ArgumentException("String is empty.", "name");
      if (renderer == null)
        throw new ArgumentNullException("renderer");

      Name = name;
      Renderer = renderer;

      Style = "UIScreen";

      Children = new NotifyingCollection<UIControl>(false, false);
      Children.CollectionChanged += OnChildrenChanged;

      _focusManager = new FocusManager(this);
      ToolTipManager = new ToolTipManager(this);

#if !SILVERLIGHT
      // Call OnVisibleChanged when IsVisible changes.
      var isVisible = Properties.Get<bool>(IsVisiblePropertyId);
      isVisible.Changed += (s, e) => OnVisibleChanged(EventArgs.Empty);
#endif

      InputEnabled = true;
    }
Пример #27
0
 private void Awake()
 {
     instance         = this;
     standardPosition = tooltipRect.localPosition;
     myRect           = GetComponent <RectTransform>();
 }
Пример #28
0
 public void FastForwardToolTip()
 {
     ToolTipManager.ShowText("Press [Space] to fast forward");
 }
 internal void Initialize(ScreenView screenView)
 {
     dragManager      = new DragManager(screenView, this);
     toolTipManager   = new ToolTipManager(screenView, this);
     layoutFixManager = new LayoutFixManager(screenView, this);
 }
Пример #30
0
        private void CreateViewElements(PaletteRedirect redirect)
        {
            // Layout for individual tabs inside the header
            _layoutRibbonTabs = new ViewLayoutRibbonTabs(_ribbon, NeedPaintDelegate);

            // Put inside a viewport so scrollers are used when tabs cannot be shrunk to fill space
            _tabsViewport = new ViewLayoutRibbonScrollPort(_ribbon, System.Windows.Forms.Orientation.Horizontal, _layoutRibbonTabs, true, SCROLL_SPEED, NeedPaintDelegate);
            _tabsViewport.TransparentBackground = true;
            _tabsViewport.PaintBackground      += new PaintEventHandler(OnTabsPaintBackground);
            _layoutRibbonTabs.ParentControl     = _tabsViewport.ViewLayoutControl.ChildControl;
            _layoutRibbonTabs.NeedPaintDelegate = _tabsViewport.ViewControlPaintDelegate;

            // We use a layout docker as a child to prevent buttons going to the left of the app button
            ViewLayoutDocker tabsDocker = new ViewLayoutDocker();

            // Place the tabs viewport as the fill inside ourself, the button specs will be placed
            // to the left and right of this fill element automatically by the button manager below
            tabsDocker.Add(_tabsViewport, ViewDockStyle.Fill);

            // We need to draw the bottom half of the application button or a full app tab
            _layoutAppButton = new ViewLayoutRibbonAppButton(_ribbon, true);
            _layoutAppTab    = new ViewLayoutRibbonAppTab(_ribbon);

            // Connect up the application button controller to the app button element
            _appButtonController.Target3        = _layoutAppButton.AppButton;
            _appButtonController.Click         += new EventHandler(OnAppButtonClicked);
            _appButtonController.MouseReleased += new EventHandler(OnAppButtonReleased);
            _layoutAppButton.MouseController    = _appButtonController;
            _layoutAppButton.SourceController   = _appButtonController;
            _layoutAppButton.KeyController      = _appButtonController;

            _appTabController.Target1        = _layoutAppTab.AppTab;
            _appTabController.Click         += new EventHandler(OnAppButtonClicked);
            _appTabController.MouseReleased += new EventHandler(OnAppButtonReleased);
            _layoutAppTab.MouseController    = _appTabController;
            _layoutAppTab.SourceController   = _appTabController;
            _layoutAppTab.KeyController      = _appTabController;

            // When the app button is not visible we need separator instead before start of first tab
            _layoutAppButtonSep         = new ViewLayoutSeparator(5, 0);
            _layoutAppButtonSep.Visible = false;

            // Used separators around the tabs and the edge elements
            _rightSeparator = new ViewLayoutRibbonSeparator(FAR_TAB_GAP, true);
            _leftSeparator  = new ViewLayoutRibbonSeparator(BUTTON_TAB_GAP_2007, true);

            // Place application button on left  and tabs as the filler (with some separators for neatness)
            Add(_rightSeparator, ViewDockStyle.Left);
            Add(_leftSeparator, ViewDockStyle.Left);
            Add(_layoutAppButton, ViewDockStyle.Left);
            Add(_layoutAppButtonSep, ViewDockStyle.Left);
            Add(_layoutAppTab, ViewDockStyle.Left);
            Add(tabsDocker, ViewDockStyle.Fill);

            // Create button specification collection manager
            PaletteRedirect aeroOverrideText = new PaletteRedirectRibbonAeroOverride(_ribbon, redirect);

            _buttonManager = new ButtonSpecManagerLayoutRibbon(_ribbon, aeroOverrideText, _ribbon.ButtonSpecs, _buttonSpecsFixed,
                                                               new ViewLayoutDocker[] { tabsDocker },
                                                               new IPaletteMetric[] { _ribbon.StateCommon },
                                                               new PaletteMetricInt[] { PaletteMetricInt.HeaderButtonEdgeInsetPrimary },
                                                               new PaletteMetricPadding[] { PaletteMetricPadding.RibbonButtonPadding },
                                                               new GetToolStripRenderer(_ribbon.CreateToolStripRenderer),
                                                               NeedPaintDelegate);

            // Create the manager for handling tooltips
            _toolTipManager                = new ToolTipManager();
            _toolTipManager.ShowToolTip   += new EventHandler <ToolTipEventArgs>(OnShowToolTip);
            _toolTipManager.CancelToolTip += new EventHandler(OnCancelToolTip);
            _buttonManager.ToolTipManager  = _toolTipManager;
        }
Пример #31
0
    public string Tooltip()
    {
        StringBuilder sb = ToolTipManager.TipBody;

        sb.AppendFormat("<color={0}>", DarkestDungeonManager.Data.HexColors["notable"]);
        sb.Append(LocalizationManager.GetString(ToolTipManager.GetConcat("camping_skill_name_", Id)));
        sb.AppendFormat("\n" + LocalizationManager.GetString("camping_skill_cost"), TimeCost);
        sb.AppendFormat("</color><color={0}>", DarkestDungeonManager.Data.HexColors["neutral"]);


        for (int i = 0; i < Effects.Count; i++)
        {
            if (i > 0)
            {
                if (Effects[i - 1].Selection != Effects[i].Selection)
                {
                    sb.Append("\n" + LocalizationManager.GetString(
                                  CampingSkillHelper.CampTargetTypeToStringId(Effects[i].Selection)));
                }
            }
            else
            {
                sb.Append("\n" + LocalizationManager.GetString(
                              CampingSkillHelper.CampTargetTypeToStringId(Effects[i].Selection)));
            }

            string effectString = "";

            switch (Effects[i].Type)
            {
            case CampEffectType.Buff:
                effectString = DarkestDungeonManager.Data.Buffs[Effects[i].Subtype].TooltipOverrided(Effects[i].Amount);
                break;

            case CampEffectType.HealthDamageMaxHealthPercent:
                effectString = string.Format(LocalizationManager.GetString(
                                                 "camping_skill_effect_health_damage_max_health_percent"), Effects[i].Amount);
                break;

            case CampEffectType.HealthHealMaxHealthPercent:
                effectString = string.Format(LocalizationManager.GetString(
                                                 "camping_skill_effect_health_heal_max_health_percent"), Effects[i].Amount);
                break;

            case CampEffectType.Loot:
                effectString = LocalizationManager.GetString("camping_skill_effect_loot_" + Effects[i].Subtype);
                break;

            case CampEffectType.ReduceAmbushChance:
                effectString = LocalizationManager.GetString("camping_skill_effect_reduce_ambush_chance");
                break;

            case CampEffectType.ReduceTorch:
                effectString = string.Format(LocalizationManager.GetString(
                                                 "camping_skill_effect_reduce_torch"), Effects[i].Amount);
                break;

            case CampEffectType.RemoveBleed:
                effectString = LocalizationManager.GetString("camping_skill_effect_remove_bleeding");
                break;

            case CampEffectType.RemoveDeathRecovery:
                effectString = LocalizationManager.GetString("camping_skill_effect_remove_deaths_door_recovery_buffs");
                break;

            case CampEffectType.RemoveDisease:
                effectString = LocalizationManager.GetString("camping_skill_effect_remove_disease");
                break;

            case CampEffectType.RemovePoison:
                effectString = LocalizationManager.GetString("camping_skill_effect_remove_poison");
                break;

            case CampEffectType.StressDamageAmount:
                effectString = string.Format(LocalizationManager.GetString(
                                                 "camping_skill_effect_stress_damage_amount"), Effects[i].Amount);
                break;

            case CampEffectType.StressHealAmount:
                effectString = string.Format(LocalizationManager.GetString(
                                                 "camping_skill_effect_stress_heal_amount"), Effects[i].Amount);
                break;
            }

            if (Effects[i].Chance != 1)
            {
                string formatChance = LocalizationManager.GetString("camping_skill_chance_effect_format");
                effectString = string.Format(formatChance, Effects[i].Chance * 100, effectString);
            }

            switch (Effects[i].Requirement)
            {
            case CampEffectRequirement.Afflicted:
            case CampEffectRequirement.DeathRecovery:
            case CampEffectRequirement.Nonreligious:
            case CampEffectRequirement.Religious:
                if (effectString.Length > 0)
                {
                    string reqFormat = LocalizationManager.GetString("camping_skill_requirement_effect_format");
                    sb.AppendFormat("\n" + reqFormat, LocalizationManager.GetString(
                                        CampingSkillHelper.CampRequirementToStringId(Effects[i].Requirement)), effectString);
                }
                break;

            case CampEffectRequirement.None:
                if (effectString.Length > 0)
                {
                    sb.Append("\n" + effectString);
                }
                break;
            }
        }

        sb.AppendFormat("</color>");
        return(sb.ToString());
    }
Пример #32
0
 private void cbxBaseColourPreview_MouseEnter(object sender, EventArgs e)
 {
     ToolTipManager.DisplayToolTip(ttInformation, cbxBaseColourPreview, "Base", cbxBaseColourPreview.BackColor, true);
 }