Esempio n. 1
0
    GameObject MakeTile(int direction)
    {
        Vector3 newTilePosition = new Vector3(objectTransform.position.x + (spriteWidth * direction), objectTransform.position.y, objectTransform.position.z);

        Transform newTile = poolerToUse.UsePooledObject(newTilePosition, objectTransform.rotation).transform;

        //Transform newTile = (Transform) Instantiate(objectTransform, newTilePosition, objectTransform.rotation);
        newTile.name = objectTransform.name;

        //if the sprite is not a pattern, we can reverse the scale, so the borders of the image
        //will connect a little better (ideally we must use a pattern, this is just a small fix)
        if (!isPatternSprite)
        {
            newTile.localScale = new Vector3(newTile.localScale.x * -1, newTile.localScale.y, newTile.localScale.z);
        }

        newTile.parent = objectTransform.parent;

        if (direction > 0)
        {
            RepeatSprite repeatSprite = newTile.GetComponent <RepeatSprite>();
            repeatSprite.SetHasLeft(true);
            repeatSprite.SetTileOnLeft(gameObject);
        }
        else
        {
            RepeatSprite repeatSprite = newTile.GetComponent <RepeatSprite>();
            repeatSprite.SetHasRight(true);
            repeatSprite.SetTileOnRight(gameObject);
        }

        return(newTile.gameObject);
    }
Esempio n. 2
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == Tags.playerBox)
        {
            BoxEnemyChoice weaponEnemyChoice = other.gameObject.GetComponent <BoxEnemyChoice>();
            //string result = RockPaperScissors.WeaponResult(weaponCollision.weaponType, enemyType);

            if (weaponEnemyChoice.weaponType == enemyType)
            {
                gameControllerScoreScript.addScore(enemyPoints, enemyIndex);
                //animator.SetBool(animatorHash.dead, true);
                weaponEnemyChoice.KilledEnemy();

                if (transform.localScale == vectorUnScaled)
                {
                    if (!AudioManager.getIsPlaying(deathAudio.ToString()))
                    {
                        AudioManager.PlaySound(deathAudio.ToString(), Vector3.zero);
                    }
                }
                if (useSparkles)
                {
                    sparklesPooler.UsePooledObject(transform.position, Quaternion.identity);
                }

                gameObject.SetActive(false);
            }
            else
            {
                //gameControllerScoreScript.subtractScore(0);
                ////Destroy(gameObject);
                AudioManager.PlaySound(AudioNames.PlayerDraw.ToString(), Vector3.zero);
                gameObject.SetActive(false);
            }
            enemyCollider2d.enabled = false;
        }
    }
Esempio n. 3
0
	public override void ExecuteAction (Vector3 dragPosition){
		Vector3 vectorRotation = new Vector3(0,0,Random.Range(0f,360f));
		Quaternion newRotation = Quaternion.Euler (vectorRotation);
		GameObject splashObj = splashesPooler.UsePooledObject (dragPosition, newRotation);
		splashObj.GetComponent<SpriteRenderer> ().color = splashColor;
	}
Esempio n. 4
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();
         *              }
         *      }
         * }
         */
    }
Esempio n. 5
0
 public void UseSparkle()
 {
     sparklesPooler.UsePooledObject(transform.position, Quaternion.identity);
     sparklesPooler.UsePooledObject(transform.position, Quaternion.identity);
     sparklesPooler.UsePooledObject(transform.position, Quaternion.identity);
 }