Esempio n. 1
0
    IEnumerator DrawASkill()
    {
        while (true)
        {
            //Draw random skill
            int _rand = Random.Range(0, 200);
            if (_rand <= 20)
            {
                actionController.AddAction(skill1);
                //actionController.AddAction(skill3);
            }
            else if (_rand < 40)
            {
                actionController.AddAction(skill2);
                //actionController.AddAction(skill3);
            }
            else if (_rand < 60)
            {
                actionController.AddAction(skill4);
            }
            else if (_rand < 80)
            {
                actionController.AddAction(skill3);
            }
            else
            {
                _dash_goal = LevelManager.instance.randomPosInMap;
                actionController.AddAction(dash);
            }

            yield return(wait);
        }
    }
Esempio n. 2
0
    private void Update()
    {
        /*
         * if (Input.GetMouseButton(0))
         * {
         *  //TODO: Shoot evnet
         *  actionController.AddAction(shoot_act);
         * }
         */
        if (Input.GetKeyDown(KeyCode.Space))
        {
            actionController.AddAction(dash_act);
        }

        //Auto Shoot
        actionController.AddAction(shoot_act);

        //Keyboard

        //if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.LeftArrow) ||
        //    Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.UpArrow))
        //{
        //    _shoot_point = GetArrowKeyValue();
        //    actionController.AddAction(shoot_act);
        //
        //    Vector3 look_dir = _shoot_point;
        //    float m = look_dir.y / Mathf.Pow(look_dir.x * look_dir.x + look_dir.y * look_dir.y, 0.5f);
        //    float m_angle = (float)(Math.Atan(m)) * Mathf.Rad2Deg;
        //    weapon.transform.eulerAngles = new Vector3(0, 0, -m_angle) + transform.rotation.eulerAngles;
        //}

        Debug.Log(_shoot_point);
    }
Esempio n. 3
0
    private void Start()
    {
        sp = GetComponent <SpriteRenderer>();
        actionController = GetComponent <ActionController>();
        hitableObj       = GetComponent <HitableObj>();
        audioSource      = GetComponent <AudioSource>();

        filter.SetLayerMask(detect_layermask);
        filter.useTriggers = true;

        actionController.eOnActionComplete   += SetDefaultAction;
        actionController.eActionQueueCleared += delegate { actionController.AddAction(Idle_act); };

        move_act.action.AddListener(delegate { Move(); });


        //First default action
        actionController.AddAction(Idle_act);

        shoot_act.gap_time = weapon.weaponData.shoot_gap_time;

        //generate move goal
        move_goal = new GameObject().transform;

        hitableObj.gotHit_event += OnHurt;
        hitableObj.Die_event    += Die;
    }
Esempio n. 4
0
    private void OnDestroy()
    {
        actionController.eOnActionComplete   -= SetDefaultAction;
        actionController.eActionQueueCleared -= delegate { actionController.AddAction(Idle_act); };

        hitableObj.gotHit_event -= OnHurt;
        hitableObj.Die_event    -= Die;
    }
Esempio n. 5
0
    private void MouseUp(int buttonID, Vector3 position)
    {
        if (!mousePressed || buttonID != 0)
        {
            return;
        }

        if (isCreatingMultipleVoxels)
        {
            lastVoxelCreated.transform.SetParent(null);
            bool canVoxelsBeCreated = true;

            foreach (VoxelPrefab voxel in createdVoxels.Values)
            {
                if (!voxel.IsAvailable())
                {
                    canVoxelsBeCreated = false;
                    break;
                }
            }

            BuildInWorldCompleteAction buildAction = new BuildInWorldCompleteAction();
            buildAction.actionType = BuildInWorldCompleteAction.ActionType.CREATE;

            List <BuilderInWorldEntityAction> entityActionList = new List <BuilderInWorldEntityAction>();

            foreach (Vector3Int voxelPosition in createdVoxels.Keys)
            {
                if (canVoxelsBeCreated)
                {
                    DecentralandEntity entity = builderInWorldEntityHandler.DuplicateEntity(lastVoxelCreated);
                    entity.gameObject.tag = BuilderInWorldSettings.VOXEL_TAG;
                    entity.gameObject.transform.position = voxelPosition;

                    BuilderInWorldEntityAction builderInWorldEntityAction = new BuilderInWorldEntityAction(entity, entity.entityId, BuilderInWorldUtils.ConvertEntityToJSON(entity));
                    entityActionList.Add(builderInWorldEntityAction);
                }
                Destroy(createdVoxels[voxelPosition].gameObject);
            }

            if (!canVoxelsBeCreated)
            {
                builderInWorldEntityHandler.DeleteEntity(lastVoxelCreated);
            }
            else
            {
                buildAction.CreateActionType(entityActionList, BuildInWorldCompleteAction.ActionType.CREATE);
                actionController.AddAction(buildAction);
            }

            createdVoxels.Clear();
            builderInWorldEntityHandler.DeselectEntities();

            lastVoxelCreated         = null;
            isCreatingMultipleVoxels = false;

            mousePressed = false;
            freeCameraMovement.SetCameraCanMove(true);
        }
    }
Esempio n. 6
0
    public void DuplicateSelectedEntities()
    {
        BuildInWorldCompleteAction buildAction = new BuildInWorldCompleteAction();

        buildAction.actionType = BuildInWorldCompleteAction.ActionType.CREATE;

        List <BuilderInWorldEntityAction> entityActionList    = new List <BuilderInWorldEntityAction>();
        List <DCLBuilderInWorldEntity>    entitiesToDuplicate = new List <DCLBuilderInWorldEntity>(selectedEntities);

        DeselectEntities();

        foreach (DCLBuilderInWorldEntity entityToDuplicate in entitiesToDuplicate)
        {
            if (entityToDuplicate.isNFT)
            {
                continue;
            }

            var entityDuplicated = DuplicateEntity(entityToDuplicate);
            BuilderInWorldEntityAction builderInWorldEntityAction = new BuilderInWorldEntityAction(entityDuplicated.rootEntity, entityDuplicated.rootEntity.entityId, BuilderInWorldUtils.ConvertEntityToJSON(entityDuplicated.rootEntity));
            entityActionList.Add(builderInWorldEntityAction);
            SelectEntity(entityDuplicated);
        }

        currentActiveMode?.SetDuplicationOffset(duplicateOffset);

        buildAction.CreateActionType(entityActionList, BuildInWorldCompleteAction.ActionType.CREATE);
        actionController.AddAction(buildAction);
    }
Esempio n. 7
0
    public void DuplicateSelectedEntities()
    {
        BuildInWorldCompleteAction buildAction = new BuildInWorldCompleteAction();

        buildAction.actionType = BuildInWorldCompleteAction.ActionType.CREATE;

        List <BuilderInWorldEntityAction> entityActionList = new List <BuilderInWorldEntityAction>();

        int amount = selectedEntities.Count;

        for (int i = 0; i < amount; i++)
        {
            if (selectedEntities[i].isNFT)
            {
                continue;
            }

            DecentralandEntity         entityDuplicated           = DuplicateEntity(selectedEntities[i]);
            BuilderInWorldEntityAction builderInWorldEntityAction = new BuilderInWorldEntityAction(entityDuplicated, entityDuplicated.entityId, BuilderInWorldUtils.ConvertEntityToJSON(entityDuplicated));
            entityActionList.Add(builderInWorldEntityAction);
        }

        currentActiveMode?.SetDuplicationOffset(duplicateOffset);
        Cursor.SetCursor(duplicateCursorTexture, Vector2.zero, CursorMode.Auto);


        buildAction.CreateActionType(entityActionList, BuildInWorldCompleteAction.ActionType.CREATE);
        actionController.AddAction(buildAction);
    }
Esempio n. 8
0
    private IEnumerator Start()
    {
        //GCManager.RegisterObject(_ammo.ammoData.GC_key, _ammo);
        yield return(new WaitForFixedUpdate());

        actionController = GetComponent <ActionController>();
        shoot.action.AddListener(delegate { Shoot(); });

        while (true)
        {
            actionController.AddAction(shoot);
            yield return(new WaitForSeconds(time));
        }
    }
    public void UndoRedoMoveAction()
    {
        BuildInWorldCompleteAction buildModeAction = new BuildInWorldCompleteAction();

        Vector3 oldPosition = scene.entities[ENTITY_ID].gameObject.transform.position;
        Vector3 newPosition = new Vector3(5, 5, 5);

        BuilderInWorldEntityAction entityAction = new BuilderInWorldEntityAction(ENTITY_ID);

        entityAction.oldValue = oldPosition;
        entityAction.newValue = newPosition;

        buildModeAction.CreateActionType(entityAction, BuildInWorldCompleteAction.ActionType.MOVE);

        scene.entities[ENTITY_ID].gameObject.transform.position = newPosition;
        actionController.AddAction(buildModeAction);

        actionController.TryToUndoAction();
        Assert.IsTrue(scene.entities[ENTITY_ID].gameObject.transform.position == oldPosition);

        actionController.TryToRedoAction();
        Assert.IsTrue(scene.entities[ENTITY_ID].gameObject.transform.position == newPosition);
    }
Esempio n. 10
0
    public void ChangeFloor(CatalogItem newFloorObject)
    {
        CatalogItem lastFloor = lastFloorCalalogItemUsed;

        if (lastFloor == null)
        {
            lastFloor = FindCurrentFloorCatalogItem();
        }

        builderInWorldEntityHandler.DeleteFloorEntities();

        CreateFloor(newFloorObject);

        BuildInWorldCompleteAction buildAction = new BuildInWorldCompleteAction();

        buildAction.CreateChangeFloorAction(lastFloor, newFloorObject);
        actionController.AddAction(buildAction);
    }
    void OnSceneObjectSelected(SceneObject sceneObject)
    {
        if (IsSceneObjectFloor(sceneObject))
        {
            builderInWorldEntityHandler.DeleteFloorEntities();
            SceneObject lastFloor = lastFloorSceneObjectUsed;

            CreateFloor(sceneObject);

            BuildInWorldCompleteAction buildAction = new BuildInWorldCompleteAction();

            buildAction.CreateChangeFloorAction(lastFloor, sceneObject);
            actionController.AddAction(buildAction);
        }
        else
        {
            CreateSceneObject(sceneObject);
        }
    }
    public void DuplicateSelectedEntities()
    {
        foreach (DCLBuilderInWorldEntity entity in selectedEntities)
        {
            if (!DCL.Environment.i.world.sceneBoundsChecker.IsEntityInsideSceneBoundaries(entity.rootEntity))
            {
                return;
            }
        }

        BuildInWorldCompleteAction buildAction = new BuildInWorldCompleteAction();

        buildAction.actionType = BuildInWorldCompleteAction.ActionType.CREATE;

        List <BuilderInWorldEntityAction> entityActionList = new List <BuilderInWorldEntityAction>();

        int amount = selectedEntities.Count;

        for (int i = 0; i < amount; i++)
        {
            if (selectedEntities[i].isNFT)
            {
                continue;
            }

            DecentralandEntity         entityDuplicated           = DuplicateEntity(selectedEntities[i]);
            BuilderInWorldEntityAction builderInWorldEntityAction = new BuilderInWorldEntityAction(entityDuplicated, entityDuplicated.entityId, BuilderInWorldUtils.ConvertEntityToJSON(entityDuplicated));
            entityActionList.Add(builderInWorldEntityAction);
        }

        currentActiveMode.SetDuplicationOffset(duplicateOffset);
        Cursor.SetCursor(duplicateCursorTexture, Vector2.zero, CursorMode.Auto);


        buildAction.CreateActionType(entityActionList, BuildInWorldCompleteAction.ActionType.CREATE);
        actionController.AddAction(buildAction);
    }
Esempio n. 13
0
    private void Update()
    {
        if (_pv != null && !_pv.IsMine)
        {
            return;
        }

        //跳躍
        //Duck and jump down
        if (Input.GetKey(duck_key) && Input.GetKeyDown(jump_key))
        {
            //check ground is pass throughable?
            GameObject __ground = listeners.currentStandingGround;
            if (__ground != null && __ground.tag == "ThinWall")
            {
                transform.DOMoveY(transform.position.y - 3.5f, 0.1f);
            }
        }
        else if (Input.GetKeyDown(jump_key) && (jumpCount < 2))
        {
            Debug.Log("jump");
            if (jumpCount == 0)
            {
                Debug.Log("Jump start");
                Jump_start();
                AddJumpForce();
                actionController.AddAction(jump_start);
            }
            //else if (!listeners.isGrounded)
            else if (jumpCount == 1)
            {
                Debug.Log("Jump double");
                actionController.AddAction(doubleJump);
            }
            jumpCount++;
            Debug.Log("jump count" + jumpCount);
        }

        //Dash
        //if (Input.GetKeyDown(KeyCode.LeftShift))
        if (Input.GetKeyDown(dash_key))
        {
            actionController.AddAction(dash);
        }

        //Duck
        if (Input.GetKeyDown(duck_key))
        {
            actionController.AddAction(duck);
        }

        //Duck Finish
        if (Input.GetKeyUp(duck_key))
        {
            actionController.AddAction(stop);
            //StopCoroutine(c_heal);
        }
    }
 public void AddAction(String name)
 {
     control.AddAction(name);
 }