Example #1
0
        private void Shift(Entity hitEntity)
        {
            Vector3 fleeHitEntityDirection = Quaternion.Euler(0, -90, 0) * -Lortedo.Utilities.Math.Direction(Entity.transform.position, hitEntity.transform.position);

            ActionMoveToPosition action = new ActionMoveToPosition(Entity, transform.position + fleeHitEntityDirection * _shiftData.ShiftLength);

            Entity.SetAction(action, false);
        }
Example #2
0
        public static void OrderMoveToPosition(Vector3 destination)
        {
            bool addToActionQueue = Input.GetKey(additiveKeycode);

            bool hasEntityMove = false;
            bool hasEntitySetAnchorPosition = false;

            foreach (SelectionManager.SelectionGroup group in SelectionManager.Instance.SpartanGroups)
            {
                foreach (var entity in group.unitsSelected)
                {
                    if (entity.Data.CanMove)
                    {
                        var actionMove = new ActionMoveToPosition(entity, destination);
                        entity.SetAction(actionMove, addToActionQueue);

                        hasEntityMove = true;
                    }
                    else
                    {
                        entity.GetCharacterComponent <EntityUnitSpawner>().SetAnchorPosition(destination);
                        hasEntitySetAnchorPosition = true;
                    }
                }
            }

            if (hasEntityMove)
            {
                OnOrder_MoveToPosition?.Invoke(destination);
            }
            if (hasEntitySetAnchorPosition)
            {
                OnOrder_SetAnchorPosition?.Invoke(destination);
            }

            OnOrderGiven?.Invoke();
        }
        private void MoveEntityToAnchor(Entity entity)
        {
            Action moveToAnchorAction = new ActionMoveToPosition(entity, _anchorPosition);

            entity.SetAction(moveToAnchorAction);
        }