Пример #1
0
        /// <summary>
        /// Проверить, что перемещение выбранного узла дерева вверх возможно
        /// </summary>
        public static bool MoveUpSelectedNodeIsEnabled(this TreeView treeView, MoveBehavior moveBehavior)
        {
            TreeNode selectedNode = treeView.SelectedNode;

            if (selectedNode == null)
            {
                return(false);
            }
            else if (selectedNode.PrevNode == null)
            {
                if (moveBehavior == MoveBehavior.ThroughSimilarParents)
                {
                    TreeNode parentNode     = selectedNode.Parent;
                    TreeNode prevParentNode = parentNode == null ? null : parentNode.PrevNode;

                    return(parentNode != null && prevParentNode != null &&
                           parentNode.Tag is ITreeNode && prevParentNode.Tag is ITreeNode &&
                           parentNode.Tag.GetType() == prevParentNode.Tag.GetType());
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(true);
            }
        }
Пример #2
0
        /// <summary>
        /// Check that moving the selected tree node upwards is possible
        /// </summary>
        public static bool MoveUpSelectedNodeIsEnabled(this TreeView treeView, MoveBehavior moveBehavior)
        {
            var selectedNode = treeView.SelectedNode;

            if (selectedNode == null)
            {
                return(false);
            }

            if (selectedNode.PrevNode == null)
            {
                if (moveBehavior == MoveBehavior.ThroughSimilarParents)
                {
                    var parentNode     = selectedNode.Parent;
                    var prevParentNode = parentNode?.PrevNode;

                    return(parentNode != null && prevParentNode != null &&
                           (parentNode.Tag is ITreeNode && prevParentNode.Tag is ITreeNode &&
                            parentNode.Tag.GetType() == prevParentNode.Tag.GetType() ||
                            parentNode.Tag is TreeNodeTag tag1 && prevParentNode.Tag is TreeNodeTag tag2 &&
                            tag1.NodeType == tag2.NodeType));
                }

                return(false);
            }

            return(true);
        }
Пример #3
0
        /// <summary>
        /// Проверить, что перемещение выбранного узла дерева вниз возможно
        /// </summary>
        public static bool MoveDownSelectedNodeIsEnabled(this TreeView treeView, MoveBehavior moveBehavior)
        {
            TreeNode selectedNode = treeView.SelectedNode;

            if (selectedNode == null)
            {
                return(false);
            }
            else if (selectedNode.NextNode == null)
            {
                if (moveBehavior == MoveBehavior.ThroughSimilarParents)
                {
                    TreeNode parentNode     = selectedNode.Parent;
                    TreeNode nextParentNode = parentNode?.NextNode;

                    return(parentNode != null && nextParentNode != null &&
                           (parentNode.Tag is ITreeNode && nextParentNode.Tag is ITreeNode &&
                            parentNode.Tag.GetType() == nextParentNode.Tag.GetType() ||
                            parentNode.Tag is TreeNodeTag tag1 && nextParentNode.Tag is TreeNodeTag tag2 &&
                            tag1.NodeType == tag2.NodeType));
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(true);
            }
        }
Пример #4
0
 void Start()
 {
     m_rigidbody = GetComponent <Rigidbody>();
     m_movement  = GetComponent <MoveBehavior>();
     m_movement.SetRigidBody(m_rigidbody);
     m_rigidbody.drag = maxForce / maxSpeed;
 }
Пример #5
0
        // Update is called once per frame
        void Update()
        {
            if (Input.GetKey(KeyCode.DownArrow) ||
                Input.GetKey(KeyCode.S))
            {
                MoveBehavior.Down();
            }
            if (Input.GetKey(KeyCode.UpArrow) ||
                Input.GetKey(KeyCode.W))
            {
                MoveBehavior.Up();
            }
            if (Input.GetKey(KeyCode.LeftArrow) ||
                Input.GetKey(KeyCode.A))
            {
                MoveBehavior.Left();
            }
            if (Input.GetKey(KeyCode.RightArrow) ||
                Input.GetKey(KeyCode.D))
            {
                MoveBehavior.Right();
            }
            if (Input.GetKeyDown(KeyCode.Q))
            {
                MoveBehavior.RotateClockwise();
            }
            if (Input.GetKeyDown(KeyCode.E))
            {
                MoveBehavior.RotateCounterClockwise();
            }

            if (Input.GetKey(KeyCode.R))
            {
                //gameObject.GetComponent<CreateObject>().CreatePUNObject("Rooms/Room2/Room2");
                string prefabName = "Rooms/Room2/Room2";
                //objManager.Instantiate(prefabName);
                objManager.InstantiateOwnedObject(prefabName);
            }

            if (Input.GetKey(KeyCode.P))
            {
                GameObject go = GameObject.Find("Sphere");
                UWBNetworkingPackage.NetworkManager nm = GameObject.Find("NetworkManager").GetComponent <UWBNetworkingPackage.NetworkManager>();
                nm.UnRestrictOwnership(go);
            }

            if (Input.GetKey(KeyCode.O))
            {
                List <int> IDsToAdd = new List <int>();
                IDsToAdd.Add(2);
                UWBNetworkingPackage.NetworkManager nm = GameObject.Find("NetworkManager").GetComponent <UWBNetworkingPackage.NetworkManager>();
                GameObject go = GameObject.Find("Sphere");
                nm.WhiteListOwnership(go, IDsToAdd);
            }
        }
Пример #6
0
        /// <summary>
        /// Переместить выбранный узел дерева и элемент соответствующего списка вниз по дереву
        /// </summary>
        public static void MoveDownSelectedNode(this TreeView treeView, MoveBehavior moveBehavior)
        {
            TreeNode  selectedNode = treeView.SelectedNode;
            ITreeNode selectedObj  = selectedNode == null ? null : selectedNode.Tag as ITreeNode;

            if (selectedObj != null)
            {
                try
                {
                    treeView.BeginUpdate();

                    TreeNodeCollection nodes = treeView.GetChildNodes(selectedNode.Parent);
                    IList list = selectedObj.Parent.Children;

                    int index    = selectedNode.Index;
                    int newIndex = index + 1;

                    if (newIndex < nodes.Count)
                    {
                        nodes.RemoveAt(index);
                        nodes.Insert(newIndex, selectedNode);

                        list.RemoveAt(index);
                        list.Insert(newIndex, selectedObj);

                        treeView.SelectedNode = selectedNode;
                    }
                    else if (moveBehavior == MoveBehavior.ThroughSimilarParents)
                    {
                        TreeNode parentNode     = selectedNode.Parent;
                        TreeNode nextParentNode = parentNode == null ? null : parentNode.NextNode;

                        if (parentNode != null && nextParentNode != null &&
                            parentNode.Tag is ITreeNode && nextParentNode.Tag is ITreeNode &&
                            parentNode.Tag.GetType() == nextParentNode.Tag.GetType())
                        {
                            // изменение родителя перемещаемого узла
                            nodes.RemoveAt(index);
                            nextParentNode.Nodes.Insert(0, selectedNode);

                            ITreeNode nextParentObj = (ITreeNode)nextParentNode.Tag;
                            list.RemoveAt(index);
                            nextParentObj.Children.Insert(0, selectedObj);
                            selectedObj.Parent = nextParentObj;

                            treeView.SelectedNode = selectedNode;
                        }
                    }
                }
                finally
                {
                    treeView.EndUpdate();
                }
            }
        }
Пример #7
0
        /// <summary>
        /// Переместить выбранный узел дерева и элемент соответствующего списка вверх по дереву
        /// </summary>
        public static void MoveUpSelectedNode(this TreeView treeView, MoveBehavior moveBehavior)
        {
            TreeNode selectedNode = treeView.SelectedNode;

            if (GetRelatedObject(selectedNode) is ITreeNode selectedObj)
            {
                try
                {
                    treeView.BeginUpdate();

                    TreeNodeCollection nodes = treeView.GetChildNodes(selectedNode.Parent);
                    IList list = selectedObj.Parent.Children;

                    int index    = selectedNode.Index;
                    int newIndex = index - 1;

                    if (newIndex >= 0)
                    {
                        nodes.RemoveAt(index);
                        nodes.Insert(newIndex, selectedNode);

                        list.RemoveAt(index);
                        list.Insert(newIndex, selectedObj);

                        treeView.SelectedNode = selectedNode;
                    }
                    else if (moveBehavior == MoveBehavior.ThroughSimilarParents)
                    {
                        TreeNode parentNode     = selectedNode.Parent;
                        TreeNode prevParentNode = parentNode == null ? null : parentNode.PrevNode;

                        if (parentNode != null && prevParentNode != null &&
                            parentNode.Tag is ITreeNode && prevParentNode.Tag is ITreeNode &&
                            parentNode.Tag.GetType() == prevParentNode.Tag.GetType())
                        {
                            // изменение родителя перемещаемого узла
                            nodes.RemoveAt(index);
                            prevParentNode.Nodes.Add(selectedNode);

                            ITreeNode prevParentObj = (ITreeNode)prevParentNode.Tag;
                            list.RemoveAt(index);
                            prevParentObj.Children.Add(selectedObj);
                            selectedObj.Parent = prevParentObj;

                            treeView.SelectedNode = selectedNode;
                        }
                    }
                }
                finally
                {
                    treeView.EndUpdate();
                }
            }
        }
Пример #8
0
    public override BehaviorTree Create()
    {
        BehaviorTree behaviorTree = new BehaviorTree();

        ContinueBehavior continueMove = new ContinueBehavior(-1);
        MoveBehavior     moveBehavior = new MoveBehavior();

        MoveBehavior.MoveBehaviorInfo moveBehaviorInfo = new MoveBehavior.MoveBehaviorInfo();
        moveBehaviorInfo.speed  = mapObject.GetAttribute <MapObjectArtAttribute>().MaxSpeed + 0.1f;
        moveBehaviorInfo.dir    = Vector3.right;
        moveBehaviorInfo.targer = mapObject;
        moveBehavior.Enviorment = moveBehaviorInfo;
        continueMove.AddBehavior(moveBehavior);
        behaviorTree.AddBehavior("move", continueMove, BehaviorTree.NodeType.ParallelOr);

        ContinueBehavior    continueTouchZombie = new ContinueBehavior(-1);
        TouchZombieBehavior touchZombieBehavior = new TouchZombieBehavior();

        TouchZombieBehavior.TouchZombieBehaviorInfo touchZombieInfo = new TouchZombieBehavior.TouchZombieBehaviorInfo();
        touchZombieInfo.dir            = Vector3.right;
        touchZombieInfo.distance       = 1f;
        touchZombieInfo.mapObject      = mapObject;
        touchZombieBehavior.Enviorment = touchZombieInfo;
        continueTouchZombie.AddBehavior(touchZombieBehavior);
        behaviorTree.AddBehavior("TouchZombie", continueTouchZombie, BehaviorTree.NodeType.ParallelOr);


        ContinueBehavior  continueTouchWall = new ContinueBehavior(-1);
        TouchWallBehavior touchWallBehavior = new TouchWallBehavior();

        TouchWallBehavior.TouchBehaviorInfo touchWallInfo = new TouchWallBehavior.TouchBehaviorInfo();
        touchWallInfo.dir            = Vector3.right;
        touchWallInfo.distance       = 1f;
        touchWallInfo.mapObject      = mapObject;
        touchWallBehavior.Enviorment = touchWallInfo;
        continueTouchWall.AddBehavior(touchWallBehavior);
        behaviorTree.AddBehavior("touchWall", continueTouchWall, BehaviorTree.NodeType.Serial);


        SingleNodeBehavior   singleNodeBehavior  = new SingleNodeBehavior();
        BulletAttackBehavior plantAttackBehavior = new BulletAttackBehavior();

        BulletAttackBehavior.BulletAttackBehaviorInfo plantAttackBehaviorInfo = new BulletAttackBehavior.BulletAttackBehaviorInfo();
        plantAttackBehaviorInfo.Attack    = 1;
        plantAttackBehaviorInfo.mapObject = mapObject;
        plantAttackBehavior.Enviorment    = plantAttackBehaviorInfo;
        singleNodeBehavior.AddBehavior(plantAttackBehavior);
        behaviorTree.AddBehavior("attack", singleNodeBehavior, BehaviorTree.NodeType.Serial);



        return(behaviorTree);
    }
Пример #9
0
        /// <summary>
        /// Move the selected tree node and the corresponding list item up the tree
        /// </summary>
        public static void MoveUpSelectedNode(this TreeView treeView, MoveBehavior moveBehavior)
        {
            var selectedNode = treeView.SelectedNode;

            if (!(GetRelatedObject(selectedNode) is ITreeNode selectedObj))
            {
                return;
            }

            try {
                treeView.BeginUpdate();

                var nodes = treeView.GetChildNodes(selectedNode.Parent);
                var list  = selectedObj.Parent.Children;

                int index    = selectedNode.Index;
                int newIndex = index - 1;

                if (newIndex >= 0)
                {
                    nodes.RemoveAt(index);
                    nodes.Insert(newIndex, selectedNode);

                    list.RemoveAt(index);
                    list.Insert(newIndex, selectedObj);

                    treeView.SelectedNode = selectedNode;
                }
                else if (moveBehavior == MoveBehavior.ThroughSimilarParents)
                {
                    var parentNode     = selectedNode.Parent;
                    var prevParentNode = parentNode?.PrevNode;

                    if (parentNode != null && prevParentNode != null &&
                        parentNode.Tag is ITreeNode && prevParentNode.Tag is ITreeNode &&
                        parentNode.Tag.GetType() == prevParentNode.Tag.GetType())
                    {
                        // change the parent of the node being moved
                        nodes.RemoveAt(index);
                        prevParentNode.Nodes.Add(selectedNode);

                        var prevParentObj = (ITreeNode)prevParentNode.Tag;
                        list.RemoveAt(index);
                        prevParentObj.Children.Add(selectedObj);
                        selectedObj.Parent = prevParentObj;

                        treeView.SelectedNode = selectedNode;
                    }
                }
            } finally {
                treeView.EndUpdate();
            }
        }
Пример #10
0
    void Awake()
    {
        // Add event subscription with callback
        GameManager.onGameStartEvent  += EnablePlayer;
        GameManager.onKnightsWinEvent += Celebrate;
        animator      = gameObject.GetComponent <Animator>();
        healthManager = GetComponent <HealthManager>();
        inputManager  = GetComponent <KnightInputManager>();
        soundManager  = GetComponent <SoundManager>();

        // Get Behaviors
        moveBehavior       = GetComponent <MoveBehavior>();
        attackBehavior     = GetComponent <AttackBehavior>();
        blockBehavior      = GetComponent <BlockBehavior>();
        jumpBehavior       = GetComponent <JumpBehavior>();
        takeDamageBehavior = GetComponent <TakeDamageBehavior>();

        //Invoke("Die", 5);
    }
Пример #11
0
        // Update is called once per frame
        void Update()
        {
            if (Input.GetKey(KeyCode.DownArrow) ||
                Input.GetKey(KeyCode.S))
            {
                MoveBehavior.Down();
            }
            if (Input.GetKey(KeyCode.UpArrow) ||
                Input.GetKey(KeyCode.W))
            {
                MoveBehavior.Up();
            }
            if (Input.GetKey(KeyCode.LeftArrow) ||
                Input.GetKey(KeyCode.A))
            {
                MoveBehavior.Left();
            }
            if (Input.GetKey(KeyCode.RightArrow) ||
                Input.GetKey(KeyCode.D))
            {
                MoveBehavior.Right();
            }
            if (Input.GetKeyDown(KeyCode.Q))
            {
                MoveBehavior.RotateClockwise();
            }
            if (Input.GetKeyDown(KeyCode.E))
            {
                MoveBehavior.RotateCounterClockwise();
            }

            if (Input.GetKey(KeyCode.R))
            {
                //gameObject.GetComponent<CreateObject>().CreatePUNObject("Rooms/Room2/Room2");
                string prefabName = "Rooms/Room2/Room2";
                objManager.Instantiate(prefabName);
            }
        }
Пример #12
0
    public void Setup(CharacterSetting characterSetting, CharacterType characterType, Vector2 spawnPos, int direction)
    {
        characterInstance = GameObject.Instantiate(characterSetting.prefab, spawnPos, Quaternion.identity);
        moveBehavior      = characterInstance.GetComponent <MoveBehavior>();
        healthBehavior    = characterInstance.GetComponent <HealthBehavior>();
        attackBehavior    = characterInstance.GetComponent <AttackBehavior>();
        moveBehavior.Setup(characterSetting.speed, direction);
        healthBehavior.Setup(characterSetting.hp);
        switch (characterType)
        {
        case CharacterType.ENEMY:
            characterInstance.gameObject.layer = LayerMask.NameToLayer("Enemy");
            characterInstance.GetComponent <SortingGroup>().sortingLayerID = SortingLayer.NameToID("Enemy");
            attackBehavior.Setup(characterSetting.attack, LayerMask.NameToLayer("Player"));
            break;

        case CharacterType.PLAYER:
            characterInstance.gameObject.layer = LayerMask.NameToLayer("Player");
            characterInstance.GetComponent <SortingGroup>().sortingLayerID = SortingLayer.NameToID("Player");
            attackBehavior.Setup(characterSetting.attack, LayerMask.NameToLayer("Enemy"));
            break;
        }
    }
Пример #13
0
 public WallBlock(RotateBehavior rotateBehavior, MoveBehavior moveBehavior) : base(rotateBehavior, moveBehavior)
 {
 }
Пример #14
0
        // Update is called once per frame
        void Update()
        {
            /*
             * if (Input.GetKey(KeyCode.Q))
             * {
             *  MoveBehavior.Up();
             * }
             *
             * if (Input.GetKey(KeyCode.E))
             * {
             *  MoveBehavior.Down();
             * }
             *
             * if (Input.GetKey(KeyCode.S))
             * {
             *  MoveBehavior.Back();
             * }
             * if(Input.GetKey(KeyCode.W))
             * {
             *  MoveBehavior.Forward();
             * }
             * if(Input.GetKey(KeyCode.A))
             * {
             *  MoveBehavior.Left();
             * }
             * if(Input.GetKey(KeyCode.D))
             * {
             *  MoveBehavior.Right();
             * }
             *
             *
             * if (Input.GetKey(KeyCode.H))
             * {
             *  MoveBehavior.RotateClockwise();
             * }
             * if (Input.GetKey(KeyCode.K))
             * {
             *  MoveBehavior.RotateCounterClockwise();
             * }
             *
             * if (Input.GetKey(KeyCode.I))
             * {
             *  MoveBehavior.RotateRight();
             * }
             * if (Input.GetKey(KeyCode.Y))
             * {
             *  MoveBehavior.RotateLeft();
             * }
             *
             * if (Input.GetKey(KeyCode.U))
             * {
             *  MoveBehavior.RotateForward();
             * }
             * if (Input.GetKey(KeyCode.J))
             * {
             *  MoveBehavior.RotateBackward();
             * }
             *
             *
             *
             * if (Input.GetKey(KeyCode.R))
             * {
             *  MoveBehavior.ScaleUp();
             * }
             * if (Input.GetKey(KeyCode.F))
             * {
             *  MoveBehavior.ScaleDown();
             * }
             *
             */


            if (Input.GetKey(KeyCode.Backspace))
            {
                MoveBehavior.Delete();
            }

            if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.C))
            {
                MoveBehavior.Copy();
            }
        }
Пример #15
0
 public ImageDataBlock(RotateBehavior rotateBehavior, MoveBehavior moveBehavior, ColorMixingBehavior colorMixingBehavior) : base(rotateBehavior, moveBehavior)
 {
     this.colorMixingBehavior = colorMixingBehavior;
 }
Пример #16
0
 public void Move()
 {
     MoveBehavior.Move(this);
 }
Пример #17
0
 public SamplePlayableBlock(RotateBehavior rotateBehavior, MoveBehavior moveBehavior, ColorMixingBehavior colorMixingBehavior)
     : base(rotateBehavior, moveBehavior, colorMixingBehavior)
 {
 }
Пример #18
0
 void OnEnable()
 {
     m_moveBehavior = GetComponent<MoveBehavior> ();
 }
Пример #19
0
	void Awake () {
		inputState = GetComponent<InputState> ();
		movement = GetComponent<MoveBehavior> ();
		attack = GetComponent<AttackBehavior> ();
		animator = GetComponent<Animator> ();
	}
Пример #20
0
 public Player(MoveBehavior moveBehavior, List <InteractBehavior> interactBehavior)
 {
     this.moveBehavior     = moveBehavior;
     this.interactBehavior = interactBehavior;
 }
Пример #21
0
        /// <summary>
        /// Проверить, что перемещение выбранного узла дерева вверх возможно
        /// </summary>
        public static bool MoveUpSelectedNodeIsEnabled(this TreeView treeView, MoveBehavior moveBehavior)
        {
            TreeNode selectedNode = treeView.SelectedNode;

            if (selectedNode == null)
            {
                return false;
            }
            else if (selectedNode.PrevNode == null)
            {
                if (moveBehavior == MoveBehavior.ThroughSimilarParents)
                {
                        TreeNode parentNode = selectedNode.Parent;
                        TreeNode prevParentNode = parentNode == null ? null : parentNode.PrevNode;

                        return parentNode != null && prevParentNode != null &&
                            parentNode.Tag is ITreeNode && prevParentNode.Tag is ITreeNode &&
                            parentNode.Tag.GetType() == prevParentNode.Tag.GetType();
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return true;
            }
        }
Пример #22
0
 public Tile(TileType type, MoveBehavior mvb)
 {
     this.type     = type;
     moveBehaviour = mvb;
 }
Пример #23
0
 public MoveableTile(TileType type, MoveBehavior mvb) : base(type, mvb)
 {
 }
Пример #24
0
    public override BehaviorTree Create()
    {
        BehaviorTree behaviorTree = new BehaviorTree();

        ContinueBehavior continueMove = new ContinueBehavior(-1);
        MoveBehavior     moveBehavior = new MoveBehavior();

        MoveBehavior.MoveBehaviorInfo moveBehaviorInfo = new MoveBehavior.MoveBehaviorInfo();
        moveBehaviorInfo.speed  = mapObject.GetAttribute <MapObjectArtAttribute>().MaxSpeed + 0.1f;
        moveBehaviorInfo.dir    = Vector3.left;
        moveBehaviorInfo.targer = mapObject;
        moveBehavior.Enviorment = moveBehaviorInfo;
        continueMove.AddBehavior(moveBehavior);
        behaviorTree.AddBehavior("move", continueMove, BehaviorTree.NodeType.ParallelOr);


        ContinueBehavior  continueTouchWall = new ContinueBehavior(-1);
        TouchWallBehavior touchWallBehavior = new TouchWallBehavior();

        TouchWallBehavior.TouchBehaviorInfo touchWallInfo = new TouchWallBehavior.TouchBehaviorInfo();
        touchWallInfo.dir            = Vector3.left;
        touchWallInfo.distance       = 1.6f;
        touchWallInfo.mapObject      = mapObject;
        touchWallBehavior.Enviorment = touchWallInfo;
        continueTouchWall.AddBehavior(touchWallBehavior);
        behaviorTree.AddBehavior("touchWall", continueTouchWall, BehaviorTree.NodeType.ParallelOr);


        ContinueBehavior   continueTouchZombie = new ContinueBehavior(-1);
        TouchPlantBehavior touchPlantBehavior  = new TouchPlantBehavior();

        TouchPlantBehavior.TouchBehaviorInfo touchPlantInfo = new TouchPlantBehavior.TouchBehaviorInfo();
        touchPlantInfo.dir            = Vector3.left;
        touchPlantInfo.distance       = 1.6f;
        touchPlantInfo.mapObject      = mapObject;
        touchPlantBehavior.Enviorment = touchPlantInfo;
        continueTouchZombie.AddBehavior(touchPlantBehavior);
        behaviorTree.AddBehavior("TouchPlant", continueTouchZombie, BehaviorTree.NodeType.Serial);


        IntervalBehavior     intervalBehavior     = new IntervalBehavior(5, -1);
        ZombieAttackBehavior zombieAttackBehavior = new ZombieAttackBehavior();

        ZombieAttackBehavior.ZombieAttackBehaviorInfo zombieAttackInfo = new ZombieAttackBehavior.ZombieAttackBehaviorInfo();
        zombieAttackInfo.mapObject      = mapObject;
        zombieAttackInfo.Attack         = 1;
        zombieAttackBehavior.Enviorment = zombieAttackInfo;
        intervalBehavior.AddBehavior(zombieAttackBehavior);
        behaviorTree.AddBehavior("attack", intervalBehavior, BehaviorTree.NodeType.Serial);


        SingleNodeBehavior     singleNodeBehavior     = new SingleNodeBehavior();
        AddDailyActionBehavior addDailyActionBehavior = new AddDailyActionBehavior();

        AddDailyActionBehavior.AddDailyActionBehaviorInfo addDailyActionBehaviorInfo = new AddDailyActionBehavior.AddDailyActionBehaviorInfo();
        addDailyActionBehaviorInfo.mapObject   = mapObject;
        addDailyActionBehaviorInfo.dailyAction = new TriggerZombieMoveDailyAction();
        addDailyActionBehavior.Enviorment      = addDailyActionBehaviorInfo;
        singleNodeBehavior.AddBehavior(addDailyActionBehavior);
        behaviorTree.AddBehavior("daily", singleNodeBehavior, BehaviorTree.NodeType.Serial);


        return(behaviorTree);
    }
Пример #25
0
 void Start()
 {
     m_rigidbody = GetComponent<Rigidbody>();
     m_movement = GetComponent<MoveBehavior>();
     m_movement.SetRigidBody( m_rigidbody );
     m_rigidbody.drag = maxForce / maxSpeed;
 }
Пример #26
0
        /// <summary>
        /// Переместить выбранный узел дерева и элемент соответствующего списка вверх по дереву
        /// </summary>
        public static void MoveUpSelectedNode(this TreeView treeView, MoveBehavior moveBehavior)
        {
            TreeNode selectedNode = treeView.SelectedNode;
            ITreeNode selectedObj = selectedNode == null ? null : selectedNode.Tag as ITreeNode;

            if (selectedObj != null)
            {
                try
                {
                    treeView.BeginUpdate();

                    TreeNodeCollection nodes = treeView.GetChildNodes(selectedNode.Parent);
                    IList list = selectedObj.Parent.Children;

                    int index = selectedNode.Index;
                    int newIndex = index - 1;

                    if (newIndex >= 0)
                    {
                        nodes.RemoveAt(index);
                        nodes.Insert(newIndex, selectedNode);

                        list.RemoveAt(index);
                        list.Insert(newIndex, selectedObj);

                        treeView.SelectedNode = selectedNode;
                    }
                    else if (moveBehavior == MoveBehavior.ThroughSimilarParents)
                    {
                        TreeNode parentNode = selectedNode.Parent;
                        TreeNode prevParentNode = parentNode == null ? null : parentNode.PrevNode;

                        if (parentNode != null && prevParentNode != null &&
                            parentNode.Tag is ITreeNode && prevParentNode.Tag is ITreeNode &&
                            parentNode.Tag.GetType() == prevParentNode.Tag.GetType())
                        {
                            // изменение родителя перемещаемого узла
                            nodes.RemoveAt(index);
                            prevParentNode.Nodes.Add(selectedNode);

                            ITreeNode prevParentObj = (ITreeNode)prevParentNode.Tag;
                            list.RemoveAt(index);
                            prevParentObj.Children.Add(selectedObj);
                            selectedObj.Parent = prevParentObj;

                            treeView.SelectedNode = selectedNode;
                        }
                    }
                }
                finally
                {
                    treeView.EndUpdate();
                }
            }
        }
Пример #27
0
 /// <summary>
 /// Default constructor.
 /// </summary>
 public Entity()
 {
     _AttackBehavior = new AttackBehavior();
     _MoveBehavior   = new MoveBehavior();
     Forward         = new Vector2(0, 1); // Default to facing down
 }
Пример #28
0
 private void Awake()
 {
     objManager    = GameObject.Find("ObjectInteractionManager").GetComponent <ObjectInteractionManager>();
     _moveBehavior = objManager.RegisterBehavior <MoveBehavior>();
 }
Пример #29
0
 public SimpleBlock(RotateBehavior rotateBehavior, MoveBehavior moveBehavior)
 {
     this.rotateBehavior = rotateBehavior;
     this.moveBehavior   = moveBehavior;
 }
Пример #30
0
 public Move(MoveBehavior movebehavior)
 {
     this.movebehavior = movebehavior;
 }
Пример #31
0
 public void setMoveBehavior(MoveBehavior moveBehavior)
 {
     this.moveBehavior = moveBehavior;
 }
Пример #32
0
 public MoveAttack(MoveBehavior behavior) : base()
 {
     this.MoveBehavior = behavior;
 }
Пример #33
0
 public void Move() => MoveBehavior.Move(this);