Example #1
0
        public VocabulTestViewModel(List <Vocabulary> vocables, SelectedMode selectionMode)
        {
            _lessionBusinessFactory = LessionBusinessClass.CreateLessionBusinessFactory();
            _selectionMode          = selectionMode;
            if (vocables != null)
            {
                OriginalList = new List <Vocabulary>(vocables);

                switch (_selectionMode)
                {
                case SelectedMode.Left:
                    TestVocables = new ObservableCollection <Vocabulary>(_lessionBusinessFactory.LeftOnlyMode(OriginalList, selectionMode));
                    break;

                case SelectedMode.Random:
                    TestVocables = new ObservableCollection <Vocabulary>(_lessionBusinessFactory.RandomMode(OriginalList, selectionMode));
                    break;

                case SelectedMode.Right:
                    TestVocables = new ObservableCollection <Vocabulary>(_lessionBusinessFactory.RightOnlyMode(OriginalList, selectionMode));
                    break;

                default:
                    break;
                }
            }
        }
Example #2
0
 public ColorEditorViewModel()
 {
     _modes                  = CreateModes().ToArray();
     _selectedMode           = Modes.First();
     _color.PropertyChanged += Color_PropertyChanged;
     SelectedMode.UpdateCoordinates();
 }
Example #3
0
        void OnSelectionChange()
        {
            _selectedMode = SelectedMode.Ragdoll;

            if (!GetTarget())
            {
                Repaint();
                return;
            }

            _ragdollController = new RagdollController(_go, () => GetPlayerDirection());

            Tools.hidden = false;

            _selectedMode = SelectedMode.Ragdoll;
            if (_humanoidSelected)
            {
                SymmetricBones = FindSymmetricBones(_animator);
                _leftKnee      = _animator.GetBoneTransform(HumanBodyBones.LeftLowerLeg);
                _rightKnee     = _animator.GetBoneTransform(HumanBodyBones.RightLowerLeg);
                _pelvis        = _animator.GetBoneTransform(HumanBodyBones.Hips);
            }
            else
            {
                SymmetricBones = null;
                _leftKnee      = null;
                _rightKnee     = null;
                _pelvis        = null;
            }
            Repaint();
        }
Example #4
0
        public List <Vocabulary> RightOnlyMode(List <Vocabulary> vocables, SelectedMode selectedMode)
        {
            List <Vocabulary> vocablesForTest = new List <Vocabulary>();

            switch (selectedMode)
            {
            case SelectedMode.Right:
                try
                {
                    foreach (var vocable in vocables)
                    {
                        Vocabulary newVocable = new Vocabulary();
                        newVocable.English = vocable.English;
                        newVocable.German  = "";
                        vocablesForTest.Add(newVocable);
                    }
                }
                catch (Exception)
                {
                    throw new Exception("lession is null");
                }
                break;

            default:
                throw new Exception("SelectedMode is not SelectedMode.left");
            }
            return(vocablesForTest);
        }
Example #5
0
        /// <summary>
        /// Draw application form panel
        /// </summary>
        void DrawPanel()
        {
            // set the form more transparent if "NoAction" is selected
            // set size of form for each selected mode

            // draw panel
            Handles.BeginGUI();

            // draw list of modes to select
            GUIStyle style;

            style = new GUIStyle(GUI.skin.label);
            style.normal.textColor = Color.blue;
            style.alignment        = TextAnchor.UpperCenter;

            GUILayout.Label(_humanoidSelected ? "Humanoid selected" : "Simple object selected", style);
            int selectedMode = (int)_selectedMode;

            selectedMode  = GUILayout.SelectionGrid(selectedMode, _dropDownListOptions, 1, EditorStyles.radioButton);
            _selectedMode = (SelectedMode)selectedMode;

            // for Ragdoll mode draw additional controlls
            if (_selectedMode == SelectedMode.Ragdoll)
            {
                _ragdollController.DrawRagdollPanel(_humanoidSelected);
            }

            Handles.EndGUI();
        }
Example #6
0
        //Switch between Rectangle Snapping and Painting
        private void SwitchMode()
        {
            Grid.IsEnabled         = !Grid.IsEnabled;
            PaintSurface.IsEnabled = !PaintSurface.IsEnabled;

            _currentPath = null;

            //"Hide" Selection Rectangle
            SelectionRectangle.Margin = new Thickness(99999);

            //Stop animations by setting AnimationTimeline to null
            SelectedMode.BeginAnimation(OpacityProperty, null);

            //Set correct Selected Mode Indicator
            if (Grid.IsEnabled)
            {
                //Prevent Painting in Capture Rectangle mode
                Grid.CaptureMouse();
                Cursor = Cursors.Cross;
                CropIcon.Background = Brushes.Gray;
                DrawIcon.Background = Brushes.Transparent;
            }
            else
            {
                //Prevent Capturing Rectangle in Paint Mode
                PaintSurface.CaptureMouse();
                Cursor = Cursors.Pen;
                DrawIcon.Background = Brushes.Gray;
                CropIcon.Background = Brushes.Transparent;
            }

            //Fade Selected Mode View in
            FadeSelectedModeIn();
        }
Example #7
0
	// Use this for initialization
	void Start () {
        //camTran = GetComponent<Transform>();
        //cam = GetComponent<Camera>();
        Move(0, 0, 0);

        mode = SelectedMode.None;
	}
Example #8
0
        /// <summary> 鼠标是否覆盖
        /// </summary>
        /// <param name="muslocation">鼠标点坐标</param>
        /// <returns>覆盖返回true,否则返回false</returns>
        public override bool MouseOver(Point muslocation)
        {
            _old_muslocation = null;
            Point point1 = new Point(DrawPoint.X - ltOffsetPoint.X, DrawPoint.Y - ltOffsetPoint.Y);
            Point point2 = new Point(DrawPoint.X - rtOffsetPoint.X, DrawPoint.Y - rtOffsetPoint.Y);
            Point point3 = new Point(DrawPoint.X - rbOffsetPoint.X, DrawPoint.Y - rbOffsetPoint.Y);
            Point point4 = new Point(DrawPoint.X - lbOffsetPoint.X, DrawPoint.Y - lbOffsetPoint.Y);

            if (Selected && _canrotate)
            {
                if ((point3.X - 2 <= muslocation.X && muslocation.X <= point3.X + 2) &&
                    (point3.Y - 2 <= muslocation.Y && muslocation.Y <= point3.Y + 2))
                {
                    _hoverarea     = HoverMode.Rotate;
                    _selectedmodel = SelectedMode.Point;
                    return(true);
                }
            }
            if (Multiply(muslocation, point1, point2) * Multiply(muslocation, point4, point3) <= 0 &&
                Multiply(muslocation, point4, point1) * Multiply(muslocation, point3, point2) <= 0)
            {
                _hoverarea     = HoverMode.Face;
                _selectedmodel = SelectedMode.Face;
                return(true);
            }
            _hoverarea     = HoverMode.None;
            _selectedmodel = SelectedMode.None;
            return(false);
        }
Example #9
0
        /// <summary> 鼠标是否覆盖
        /// </summary>
        /// <param name="muslocation">鼠标点坐标</param>
        /// <returns>覆盖返回true,否则返回false</returns>
        public override Boolean MouseOver(Point muslocation)
        {
            _old_muslocation = null;
            if (PointOver(StartPoint, muslocation))
            {
                _hoverarea     = HoverMode.Point;
                _selectedmodel = SelectedMode.StartPoint;
                return(true);
            }

            if (PointOver(EndPoint, muslocation))
            {
                _hoverarea     = HoverMode.Point;
                _selectedmodel = SelectedMode.EndPoint;
                return(true);
            }

            if (LineOver(StartPoint, EndPoint, muslocation))
            {
                _hoverarea     = HoverMode.Line;
                _selectedmodel = SelectedMode.Line;
                return(true);
            }
            _hoverarea     = HoverMode.None;
            _selectedmodel = SelectedMode.None;
            return(false);
        }
Example #10
0
        /// <summary> 鼠标移动元素
        /// </summary>
        /// <param name="muslocation">鼠标点坐标</param>
        public override Boolean MouseMove(Point muslocation, Boolean multiple)
        {
            if (multiple)
            {
                _selectedmodel = SelectedMode.Face;
            }
            switch (_selectedmodel)
            {
            default: { break; }

            case SelectedMode.Point:
            {
                Point  point3 = new Point(DrawPoint.X - rbOffsetPoint.X, DrawPoint.Y - rbOffsetPoint.Y);
                Double a_pow  = Math.Pow(muslocation.X - point3.X, 2) + Math.Pow(muslocation.Y - point3.Y, 2);
                Double b_pow  = Math.Pow(muslocation.X - DrawPoint.X, 2) + Math.Pow(muslocation.Y - DrawPoint.Y, 2);
                Double c_pow  = Math.Pow(Radius, 2);
                Double cos_a  = (c_pow + b_pow - a_pow) / (2 * Math.Sqrt(b_pow) * Math.Sqrt(c_pow));
                if (1.0000000000000000 < cos_a)
                {
                    cos_a = 1;
                }
                if (0 < (point3.X - DrawPoint.X) * (muslocation.Y - DrawPoint.Y) - (point3.Y - DrawPoint.Y) * (muslocation.X - DrawPoint.X))
                {
                    RotateAngle += Convert.ToInt32(Math.Acos(cos_a) * 180 / Math.PI);
                }
                else
                {
                    RotateAngle -= Convert.ToInt32(Math.Acos(cos_a) * 180 / Math.PI);
                }
                break;
            }

            case SelectedMode.Face:
            {
                if (null == _old_muslocation)
                {
                    _old_muslocation = muslocation;
                }
                else
                {
                    if (multiple)
                    {
                        Int32 move_x = muslocation.X - _old_muslocation.Value.X;
                        Int32 move_y = muslocation.Y - _old_muslocation.Value.Y;
                        DrawPoint = new Point(DrawPoint.X + move_x, DrawPoint.Y + move_y);
                    }
                    else
                    {
                        DrawPoint = muslocation;
                    }
                    _old_muslocation = muslocation;
                }
                break;
            }
            }
            return(true);
        }
Example #11
0
        //Fade the Selected Mode (Drawing/Rectangle) in
        private void FadeSelectedModeIn()
        {
            DoubleAnimation anim = new DoubleAnimation(0, TimeSpan.FromSeconds(0.25));

            anim.Completed += FadeSelectedModeOut;
            anim.From       = SelectedMode.Opacity;
            anim.To         = 0.9;

            SelectedMode.BeginAnimation(OpacityProperty, anim);
        }
Example #12
0
        //Fade the Selected Mode (Drawing/Rectangle) out
        private void FadeSelectedModeOut(object sender, EventArgs e)
        {
            DoubleAnimation anim = new DoubleAnimation(0, TimeSpan.FromSeconds(0.25))
            {
                BeginTime = TimeSpan.FromMilliseconds(1000),
                From      = SelectedMode.Opacity,
                To        = 0
            };

            SelectedMode.BeginAnimation(OpacityProperty, anim);
        }
Example #13
0
    public Color tint = Color.white; // Tint of Cthulhu

    #endregion Fields

    #region Methods

    void Start()
    {
        if (selected_mode == null)
        {
            Debug.Log("Starting persistent settings");
            selected_mode = this;
            DontDestroyOnLoad(this.gameObject);
        }
        else
            Destroy(this.gameObject);
    }
Example #14
0
        //通过属性查询语句查询(SelectedMode是枚举类),并按照SelectedMode更新选中的要素SelectedItems
        public void QuerySQL(string sql, SelectedMode mode)
        {
            //获得满足条件的feature
            try
            {
                DataRow[] selectedRows = Table.Select(sql);


                //获得满足条件feature的id
                List <int> selectedID = new List <int>();
                for (int i = 0; i < selectedRows.Length; i++)
                {
                    selectedID.Add((int)selectedRows[i]["ID"]);
                }


                //按照selectmode,更新选择表

                //选取新的对象
                if (mode == SelectedMode.New)
                {
                    SelectedItems.Clear();
                    SelectedItems = new List <int>(selectedID);
                }

                //在原基础上添加新选择的对象
                else if (mode == SelectedMode.Add)
                {
                    HashSet <int> hash1 = new HashSet <int>(SelectedItems);
                    HashSet <int> hash2 = new HashSet <int>(selectedID);
                    hash1.Union(hash2);
                    SelectedItems = new List <int>(hash1);
                }

                //在原基础上删除新选择的对象
                else if (mode == SelectedMode.Delete)
                {
                    HashSet <int> hash1 = new HashSet <int>(SelectedItems);
                    HashSet <int> hash2 = new HashSet <int>(selectedID);
                    hash1.ExceptWith(hash2);
                    SelectedItems = new List <int>(hash1);
                }

                //在原基础上选择对象和新对象的交集
                else if (mode == SelectedMode.Intersect)
                {
                    HashSet <int> hash1 = new HashSet <int>(SelectedItems);
                    HashSet <int> hash2 = new HashSet <int>(selectedID);
                    hash1.IntersectWith(hash2);
                    SelectedItems = new List <int>(hash1);
                }
            }
            catch { MessageBox.Show("未能检索,请检查您的查询语句后重试。"); }
        }
Example #15
0
 public TestViewModel()
 {
     TestModel             = new TestPageModel();
     _database             = new DatabaseService();
     _selectionChanged     = new SelectionChanged();
     Vocables              = GetVocables(SelectViewModel.SelectedModulIDs);
     TestModel.Modul_Names = new ObservableCollection <string>();
     Title        = "Click play to start a test!";
     SelectedIDs  = SelectViewModel.SelectedModulIDs;
     SelectedMode = new SelectedMode();
     SelectionChanged.SelecedIDsChanged += RefreshSelection;
 }
 public void SelectRise()
 {
     if (teams[activePlayer].units[activeUnit].energyLeft >= riseCost)
     {
         actionMode = SelectedMode.Rise;
     }
     else
     {
         ShowToast("Not enough energy!");
     }
     OnModeUpdated();
 }
 public void SelectAttack()
 {
     if (teams[activePlayer].units[activeUnit].energyLeft >= attackCost)
     {
         actionMode = SelectedMode.Attack;
     }
     else
     {
         ShowToast("Not enough energy!");
     }
     OnModeUpdated();
 }
    private void NextTurn()
    {
        aimLine.enabled = false;

        OnClearTilesSelection();

        if (activePlayer == -1)
        {
            activePlayer = 0;
        }

        else if (activePlayer == 0)
        {
            activePlayer = 1;
        }
        else if (activePlayer == 1)
        {
            activePlayer = 0;
        }

        for (int i = 0; i < teams[activePlayer].units.Count; i++)
        {
            teams[activePlayer].units[i].SetEnergy(energyBudget);
        }

        if (teams[activePlayer].logicType == Team.Logic.Human)
        {
            unitControllerCanvas.alpha          = 1;
            unitControllerCanvas.interactable   = true;
            unitControllerCanvas.blocksRaycasts = true;
        }
        else
        {
            unitControllerCanvas.alpha          = 0;
            unitControllerCanvas.interactable   = false;
            unitControllerCanvas.blocksRaycasts = false;
        }

        StartExpirationTimer();

        activeUnit = 0;
        OnUnitChange(true);

        actionMode = SelectedMode.None;
        OnModeUpdated();

        if (teams[activePlayer].logicType == Team.Logic.AI)
        {
            AIPlayer.Instance.PosessControl(teams[activePlayer].units[0]);
        }
    }
Example #19
0
    /// <summary>
    /// Method intended to be invoked before Drawing GUI
    /// </summary>
    void CheckSelectedMode()
    {
        _selectedMode = GetCurrentMode();

        // if selected item was changed, research colliders
        if (_selectedMode != _lastSelectedMode |
            _lastPivotMode != Tools.pivotMode |
            _lastPivotRotation != Tools.pivotRotation)
        {
            _lastSelectedMode  = _selectedMode;
            _lastPivotMode     = Tools.pivotMode;
            _lastPivotRotation = Tools.pivotRotation;
        }
    }
 public void Copy(Legend legend)
 {
     m_Show         = legend.show;
     m_SelectedMode = legend.selectedMode;
     m_Orient       = legend.orient;
     m_Location.Copy(legend.location);
     m_ItemWidth   = legend.itemWidth;
     m_ItemHeight  = legend.itemHeight;
     m_ItemGap     = legend.itemGap;
     itemAutoColor = legend.itemAutoColor;
     m_TextStyle.Copy(legend.textStyle);
     ChartHelper.CopyList <string>(m_Data, legend.data);
     ChartHelper.CopyList <Sprite>(m_Icons, legend.icons);
 }
Example #21
0
        private const float AttractRadius = 5;   // 吸引区半径
        #endregion

        public MapControl()
        {
            InitializeComponent();

            Graphics g = Graphics.FromHwnd(Handle);

            map = new Map(g);
            g.Dispose();
            cache          = new Bitmap(Width, Height);
            selectedmode   = SelectedMode.New;
            mapOperation   = OperationType.None;
            trackingPoints = new List <PointD>();
            editGeometries = new Geometry[3];
            MouseWheel    += MapControl_MouseWheel;
        }
Example #22
0
 public void Copy(Legend legend)
 {
     m_Show         = legend.show;
     m_SelectedMode = legend.selectedMode;
     m_Orient       = legend.orient;
     m_Location.Copy(legend.location);
     m_ItemWidth    = legend.itemWidth;
     m_ItemHeight   = legend.itemHeight;
     m_ItemGap      = legend.itemGap;
     m_ItemFontSize = legend.itemFontSize;
     m_Data.Clear();
     foreach (var d in legend.data)
     {
         m_Data.Add(d);
     }
 }
Example #23
0
        void OnGUI()
        {
            var modes = System.Enum.GetNames(typeof(SelectedMode));

            selectedMode = (SelectedMode)GUILayout.Toolbar((int)selectedMode, modes);

            switch (selectedMode)
            {
            case SelectedMode.About:
                DrawAboutGUI();
                break;

            case  SelectedMode.Analysis:
                DrawAnalysisGUI();
                break;
            }
        }
Example #24
0
        public List <Vocabulary> RandomMode(List <Vocabulary> vocables, SelectedMode selectedMode)
        {
            Random            r = new Random();
            List <Vocabulary> vocablesForTest = new List <Vocabulary>();
            Vocabulary        newVocable;

            switch (selectedMode)
            {
            case SelectedMode.Random:
                try
                {
                    foreach (var vocable in vocables)
                    {
                        int randomNumber = r.Next(0, 2);
                        switch (randomNumber)
                        {
                        case 0:
                            newVocable         = new Vocabulary();
                            newVocable.English = vocable.English;
                            newVocable.German  = "";
                            vocablesForTest.Add(newVocable);

                            continue;

                        case 1:
                            newVocable         = new Vocabulary();
                            newVocable.German  = vocable.German;
                            newVocable.English = "";
                            vocablesForTest.Add(newVocable);
                            continue;
                        }
                    }
                }
                catch (Exception)
                {
                    throw new Exception("lession is null");
                }
                break;

            default:
                throw new Exception("SelectedMode is not SelectedMode.left");
            }
            return(vocablesForTest);
        }
Example #25
0
    internal void MinionClicked(Minion minion)
    {
        // throw new NotImplementedException();
        //check if shift is down

        if (Input.GetButton("Fire3") && selectedMode == SelectedMode.Minion)
        {
            Debug.Log("adding to selection");
        }
        else
        {
            ClearSelectedMode();
        }

        selectedMode = SelectedMode.Minion;
        selectedMinions.Add(minion);

        minion.Select();
    }
Example #26
0
        void OnGUI()
        {
            var modes = System.Enum.GetNames(typeof(SelectedMode))
                        .Select((x) => ObjectNames.NicifyVariableName(x))
                        .ToArray();

            selectedMode = (SelectedMode)GUILayout.Toolbar((int)selectedMode, modes);

            switch (selectedMode)
            {
            case SelectedMode.About:
                DrawAboutGUI();
                break;

            case SelectedMode.UpgradeScripts:
                DrawUpgradeGUI();
                break;
            }
        }
Example #27
0
        /// <summary>
        /// Method intended to be invoked before Drawing GUI
        /// </summary>
        void CheckSelectedMode()
        {
            bool selectionChanged =
                _lastSelectedMode != _selectedMode |
                _lastPivotMode != Tools.pivotMode |
                _lastPivotRotation != Tools.pivotRotation;

            // if selected item was changed, research colliders
            if (selectionChanged)
            {
                Tools.hidden = _selectedMode != SelectedMode.Ragdoll;

                _lastSelectedMode  = _selectedMode;
                _lastPivotMode     = Tools.pivotMode;
                _lastPivotRotation = Tools.pivotRotation;
                FindColliders();
                SceneView.RepaintAll();
            }
        }
Example #28
0
        /// <summary> 鼠标是否覆盖
        /// </summary>
        /// <param name="muslocation">鼠标点坐标</param>
        /// <returns>覆盖返回true,否则返回false</returns>
        public override bool MouseOver(Point muslocation)
        {
            _pro.MouseOver(muslocation);
            _con.MouseOver(muslocation);
            if (PointOver(Root, muslocation))
            {
                _hoverarea     = HoverMode.Point;
                _selectedmodel = SelectedMode.Root;
                return(true);
            }

            if (PointOver(Fork1, muslocation))
            {
                _hoverarea     = HoverMode.Point;
                _selectedmodel = SelectedMode.Fork1;
                return(true);
            }

            if (PointOver(Fork2, muslocation))
            {
                _hoverarea     = HoverMode.Point;
                _selectedmodel = SelectedMode.Fork2;
                return(true);
            }

            if (LineOver(Root, Fork1, muslocation))
            {
                _hoverarea     = HoverMode.Line;
                _selectedmodel = SelectedMode.Line;
                return(true);
            }

            if (LineOver(Root, Fork2, muslocation))
            {
                _hoverarea     = HoverMode.Line;
                _selectedmodel = SelectedMode.Line;
                return(true);
            }
            _hoverarea     = HoverMode.None;
            _selectedmodel = SelectedMode.None;
            return(false);
        }
Example #29
0
        /// <summary> 鼠标移动元素
        /// </summary>
        /// <param name="muslocation">鼠标点坐标</param>
        public override Boolean MouseMove(Point muslocation, Boolean multiple)
        {
            if (multiple)
            {
                _selectedmodel = SelectedMode.Line;
            }
            switch (_selectedmodel)
            {
            default: { break; }

            case SelectedMode.StartPoint:
            {
                StartPoint = muslocation;
                break;
            }

            case SelectedMode.EndPoint:
            {
                EndPoint = muslocation;
                break;
            }

            case SelectedMode.Line:
            {
                if (null == _old_muslocation)
                {
                    _old_muslocation = muslocation;
                }
                else
                {
                    Int32 move_x = muslocation.X - _old_muslocation.Value.X;
                    Int32 move_y = muslocation.Y - _old_muslocation.Value.Y;
                    StartPoint       = new Point(StartPoint.X + move_x, StartPoint.Y + move_y);
                    EndPoint         = new Point(EndPoint.X + move_x, EndPoint.Y + move_y);
                    _old_muslocation = muslocation;
                }
                break;
            }
            }
            return(true);
        }
    public void NextUnit()
    {
        actionMode = SelectedMode.None;
        OnModeUpdated();

        OnClearTilesSelection();
        if (activeUnit < teams[activePlayer].units.Count - 1)
        {
            activeUnit++;
        }
        else
        {
            activeUnit = 0;
        }

        OnUnitChange(false);

        if (teams[activePlayer].logicType == Team.Logic.AI)
        {
            AIPlayer.Instance.PosessControl(teams[activePlayer].units[activeUnit]);
        }
    }
Example #31
0
    SelectedMode GetCurrentMode()
    {
        Tools.hidden = true;
        switch (Tools.current)
        {
        case Tool.None:
        case Tool.Move:
            _selectedMode = SelectedMode.ColliderMove;
            break;

        case Tool.Rotate:
            _selectedMode = SelectedMode.ColliderRotate;

            break;

        case Tool.Scale:
        case Tool.Rect:
            _selectedMode = SelectedMode.ColliderScale;
            break;
        }

        return(_selectedMode);
    }
Example #32
0
        /// <summary> 鼠标移动元素
        /// </summary>
        /// <param name="muslocation">鼠标点坐标</param>
        public override Boolean MouseMove(Point muslocation, Boolean multiple)
        {
            if (multiple)
            {
                _selectedmodel = SelectedMode.Line;
            }
            switch (_selectedmodel)
            {
            default: { break; }

            case SelectedMode.Root:
            {
                Root = muslocation;
                break;
            }

            case SelectedMode.Fork1:
            {
                Fork1 = muslocation;
                break;
            }

            case SelectedMode.Fork2:
            {
                Fork2 = muslocation;
                break;
            }

            case SelectedMode.Line:
            {
                _pro.MouseMove(muslocation, true);
                _con.MouseMove(muslocation, true);
                break;
            }
            }
            return(true);
        }
    private void NextTurn()
    {
        aimLine.enabled = false;

        OnClearTilesSelection();

        if(activePlayer == -1) {
            activePlayer = 0;
        }

        else if(activePlayer == 0) activePlayer = 1;
        else if(activePlayer == 1) activePlayer = 0;

        for(int i = 0; i < teams[activePlayer].units.Count; i++) {
            teams[activePlayer].units[i].SetEnergy(energyBudget);
        }

        if(teams[activePlayer].logicType == Team.Logic.Human) {
            unitControllerCanvas.alpha = 1;
            unitControllerCanvas.interactable = true;
            unitControllerCanvas.blocksRaycasts = true;
        }
        else {
            unitControllerCanvas.alpha = 0;
            unitControllerCanvas.interactable = false;
            unitControllerCanvas.blocksRaycasts = false;
        }

        StartExpirationTimer();

        activeUnit = 0;
        OnUnitChange(true);

        actionMode = SelectedMode.None;
        OnModeUpdated();

        if(teams[activePlayer].logicType == Team.Logic.AI) AIPlayer.Instance.PosessControl(teams[activePlayer].units[0]);
    }
Example #34
0
	// Update is called once per frame
	void FixedUpdate () {

        if (Input.GetMouseButtonDown(0))
        {
            if (eSystem.currentSelectedGameObject != null)
            {
                return;
            }
            else
            {
                Ray r = cam.ScreenPointToRay(Input.mousePosition);
                RaycastHit2D hit = Physics2D.Raycast(r.origin, r.direction);
                if (hit.collider != null && hit.collider.tag == "Tile")
                {
                    Tile t = hit.collider.GetComponent<Tile>();
                    if (mode == SelectedMode.None)
                    {
                        game.UI_SelectTile(t);
                    }
                    else if (mode == SelectedMode.Move)
                    {
                        game.UI_SelectMove(t);
                    }
                    else if (mode == SelectedMode.AcceptMove)
                    {
                        if (t.uiState == Tile.TileUIState.Accept)
                        {
                            game.UI_AcceptMove(t);
                        }
                        else if (t.uiState == Tile.TileUIState.Cancel)
                        {
                            game.UI_CancelMove(t);
                        }
                        else if (t.Selected())
                        {
                            game.UI_ReselectMove(t);
                        }
                    }
                    else if (mode == SelectedMode.Fire)
                    {
                        game.UI_SelectFire(t);
                    }
                    else if (mode == SelectedMode.AcceptFire)
                    {
                        if (t.uiState == Tile.TileUIState.Accept)
                        {
                            game.UI_AcceptFire(t);
                        }
                        else if (t.uiState == Tile.TileUIState.Cancel)
                        {
                            game.UI_CancelFire(t);
                        }
                        else if (t.Target())
                        {
                            game.UI_ReselectFire(t);
                        }
                    }
                }
            }
        }
        if (Input.GetMouseButtonDown(1))
        {
            board.DeselectTiles(true, false);
            selectedTile = -1;
            mode = SelectedMode.None;
        }
        if (Input.GetMouseButton(0) && !Input.GetMouseButton(1))
        {
            Move(-Input.GetAxis("Mouse X"), -Input.GetAxis("Mouse Y"), 0);
        }
        if (Input.GetMouseButton(1) && !Input.GetMouseButton(0))
        {
            Zoom(-Input.GetAxis("Mouse Y"));
        }
        

        if (Control)
        {
            if (eSystem.currentSelectedGameObject != null)
            {
                //Debug.Log("Touching UI");
            }
            else
            {
                if (Input.touchCount > 0)
                {
                    if (Input.touchCount == 1)
                    {
                        if (Input.GetTouch(0).phase == TouchPhase.Moved)
                        {
                            Touch t = Input.GetTouch(0);
                            Vector3 p = Input.GetTouch(0).deltaPosition * 0.5f;
                            Move(-p.x, -p.y, 0);
                        }
                        if (Input.GetTouch(0).phase == TouchPhase.Began)
                        {
                            Ray r = cam.ScreenPointToRay(Input.GetTouch(0).position);
                            RaycastHit2D hit = Physics2D.Raycast(r.origin, r.direction);
                            if (hit.collider.tag == "Tile")
                            {
                                Tile t = hit.collider.GetComponent<Tile>();
                                if (mode == SelectedMode.None)
                                {
                                    game.UI_SelectTile(t);
                                }
                                else if (mode == SelectedMode.Move)
                                {
                                    game.UI_SelectMove(t);
                                }
                                else if (mode == SelectedMode.AcceptMove)
                                {
                                    if (t.uiState == Tile.TileUIState.Accept)
                                    {
                                        game.UI_AcceptMove(t);
                                    }
                                    else if (t.uiState == Tile.TileUIState.Cancel)
                                    {
                                        game.UI_CancelMove(t);
                                    }
                                    else if (t.Selected())
                                    {
                                        game.UI_ReselectMove(t);
                                    }
                                }
                                else if (mode == SelectedMode.Fire)
                                {
                                    game.UI_SelectFire(t);
                                }
                                else if (mode == SelectedMode.AcceptFire)
                                {
                                    if (t.uiState == Tile.TileUIState.Accept)
                                    {
                                        game.UI_AcceptFire(t);
                                    }
                                    else if (t.uiState == Tile.TileUIState.Cancel)
                                    {
                                        game.UI_CancelFire(t);
                                    }
                                    else if (t.Target())
                                    {
                                        game.UI_ReselectFire(t);
                                    }
                                }
                            }
                        }
                    }
                    else if (Input.touchCount == 2)
                    {
                        Vector2 t1 = Input.GetTouch(0).position - Input.GetTouch(0).deltaPosition;
                        Vector2 t2 = Input.GetTouch(1).position - Input.GetTouch(1).deltaPosition;

                        float prevTouch = (t1 - t2).magnitude;
                        float touch = (Input.GetTouch(0).position - Input.GetTouch(1).position).magnitude;
                        float deltaDiff = prevTouch - touch;

                        Zoom(deltaDiff * 0.3f);
                    }
                }
            }
        }
  
	}
 public void SelectAttack()
 {
     if(teams[activePlayer].units[activeUnit].energyLeft >= attackCost)
         actionMode = SelectedMode.Attack;
     else ShowToast("Not enough energy!");
     OnModeUpdated();
 }
 public void SelectMove()
 {
     actionMode = SelectedMode.Move;
     OnModeUpdated();
 }
 public void SelectNone()
 {
     actionMode = SelectedMode.None;
     OnModeUpdated();
 }
 public void SelectRise()
 {
     if(teams[activePlayer].units[activeUnit].energyLeft >= riseCost)
         actionMode = SelectedMode.Rise;
     else ShowToast("Not enough energy!");
     OnModeUpdated();
 }
    public void ProcessClick(Transform target)
    {
        if(gameStarted) {
            int currentUnitIndex = TerrainGenerator.Instance.FindTileIndex(teams[activePlayer].units[activeUnit].tileOwned);
            int targetIndex = 0;

            if(target.gameObject.name.Contains("Hex")) targetIndex = TerrainGenerator.Instance.FindTileIndex(target);
            else if(target.gameObject.name.Contains("Unit")) {
                Debug.Log("Clicked unit, finding owned tile instead.");
                targetIndex = TerrainGenerator.Instance.FindTileIndex(target.GetComponent<Unit>().tileOwned);
            }

            if(!EventSystem.current.IsPointerOverGameObject()) {
                if(teams[activePlayer].logicType == Team.Logic.Human) {
                    switch(actionMode) {
                        case(SelectedMode.Move):
                            aimLine.enabled = false;
                            if(target.gameObject.name.Contains("Hex") && target.GetComponent<HexUnit>().isAvailableForMovement) {
                                teams[activePlayer].units[activeUnit].GetComponent<Unit>().MoveToTile(target);
                                OnClearTilesSelection();

                                actionMode = SelectedMode.None;
                                OnModeUpdated();
                            } else {
                                ShowToast("Not Enough energy!");
                            }
                            break;

                        case(SelectedMode.Attack):
                            OnClearTilesSelection();
                            if(teams[activePlayer].units[activeUnit].energyLeft >= attackCost) {
                                Unit targetUnit = TerrainGenerator.Instance.hexes[targetIndex].GetComponent<HexUnit>().Owner;
                                if(targetUnit != null) {
                                    Attack(targetUnit);
                                }
                            }
                            else {
                                ShowToast("Not Enough energy!");
                            }

                            break;

                        case(SelectedMode.Bomb):
                            Debug.Log("Bomb!");
                            OnClearTilesSelection();
                            aimLine.enabled = false;

                            if(teams[activePlayer].units[activeUnit].energyLeft >= bombCost) {
                                if(TerrainGenerator.Instance.CalculatePathDistance(currentUnitIndex, targetIndex, 0) <= bombReach) {
                                    Transform epicenter = TerrainGenerator.Instance.hexes[targetIndex];
                                    epicenter.GetComponent<HexUnit>().Rise(-0.05f);

                                    if(epicenter.GetComponent<HexUnit>().Owner != null) epicenter.GetComponent<HexUnit>().Owner.ReceiveDamage(15);

                                    foreach(Transform t in TerrainGenerator.Instance.GetHexNeighbours(epicenter)) {
                                        HexUnit hex = t.GetComponent<HexUnit>();

                                        hex.Rise(UnityEngine.Random.Range(-0.03f, -0.02f));
                                        if(hex.Owner != null) hex.Owner.ReceiveDamage(15);
                                    }

                                    Instantiate(explosionPrefab, new Vector3(0, 2, 0) + TerrainGenerator.Instance.hexes[targetIndex].position, Quaternion.identity);
                                    teams[activePlayer].units[activeUnit].energyLeft -= bombCost;
                                }
                                else {
                                    ShowToast("Too far!");
                                }
                            }
                            else {
                                ShowToast("Not Enough energy!");
                            }

                            break;

                        case(SelectedMode.Rise):
                            Debug.Log("Rise!");
                            OnClearTilesSelection();
                            aimLine.enabled = false;

                            if(teams[activePlayer].units[activeUnit].energyLeft >= bombCost) {
                                if(TerrainGenerator.Instance.CalculatePathDistance(currentUnitIndex, targetIndex, 0) <= riseReach) {
                                    Transform epicenter = TerrainGenerator.Instance.hexes[targetIndex];
                                    epicenter.GetComponent<HexUnit>().Rise(0.05f);

                                    foreach(Transform t in TerrainGenerator.Instance.GetHexNeighbours(epicenter)) {
                                        t.GetComponent<HexUnit>().Rise(UnityEngine.Random.Range(0.03f, 0.02f));
                                    }

                                    teams[activePlayer].units[activeUnit].energyLeft -= bombCost;
                                }
                                else {
                                    ShowToast("Too far!");
                                }
                            }
                            else {
                                ShowToast("Not Enough energy!");
                            }
                            break;

                        default:
                            break;
                    }
                }
                //This player is controller by AI!
                else {

                }
            }

            OnUnitChange(false);
        }
    }
    private void HighlightIcon(SelectedMode mode)
    {
        attackIcon.color = normalColor;
        bombIcon.color = normalColor;
        moveIcon.color = normalColor;
        riseIcon.color = normalColor;

        if(mode == SelectedMode.Attack) attackIcon.color = activeColor;
        else if(mode == SelectedMode.Move) moveIcon.color = activeColor;
        else if(mode == SelectedMode.Bomb) bombIcon.color = activeColor;
        else if(mode == SelectedMode.Rise) riseIcon.color = activeColor;
    }
    public void NextUnit()
    {
        actionMode = SelectedMode.None;
        OnModeUpdated();

        OnClearTilesSelection();
        if(activeUnit < teams[activePlayer].units.Count - 1) {
            activeUnit++;
        }
        else {
            activeUnit = 0;
        }

        OnUnitChange(false);

        if(teams[activePlayer].logicType == Team.Logic.AI) AIPlayer.Instance.PosessControl(teams[activePlayer].units[activeUnit]);
    }