Exemplo n.º 1
0
    public void EndDrag()
    {
        if (enemyCollisions != null)
        {
            enemyCollisions.joint.enabled        = false;
            enemyCollisions.rbody2d.gravityScale = gravityOld;
            enemyCollisions.rbody2d.velocity     = Vector2.zero;

            objectBeingDragged.transform.rotation = Quaternion.identity;
            Vector3 newPosition = objectBeingDragged.transform.position;
            newPosition.x = jointPosition.transform.position.x;
            objectBeingDragged.transform.position   = newPosition;
            enemyCollisions.rbody2d.angularVelocity = 0f;


            enemyCollisions.movement.speed = speedOld;
        }
        if (boxMovement != null)
        {
            draggedBox.EndDragging();
            boxMovement.EndDragging();
        }
        objectBeingDragged = null;
        enemyCollisions    = null;
        boxMovement        = null;
    }
Exemplo n.º 2
0
 public void EndDragging()
 {
     if (destiny != null)
     {
         origin.SwapPosition(destiny.gameObject);
     }
     destiny = null;
     gameObject.SetActive(false);
 }
Exemplo n.º 3
0
 void OnTriggerExit2D(Collider2D other)
 {
     if (other.tag == Tags.playerBox)
     {
         if (other == destiny && destiny != null)
         {
             destiny.OtherBoxEndHovering();
             destiny = null;
         }
     }
 }
Exemplo n.º 4
0
    void SpawnRandomWall()
    {
        activeWall = Instantiate(walls[Random.Range(0, walls.Count)]) as GameObject;

        activeWall.AddComponent <MeshCollider>();
        activeScript               = activeWall.AddComponent <BoxMovement>();
        activeScript.Player        = Player;
        activeScript.ObstacleSpeed = ObstacleSpeed;

        activeWall.transform.position    = SpawnPoint;
        activeWall.transform.eulerAngles = SpawnRotation;

        ObstacleSpeed += ObstacleSpeed * ObstacleSpeedGain;
    }
Exemplo n.º 5
0
    public void StartDragging(BoxMovement originNew, Sprite spriteNew, Sprite spriteFrenteNew, int enemyIndex)
    {
        origin  = originNew;
        destiny = null;

        gameObject.SetActive(true);
        spriteRenderer.sprite       = spriteNew;
        spriteRendererFrente.sprite = spriteFrenteNew;

        if (EnemyDataManager.control.getChosenEnemies().Count > enemyIndex)
        {
            text.text = EnemyDataManager.control.getChosenEnemies() [enemyIndex].nameEn.ToUpper();
        }
    }
Exemplo n.º 6
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.tag == Tags.playerBoxDrag)
     {
         if (other != origin)
         {
             if (destiny != null)
             {
                 destiny.OtherBoxEndHovering();
                 destiny = null;
             }
             destiny = other.gameObject.GetComponent <BoxMovement> ();
             destiny.OtherBoxStartHovering();
         }
     }
 }
Exemplo n.º 7
0
    private IEnumerator Trigger(BoxMovement box)
    {
        activatingBox        = box;
        activatingBox.Reset += Box_Reset;

        psMain.startColor = finishedColor;
        audioSource.Play();

        yield return(new WaitUntil(() => box.IsStationary() && box.IsVisible()));

        IsFinished = true;

        if (Finished is Action)
        {
            Finished.Invoke();
        }

        activeTriggerCoroutine = null;
    }
Exemplo n.º 8
0
    public void Awake()
    {
        for (int i = 0; i < allBoxes.Count; i++)
        {
            if (allBoxes[i] == null)
            {
                BoxMovement boxToRemove = allBoxes [i];
                allBoxes.Remove(boxToRemove);
            }
        }

        if (!allBoxes.Contains(this))
        {
            allBoxes.Add(this);
        }
        spriteUsed       = spriteRendererUsed.sprite;
        spriteFrenteUsed = spriteRendererFrenteUsed.sprite;
        startingColor    = spriteRendererUsed.color;
    }
Exemplo n.º 9
0
 void Start()
 {
     move = GetComponent<BoxMovement> ();
     force = power / Time.fixedDeltaTime;
     rigBody = GetComponentInParent<Rigidbody> ();
     friction = force / (maxSpeed * maxSpeed);
     //slowTurnSpeed = maxSpeed / 5;
     //text = GameObject.Find ("Log").GetComponent<guiText>();
 }
Exemplo n.º 10
0
 // Use this for initialization
 void Start()
 {
     targetScript = targetObject.GetComponent <BoxMovement>();
 }
Exemplo n.º 11
0
    public void StartDrag(Vector3 point)
    {
        //CODE WITH ONLY ONE RAYCASTHIT
        Ray          ray = Camera.main.ScreenPointToRay(point);
        RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction);


        if (hit != null)
        {
            if (hit.collider != null)
            {
                //the hit.collider gets the object directly clicked. If you use only the hit, you will get the parent
                switch (hit.collider.transform.gameObject.tag)
                {
                case Tags.enemy:
                    boxMovement = null;

                    objectBeingDragged = hit.collider.transform.gameObject;
                    enemyCollisions    = objectBeingDragged.GetComponent <EnemyCollisions> ();
                    enemyCollisions.rbody2d.velocity = Vector2.zero;
                    gravityOld = enemyCollisions.rbody2d.gravityScale;
                    enemyCollisions.rbody2d.gravityScale = gravityWhileDragging;

                    enemyCollisions.spriteSwap.SwapToSprite(1);

                    if (useFastFall)
                    {
                        enemyCollisions.movement.speed = fastFallSpeed;
                    }

                    speedOld = enemyCollisions.movement.speed;

                    enemyCollisions.movement.speed = 0f;

                    Vector2 positionToGo = Camera.main.ScreenToWorldPoint(point);
                    jointPosition.transform.position = positionToGo;

                    enemyCollisions.joint.enabled = true;

                    enemyCollisions.getEnemyData().ExecuteSecondaryStartDragAction(positionToGo);
                    break;

                case Tags.playerBoxDrag:
                    objectBeingDragged = hit.collider.transform.gameObject;
                    boxMovement        = objectBeingDragged.GetComponent <BoxMovement> ();

                    if (boxMovement.boxEnableDisable.getIsEnabled())
                    {
                        enemyCollisions = null;

                        Vector2 positionNew = Camera.main.ScreenToWorldPoint(point);
                        draggedBoxObject.transform.position = positionNew;

                        boxMovement.StartDragging();
                        draggedBox.StartDragging(boxMovement, boxMovement.getSpriteUsed(), boxMovement.getSpriteFrenteUsed(), boxMovement.enemyIndex);
                    }
                    else
                    {
                        objectBeingDragged = null;
                        boxMovement        = null;
                        enemyCollisions    = null;
                    }
                    break;

                case Tags.playerBox:
                    objectBeingDragged = hit.collider.transform.gameObject.GetComponent <FrontBoxMovement> ().objectWithBoxMovement;
                    boxMovement        = objectBeingDragged.GetComponent <BoxMovement> ();

                    if (boxMovement.boxEnableDisable.getIsEnabled())
                    {
                        enemyCollisions = null;

                        Vector2 positionNew = Camera.main.ScreenToWorldPoint(point);
                        draggedBoxObject.transform.position = positionNew;

                        boxMovement.StartDragging();
                        draggedBox.StartDragging(boxMovement, boxMovement.getSpriteUsed(), boxMovement.getSpriteFrenteUsed(), boxMovement.enemyIndex);
                    }
                    else
                    {
                        objectBeingDragged = null;
                        boxMovement        = null;
                        enemyCollisions    = null;
                    }
                    break;

                case Tags.glass:
                    Vector2 knockPosition = Camera.main.ScreenToWorldPoint(point);
                    glassKnockKnockPooler.UsePooledObject(knockPosition, Quaternion.identity);

                    AudioManager.PlaySound(glassKnockSounds[Random.Range(0, glassKnockSounds.Length)].ToString(), Vector3.zero);

                    objectBeingDragged = null;
                    boxMovement        = null;
                    enemyCollisions    = null;
                    break;

                default:
                    objectBeingDragged = null;
                    boxMovement        = null;
                    enemyCollisions    = null;
                    break;
                }
            }
        }


        /*multiple raycasthit
         * // Construct a ray from the current touch coordinates
         * Ray ray = Camera.main.ScreenPointToRay(point);
         *
         * // Move to hit
         * RaycastHit[] allHits = Physics.RaycastAll(ray);
         * List<RaycastHit> closestHit = new List<RaycastHit>();
         *
         * bool containsPriority = false;
         *
         * if(allHits.Length > 0){
         *      for(int i=0; i<allHits.Length;i++){
         *              if( i==0 ){
         *                      if(!closestHit.Contains(allHits[i])){
         *                              closestHit.Add(allHits[i]);
         *                              containsPriority = CheckRaycastHitPriority(allHits[i]) || containsPriority;
         *                      }
         *              }
         *
         *              if( CheckRaycastHitPriority(allHits[i]) || !containsPriority ){
         *                      if(!closestHit.Contains(allHits[i])){
         *                              closestHit.Add(allHits[i]);
         *                              containsPriority = CheckRaycastHitPriority(allHits[i]) || containsPriority;
         *                      }
         *              }
         *      }
         *
         *      if(!containsPriority && !HasElementWithTag(closestHit, Tags.wall)){
         *              MoveAllSelected(closestHit[0].point);
         *      }
         *
         *      if(containsPriority && HasElementWithTag(closestHit, Tags.enemyClickArea)){
         *              closestHit = RemoveElementsWithoutTag(closestHit, Tags.enemyClickArea);
         *              if (closestHit.Count > 0){
         *                      for(int i=0; i<closestHit.Count; i++){
         *                              AttackWithAllSelected(closestHit[i].collider.transform.parent.gameObject);
         *                      }
         *              }
         *      }
         */

        /*
         * if(containsPriority && HasElementWithTag(closestHit, Tags.playerClickArea)){
         *      closestHit = RemoveElementsWithoutTag(closestHit, Tags.playerClickArea);
         *      if (closestHit.Count > 0){
         *
         *              closestHit[0].collider.transform.parent.GetComponent<CharacterMovement>().CharacterClickedDeselectAllButtons();
         *              RemoveAllFromSelected();
         *
         *              for(int i=0; i<closestHit.Count; i++){
         *                      closestHit[i].collider.transform.parent.GetComponent<CharacterMovement>().CharacterClickedWithoutDeselectingOthers();
         *              }
         *      }
         * }
         */
    }
Exemplo n.º 12
0
 void ClearWall()
 {
     Destroy(activeWall);
     activeWall   = null;
     activeScript = null;
 }
Exemplo n.º 13
0
 // Use this for initialization
 void Start()
 {
     machine = GetComponent<StateMachine> ();
     move = GetComponent<BoxMovement> ();
     force = power / Time.fixedDeltaTime;
     rigBody = GetComponentInParent<Rigidbody> ();
 }