dnd 5e – Can an Echo Knight fighter’s Manifest Echo move through another creature’s space?

The echo’s movement in relation to other creatures is governed by a slightly obscure set of rules: The echo is not a creature, but it occupies its space, which is an attribute normally only ascribed to creatures. The rules which govern how space is occupied refer explicitly to creatures and movement, and do not map neatly on to non-creatures with no movement speed.

In this answer, I make three assertions about the echo’s movement, each of which is less certain than the one preceding:

  1. The echo cannot move through the space of a hostile creature (unless it’s much bigger or smaller than the echo)
  2. The echo can move through the space of a non-hostile creature (or a very big/small hostile creature) without penalty
  3. The echo cannot ‘end its move’ in another creature’s space (an imaginative ruling because the echo does not have a ‘move’ to end)

I’ll try to justify these below, but in so doing I’ll be making the best of a bad job: the rules for the echo’s movement are poorly written, and require imaginative interpretation. I’ll illustrate this by going through some of the factors which complicate the ruling.

Complicating factors

There are several factors which suggest that the echo’s movement might not be inhibited by other creatures:

1. The Echo isn’t a creature

The basic rules impose the following restrictions on player movement, which are assumed to extend to all creatures, except in the case of exceptions:

You can move through a nonhostile creature’s space. In contrast, you can move through a hostile creature’s space only if the creature is at least two sizes larger or smaller than you. Remember that another creature’s space is difficult terrain for you

Since the echo isn’t a creature, it’s not immediately obvious that these rules have any bearing on it, or for other creatures wishing to move through its space.

2. The Echo doesn’t have a movement speed

None of the rules for movement, including the above, can be applied directly to the echo, because the echo does not ‘move’ in the way that creatures move. It has no speed of any kind, and moves ‘up to 30 feet in any direction’ when mentally instructed to do so by the Echo Knight. This movement includes upwards movement and is more akin to a caster moving their Mage Hand than to a creature expending their movement to traverse space in a physical way.

3. The echo is an image

Even if the Echo weren’t a creature and didn’t have a speed, it might still be constrained by the common sense adjudication that corporeal bodies cannot pass through one another freely. The echo, however is:

a magical, translucent, gray image

One might argue that a ‘magical image’ can pass through pretty much anything. There’s not a great deal of clarity here because the echo has an AC and no resistances/immunities. It’s an image you can hit with a stick.

But there is one big restriction on the echo’s movement

All of the above is overwritten by the ruling that the echo:

… is the same size as you, and it occupies its space.

‘Occupy’ and ‘space’ here are not meant in their most general sense, but are mechanical terms usually reserved for creatures. So whilst the echo is not a creature, it inherits the capacity of creatures to occupy space, and the restrictions of space-occupation which come with them. Whilst these rules refer explicitly to creatures being unable to occupy one another’s space, they are extended to the echo because the echo is a space-occupier even though it’s not a creature. This is a difficult edge case brought about by poorly written rules.

What does this mean in practise?

Implications of this constraint

The echo cannot move through the space of a hostile creature (unless it’s much bigger or smaller)

Creatures, which occupy space,

can move through a Hostile creature’s space only if the creature is at least two sizes larger or smaller than (they are)

Since the echo occupies space, it follows that this restriction is applied to the echo’s movement

The echo can move through a non-hostile creature’s space (or the space of a much bigger or smaller hostile creature)

This is where it starts to get a little messy. The rules for players state that

another creature’s space is Difficult Terrain for you

Difficult terrain means double movement cost. The echo does not have a speed and does not use speed to move, so ‘difficult terrain’ is meaningless. Because:

  • Space-occupiers can enter the space of another creature
  • The echo is has no speed and is thus unaffected by difficult terrain
    The echo simply moves through the spaces of passable creatures without penalty

The echo cannot end its movement in another creature’s space

This is where it really starts to break down. The echo does not expend movement, and so cannot ‘end its movement’ anywhere. I would argue here for the what I think is the most intuitive ruling: The Echo Knight cannot stop moving their echo in the space of another creature, and is only permitted to move the echo through another creature’s space.

unity – How can i add to the waypoints multiple objects to move between the waypoints?

unity – How can i add to the waypoints multiple objects to move between the waypoints? – Game Development Stack Exchange

magento2 – How to move terms & conditions checkout just before place order button in magento 2

I want to move term & conditions checkbox just before Place order button in Magento 2.

I have tried this code in checkout_index_index.xml

        <referenceBlock name="checkout.root">
        <arguments>
            <argument name="jsLayout" xsi:type="array">
                <item name="components" xsi:type="array">
                    <item name="checkout" xsi:type="array">
                        <item name="children" xsi:type="array">
                            <item name="steps" xsi:type="array">
                                <item name="children" xsi:type="array">
                                    <item name="billing-step" xsi:type="array">
                                        <item name="children" xsi:type="array">
                                            <item name="payment" xsi:type="array">
                                                <item name="children" xsi:type="array">
                                                    <item name="afterMethods" xsi:type="array">
                                                        <item name="children" xsi:type="array">
                                                            <item name="agreements" xsi:type="array">
                                                                <item name="component" xsi:type="string">Magento_CheckoutAgreements/js/view/checkout-agreements</item>
                                                                <item name="sortOrder" xsi:type="string">100</item>
                                                                <item name="displayArea" xsi:type="string">before-place-order</item>
                                                                <item name="dataScope" xsi:type="string">checkoutAgreements</item>
                                                                <item name="provider" xsi:type="string">checkoutProvider</item>
                                                            </item>
                                                            <item name="agreements-validator" xsi:type="array">
                                                                <item name="component" xsi:type="string">Magento_CheckoutAgreements/js/view/agreement-validation</item>
                                                            </item>
                                                        </item>
                                                    </item>
                                                </item>
                                            </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </item>
                </item>
            </argument>
        </arguments>
    </referenceBlock>

But it’s just moved checkbox to last in the list of other options like Add a gift, Sign up for newsletter etc.

Current position:
enter image description here

How Can I move it just before Place order and Just After discount block.

photo editing – How to move mutluple layers to another tab in Photoshop

I usually don’t work with photography, so I apologize if my question sounds stupid, but I am doing a small project, and I need help with Photoshop and layers.

I have one image with multiple different layers and groups. I would like to save everything as one and move it to a new tab in the same Photoshop window. Is it possible to use the project with layers in the second tab as a whole, but if I modify something on the original tab, that the copied “image” on the second tab is automatically updated, so I don’t need to save the first image every time and manually import it to the second one? Or is there any other solution for this?

Thanks in advance

magento2 – How to move “The shipping and billing addresses are the same” checkbox to billing step in Magento 2

In my website,On one page checkout, the “My billing and shipping address are the same” section is showing after the payment method. I want it to show below the Billing address. The payment method will stay at its own place. I just want to move the checkbox into the billing address section.
How can I achieve this?
enter image description here

dnd 5e – Can another creature move through the Echo Knight fighter’s Manifest Echo’s space?

It is unclear, so the table needs to decide

Unfortunately, this mechanic of the Echo Knight is incredibly unclear as to how to adjudicate these things for moving it. I have reviewed other potential similar mechanic like spiritual weapon or telekinesis, but none of those have the same properties of the Echo Knight.

Which leaves us with a giant shrug as to what to do. In these cases, it comes down to the player talking to the DM about what they feel is fair, reasonable, and fun. There is no ‘wrong’ answer here, but you should think about the potential consequences for each decision.

Looking at how this might affect gameplay of movement, positioning, and battlefield control, it’s important to think about the edge cases – but you’re not going to cover them all. And that’s okay! When they come up, discuss together and be reasonable. If the DM provides an unhappy result, table the argument until after the game and discuss why you didn’t like it and what you think a good compromise could be.

Prepare in advance

Given the lack of clarity about this subclass in general, if a player is considering choosing it then they should discuss these issues with the DM prior to playing. Making sure everyone understands the gray areas, what ambiguities need to be agreed on, and that judgments may come up that require an immediate ruling will go a long way to to mitigating any unhappiness and setting the expectation that this subclass is a little loosey goosey.

computer architecture – The following problem Decidable? If a Turing Machine M, on input w, will M ever move its read/write head to the left?

Decidable? If a Turing Machine M, on input w, will M ever move its
read/write head to the left?

I think the problem is decidable. We simulate M for |w| steps. Either it has moved to the left (accept) or otherwise, M never moves left on w (reject). In the latter case, M is making a single pass on the string. It eventually finishes reading w and starts reading blanks/spaces. We simply look at which state q M is in when it finishes reading w and look at the subgraph of states that M visits on reading spaces. None of these should ever involve moving to the left. Thus, we reject it.

Does my logic make sense?

computer architecture – Decidable? If a Turing Machine M, on input w, will M ever move its read/write head to the left?

  1. If a Turing Machine M, on input w, will M ever move its read/write head to the left?
  2. Determine if this violates Rice’s Theorem.

1.
I think the answer for Q1 is decidable because we can make a Turing Machine that decides the problem as follows:
Step 1: If M halts on w and it never moved left, reject it.
Step 2: If M ever moves left, halt and accept.
Step 3: If M loops forever (some configuration repeats) then reject it
Step 4: Otherwise, reject (M moves right, eventually encounters a blank symbol, and moves right forever, which means that M will never move left. So, reject it.)

2.
We proved that for some language L L(M) is decidable. So, we can say that L(M) is Turing-recognizable. The property ‘L(M) is Turing-recognizable’ is trivial because there does not exist a Turing-recognizable L2 such that L2 does not belong to L. Thus, our problem is decidable with the following decider:
“Step 2: If M ever moves left, halt and accept.”
, and this does not violate Rice’s Theorem.

Does my logic to solve this problem make sense?

unity – How can I make the transform to rotate facing the moving direction the transform move?

The goal is to make the transform to rotate smooth when the moving direction is change.

In this case there are some cubes and the cubes facing direction the blue axis is not the same as the transform move. The transform is moving up then back down but never rotate because he is facing the cubes directions. but I want that the transform will rotate facing the direction he is moving so on the start he should rotate first time facing up then at the end he should rotate facing down.

not when the transform get to the last waypoint but when he change direction.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

public class MoveOnCurvedLines : MonoBehaviour
{
    public LineRenderer lineRenderer;
    public float speed;
    public bool go = false;
    public bool moveToFirstPositionOnStart = false;
    public float rotSpeed;
    public bool random = false;
    public int currentCurvedLinePointIndex;

    private Vector3() positions;
    private Vector3() pos;
    private int index = 0;
    private bool goForward = true;
    private List<GameObject> curvedLinePoints = new List<GameObject>();
    private int numofposbetweenpoints;
    private bool getPositions = false;
    int randomIndex;
    int curvedPointsIndex;

    // Start is called before the first frame update
    void Start()
    {
        curvedLinePoints = GameObject.FindGameObjectsWithTag("Curved Line Point").ToList();

        if (curvedLinePoints != null && curvedLinePoints.Count > 0)
        {
            transform.rotation = curvedLinePoints(1).transform.rotation;
        }

        if (random)
            GetNewRandomIndex();
    }

    Vector3() GetLinePointsInWorldSpace()
    {
        positions = new Vector3(lineRenderer.positionCount);
        //Get the positions which are shown in the inspector 
        lineRenderer.GetPositions(positions);


        //the points returned are in world space
        return positions;
    }

    // Update is called once per frame
    void Update()
    {
        if (lineRenderer.positionCount > 0 && getPositions == false)
        {
            pos = GetLinePointsInWorldSpace();
            numofposbetweenpoints = pos.Length / curvedLinePoints.Count;

            if (moveToFirstPositionOnStart == true)
            {
                transform.position = pos(index);
            }

            getPositions = true;
        }

        if (go == true && lineRenderer.positionCount > 0)
        {
            Move();

            transform.localRotation = Quaternion.RotateTowards(transform.localRotation, curvedLinePoints(c).transform.localRotation, Time.deltaTime * rotSpeed);
        }

        var dist = Vector3.Distance(transform.position, curvedLinePoints(curvedPointsIndex).transform.position);
        if (dist < 0.1f)
        {
            if (curvedPointsIndex < curvedLinePoints.Count - 1)
                curvedPointsIndex++;

            currentCurvedLinePointIndex = curvedPointsIndex;
        }
    }

    int counter = 0;
    int c = 1;
    void Move()
    {
        Vector3 newPos = transform.position;
        float distanceToTravel = speed * Time.deltaTime;

        bool stillTraveling = true;
        while (stillTraveling)
        {
            Vector3 oldPos = newPos;

            newPos = Vector3.MoveTowards(oldPos, pos(index), distanceToTravel);

            distanceToTravel -= Vector3.Distance(newPos, oldPos);
            if (newPos == pos(index)) // Vector3 comparison is approximate so this is ok
            {
                // when you hit a waypoint:
                if (goForward)
                {
                    bool atLastOne = index >= pos.Length - 1;
                    if (!atLastOne)
                    {
                        index++;
                        counter++;
                        if (counter == numofposbetweenpoints)
                        {
                            c++;
                            
                            counter = 0;
                        }
                        if (c == curvedLinePoints.Count - 1)
                        {
                            c = 0;
                        }
                    }
                    else { index--; goForward = false; }
                }
                else
                { // going backwards:
                    bool atFirstOne = index <= 0;
                    if (!atFirstOne)
                    {
                        index--;

                        counter++;
                        if (counter == numofposbetweenpoints)
                        {
                            c++;
                            
                            counter = 0;
                        }
                        if (c == curvedLinePoints.Count - 1)
                        {
                            c = 0;
                        }
                    }
                    else { index++; goForward = true; }
                }
            }
            else
            {
                stillTraveling = false;
            }
        }

        transform.position = newPos;
    }

    void GetNewRandomIndex()
    {
        randomIndex = UnityEngine.Random.Range(0, curvedLinePoints.Count);
    }
}

This is the line for the rotation that should make it rotating to the moving direction but it’s not.

transform.localRotation = Quaternion.RotateTowards(transform.localRotation, curvedLinePoints(c).transform.localRotation, Time.deltaTime * rotSpeed);

In this screenshot the platform is moving up but facing to the left like the other cubes.
and I want the transform(platform) to rotate to be facing to the moving direction.

Platform

DreamProxies - Cheapest USA Elite Private Proxies 100 Private Proxies 200 Private Proxies 400 Private Proxies 1000 Private Proxies 2000 Private Proxies ExtraProxies.com - Buy Cheap Private Proxies Buy 50 Private Proxies Buy 100 Private Proxies Buy 200 Private Proxies Buy 500 Private Proxies Buy 1000 Private Proxies Buy 2000 Private Proxies ProxiesLive Proxies-free.com New Proxy Lists Every Day Proxies123