Пример #1
0
    protected override void Execute(List <InputEntity> entities)
    {
        var inputEntity = entities.SingleEntity();
        var click       = inputEntity.gameClick;

        var  gameEntity = _contexts.game.GetEntitiesWithItemIndex(new Vector2(click.x, click.y));
        bool canMove    = false;

        if (gameEntity != null)
        {
            canMove = gameEntity.SingleEntity().isMovable;
        }

        if (canMove)
        {
            if (_clickComponent == null)
            {
                _clickComponent = click;
            }
            else
            {
                if ((click.x == _clickComponent.x - 1 && click.y == _clickComponent.y) ||
                    (click.x == _clickComponent.x + 1 && click.y == _clickComponent.y) ||
                    (click.y == _clickComponent.y - 1 && click.x == _clickComponent.x) ||
                    (click.y == _clickComponent.y + 1 && click.x == _clickComponent.x))
                {
                    ReplaceItemIndex(click);
                    ReplaceItemIndex(_clickComponent);
                    _clickComponent = null;
                }
            }
        }
    }
Пример #2
0
    private void ReplaceItemIndex(GameClickComponent click)
    {
        var entitys = _contexts.game.GetEntitiesWithItemIndex(new Vector2(click.x, click.y));

        foreach (var entity in entitys)
        {
            entity.ReplaceExchange(ExchangeState.START);
        }
    }