Exemple #1
0
        /// <summary>
        ///     ユニットツリービューのユニット/師団以外のノード選択時の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnOtherAfterSelect(object sender, TreeViewEventArgs e)
        {
            UnitTreeViewEventArgs args = new UnitTreeViewEventArgs(e);

            switch ((NodeType)e.Node.Tag)
            {
            case NodeType.Land:
            case NodeType.Naval:
            case NodeType.Air:
                args.CanAddUnit = true;
                break;

            case NodeType.Boarding:
                args.Unit       = e.Node.Parent.Tag as Unit;
                args.CanAddUnit = true;
                break;

            case NodeType.UndeployedLand:
            case NodeType.UndeployedNaval:
            case NodeType.UndeployedAir:
                args.CanAddDivision = true;
                break;
            }

            AfterSelect?.Invoke(sender, args);
        }
Exemple #2
0
        /// <summary>
        ///     ユニットツリービューのユニットノード選択時の処理
        /// </summary>
        /// <param name="unit">ユニット</param>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnUnitAfterSelect(Unit unit, object sender, TreeViewEventArgs e)
        {
            int index  = e.Node.Parent.Nodes.IndexOf(e.Node);
            int bottom = e.Node.Parent.Nodes.Count - 1;

            UnitTreeViewEventArgs args = new UnitTreeViewEventArgs(e)
            {
                Unit           = unit,
                CanAddUnit     = true,
                CanAddDivision = true,
                IsTop          = index == 0,
                IsBottom       = index == bottom
            };

            AfterSelect?.Invoke(sender, args);
        }
Exemple #3
0
        /// <summary>
        ///     ユニットツリービューの師団ノード選択時の処理
        /// </summary>
        /// <param name="division">師団</param>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnDivisionAfterSelect(Division division, object sender, TreeViewEventArgs e)
        {
            int index  = e.Node.Parent.Nodes.IndexOf(e.Node);
            int bottom = e.Node.Parent.Nodes.Count - 1;

            // 搭載ユニットの分-1する
            if (division.Branch == Branch.Navy || division.Branch == Branch.Airforce)
            {
                bottom--;
            }

            UnitTreeViewEventArgs args = new UnitTreeViewEventArgs(e)
            {
                Division       = division,
                Unit           = e.Node.Parent.Tag as Unit,
                CanAddDivision = true,
                IsTop          = index <= 0,
                IsBottom       = index >= bottom
            };

            AfterSelect?.Invoke(sender, args);
        }