Exemple #1
0
    public void SelectCube(Cube cube, Cube.EState state)
    {
        var obj = cube.gameObject;

        if (cube.State == Cube.EState.Selected || cube.State == Cube.EState.Enable)
        {
            if (cube.State != state)
            {
                if (state == Cube.EState.Selected)
                {
                    SelectedObj.Add(obj);
                    if (SelectedObj.Count == 1)
                    {
                        MenuManager.Get.Hud.EnableSelectionBtn(true);
                    }
                    cube.SetState(Cube.EState.Selected);
                    mPrevObjSelected = obj;
                }
                else
                {
                    SelectedObj.Remove(obj);
                    if (SelectedObj.Count == 0)
                    {
                        MenuManager.Get.Hud.EnableSelectionBtn(false);
                    }
                    cube.SetState();
                    mPrevObjSelected = obj;
                }
            }
        }
    }
Exemple #2
0
    private void RunIfMoveAction(RaycastHit hit)
    {
        RingSelectedEnemy.SetDeactiveRing();

        Tile t = hit.collider.GetComponent <Tile>();

        if (t.selectable)
        {
            if (currentSelectedObj == SelectedObj.tile && t.GetComponent <Renderer>().material.color == Color.blue)
            {
                t.GetComponent <Renderer>().material.color = Color.green;
                currentSelectedObj = SelectedObj.none;
                MoveToTile(t);
            }
            currentSelectedObj = SelectedObj.tile;

            if (t.GetComponent <Renderer>().material.color != Color.blue && t.GetComponent <Renderer>().material.color != Color.green)
            {
                foreach (Tile tile in selectableTiles)
                {
                    if (tile.GetComponent <Renderer>().material.color == Color.blue)
                    {
                        tile.GetComponent <Renderer>().material.color = Color.red;
                    }
                }
                t.GetComponent <Renderer>().material.color = Color.blue;
            }
        }
    }
Exemple #3
0
    private void RunIfAttackAction(RaycastHit hit)
    {
        if (hit.collider.GetComponent <BaseStats>().HP > 0)
        {
            removeSelectedTileByMouse();

            RingSelectedEnemy.SetActiveRing();

            heading = hit.collider.transform.position - transform.position;
            heading.Normalize();
            transform.forward = heading;

            if (currentSelectedObj == SelectedObj.enemy && RingInTheSamePosition(hit))
            {
                currentSelectedObj = SelectedObj.none;
                RingSelectedEnemy.SetDeactiveRing();
                AttackEnemy(hit);
            }
            currentSelectedObj = SelectedObj.enemy;

            if (hit.collider.gameObject.transform.position != RingSelectedEnemy.GetRingPosition())
            {
                RingSelectedEnemy.GetEnemyPosition(hit.collider.GetComponent <UnitMovement>());
            }
        }
    }
Exemple #4
0
        private void DrawNode(Node nodedata, Node parent, TreeDirection direction)
        {
            var selected = SelectedObj == nodedata;
            var color    = selected ? Color.DodgerBlue : Color.FromArgb(120, 128, 128, 128);

            if (parent != null)
            {
                var parentUnlocked = parent.Unlocked(DataTree);
                if (!parentUnlocked && !selected)
                {
                    color = Color.FromArgb(150, 120, 120, 120);
                }
                if (parentUnlocked && parent == SelectedObj && !SelectedObj.Unlocked(DataTree))
                {
                    color = Color.FromArgb(150, 255, 150, 0);
                }
            }

            new UIRectangle(nodedata.Position, new Size(NTree.NodeSize, NTree.NodeSize), Color.Black).Draw();
            new UIRectangle(nodedata.Position + new Size(2, 2), new Size(NTree.NodeSize - 4, NTree.NodeSize - 4), color).Draw();
            new UIRectangle(nodedata.Position + new Size(4, 4), new Size(NTree.NodeSize - 8, NTree.NodeSize - 8), Color.FromArgb(255, 24, 24, 24)).Draw();
            nodedata.Sprite.Draw(nodedata.Position + new Size(4, 4), NTree.NodeSize - 8, NTree.NodeSize - 8, Color.White);

            new UIText(nodedata.GetName(), nodedata.Position + new Size(NTree.NodeSize / 2, NTree.NodeSize), 0.35f, Color.White, 0, true).Draw();
            new UIText(nodedata.GetFooter(DataTree), nodedata.Position + new Size(NTree.NodeSize / 2, NTree.NodeSize + 17), 0.21f, Color.White, 0, true).Draw();

            if (parent == null)
            {
                return;
            }
            var pPos = parent.Position;
            var dir  = nodedata.Direction;

            var linkColor = parent == SelectedObj && !nodedata.Unlocked(DataTree) ? Color.FromArgb(150, 255, 150, 0) : Color.White;

            switch (dir)
            {
            case TreeDirection.Right:
                new UIRectangle(pPos + NTree.NodeCenter + new Size(NTree.NodeSize / 2 + 29, -NTree.LinkThickness / 2), new Size(NTree.LinkLength - 19, NTree.LinkThickness), linkColor).Draw();
                break;

            case TreeDirection.Down:
                new UIRectangle(pPos + NTree.NodeCenter + new Size(-NTree.LinkThickness / 2, NTree.NodeSize / 2 + 29), new Size(NTree.LinkThickness, NTree.LinkLength - 19), linkColor).Draw();
                break;

            case TreeDirection.Left:
                new UIRectangle(pPos + NTree.NodeCenter + new Size(-(NTree.NodeSize / 2 + 29) - 50, -NTree.LinkThickness / 2), new Size(NTree.LinkLength - 19, NTree.LinkThickness), linkColor).Draw();
                break;

            case TreeDirection.Up:
                new UIRectangle(pPos + NTree.NodeCenter + new Size(-NTree.LinkThickness / 2, -(NTree.NodeSize / 2 + 29) - 31), new Size(NTree.LinkThickness, NTree.LinkLength - 19), linkColor).Draw();
                break;
            }
        }
Exemple #5
0
 public void ResetSelectedObj()
 {
     foreach (var obj in SelectedObj)
     {
         var cube = obj.GetComponent <Cube>();
         if (cube)
         {
             cube.SetState(Cube.EState.Enable);
         }
     }
     SelectedObj.Clear();
     MenuManager.Get.Hud.EnableSelectionBtn(false);
 }
Exemple #6
0
        public override void Draw()
        {
            string title;
            string subText;
            string activateText;

            GetTitle(DataTree, out title, out subText, out activateText);

            new UIRectangle(new Point(3, 3), new Size(UI.WIDTH - 6, UI.HEIGHT - 6), Color.FromArgb(240, 25, 25, 25)).Draw();
            new UIRectangle(new Point(UI.WIDTH - 342, UI.HEIGHT - 23), new Size(332, 14), Color.FromArgb(120, 8, 8, 8)).Draw();
            new UIText("[backspace] back [5] " + activateText + " [num4] left [num6] right  [num8] up [num2] down",
                       new Point(UI.WIDTH - 340, UI.HEIGHT - 23), 0.18f, Color.White, 0, false).Draw();

            new UIText(title, new Point(50, 20), 1.2f, Color.White, 0, false).Draw();
            new UIText(subText, new Point(50, 70), 0.5f, Color.White, 0, false).Draw();
            new UIText(RPG.PlayerData.Name.ToLower() + " level " + RPG.PlayerData.Level + " criminal", new Point(UI.WIDTH - 250, 40), 0.4f, Color.White, 0, false).Draw();

            new UIRectangle(new Point(UI.WIDTH / 2 - 150, UI.HEIGHT - 110), new Size(300, 100), Color.FromArgb(120, 8, 8, 8)).Draw();
            SelectedObj.DrawDetails(DataTree);


            DataTree.Draw(DataTree, null, DrawNode);
        }
Exemple #7
0
        void HandleHotKey(System.Windows.Input.KeyEventArgs e)
        {
            if (RenderIsDragging)
            {
                return;
            }
            if (e.Key == Key.B && EditingList)
            {
                PreviousList();
            }
            if (SelectionCount == 0)
            {
                return;
            }
            if (e.Key == Key.Space)
            {
                render.LookAt(SelectedObj.ModelView_Pos);
            }
            else if (e.Key == Key.OemPlus && Btn_AddObj.Enabled)
            {
                Btn_AddObj_Click(null, null);
            }
            else if (e.Key == Key.D && SelectionCount == 1)
            {
                DuplicateObj(SelectedObj, CurList);
            }
            else if (e.Key == Key.Delete)
            {
                btn_delObj_Click(null, null);
            }
            else if (e.Key == Key.F)
            {
                findToolStripMenuItem.ShowDropDown();
            }
            else if (e.Key == Key.H)
            {
                lnk_hideSelectedObjs_LinkClicked(null, null);
            }
            else if (e.Key == Key.Z && UndoList.Count > 0)
            {
                UndoList.Pop().Undo();
            }
            else if (e.Key == Key.C && SelectionCount == 1)
            {
                if (SelectedObj[LevelObj.N_Links] != null)
                {
                    var BakLinks = ((LinksNode)SelectedObj[LevelObj.N_Links]).Clone();

                    AddToUndo((dynamic arg) =>
                    {
                        ((LevelObj)arg[0])[LevelObj.N_Links] = arg[1];
                    },
                              $"Edited links of {SelectedObj.ToString()}",
                              new dynamic[] { SelectedObj, BakLinks });

                    new EditorFroms.LinksEditor(SelectedObj[LevelObj.N_Links]).ShowDialog();
                }
            }
#if DEBUG
            else if (e.Key == Key.P)
            {
                foreach (ObjList l in LoadedLevel.objs.Values)
                {
                    foreach (LevelObj o in l)
                    {
                        UpdateModelPosition(o);
                    }
                }
            }
#endif
            else
            {
                return;
            }
        }