private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.GetComponent <PlayerControl_MovementController>() == GameManager.Instance.ActualPlayerController && !roomChanger.m_isSaveRoomChanger)
        {
            if (imRight)
            {
                roomChanger.MovePlayerFromRight(collision.gameObject);
            }
            else
            {
                roomChanger.MovePlayerFromLeft(collision.gameObject);
            }
        }
        EnemySetControl enemy = collision.GetComponent <EnemySetControl>();

        if (roomChanger.m_isSaveRoomChanger)
        {
            if (enemy != null)
            {
                enemy.StartCoroutine(enemy.ConsumeEnemy());
            }

            if (imRight)
            {
                roomChanger.MovePlayerFromRight(collision.gameObject);
            }
            else
            {
                roomChanger.MovePlayerFromLeft(collision.gameObject);
            }
        }
    }
Exemple #2
0
 protected override void Start()
 {
     base.Start();
     m_minimaparrowAnimator  = UIManager.minimapArrow;
     thisEnemySetControl     = GetComponent <EnemySetControl>();
     thisEnemyShootingScript = GetComponent <ShootingScript>();
 }
Exemple #3
0
    protected virtual void CollisionWithEnemy(Collider2D enemy)
    {
        collisionIsEnemy.ReceiveDamage(bulletDamageToEnemy);
        EnemySetControl myEnemySetControl = enemy.GetComponent <EnemySetControl>();

        if (myEnemySetControl != null)
        {
            myEnemySetControl.StopConsumingAction();
        }
        CollisionWithEnemyEffects();
    }
    private void LaunchRaycast()
    {
        if (playerControl_MovementController.playerInputDirection.sqrMagnitude > 0)                                     ////Se lanza Raycast si hay input de rotación registrado en el PlayerControl
        {
            raycastHit = Physics2D.Raycast(armObject.transform.position, armObject.transform.right, raycastDistance);   ////Actualmente el Raycast tiene siempre la misma distancia, sin intervenir el valor del joystick

            playerLineRenderer.SetPosition(1, playerControl_MovementController.playerInputDirection * raycastDistance); ////Actualmente el punto final de LineRenderer se multiplica por el valor del joystick
        }

        else ////Si no hay input de rotación, se elimina la visibilidad de LineRenderer y se resetea el RaycastHit;
        {
            if (enemy_InRaycast != null && !isControllingWithMouse) ///Antes de resetear el hit, se mira si había un enemigo en el Raycast y se le posee
            {
                PossessAction();
            }
            playerLineRenderer.SetPosition(1, Vector3.zero);
            raycastHit = new RaycastHit2D();
        }

        if (raycastHit.collider != null) ////Chequeos para vaciar la variable del EnemySetControl del enemigo en el Raycast si no hay ninguno en el Raycast o si se salta de uno a otro sin que no haya nada entre medias.
        {
            EnemySetControl enemyCheckScript = raycastHit.collider.gameObject.GetComponent <EnemySetControl>();

            if (enemyCheckScript != null)
            {
                if (enemy_InRaycast != null)
                {
                    enemy_InRaycast = null;
                }
                enemy_InRaycast = enemyCheckScript;
            }
        }

        else
        {
            if (enemy_InRaycast != null)
            {
                enemy_InRaycast = null;
            }
        }
    }
Exemple #5
0
 // Start is called before the first frame update
 void Start()
 {
     thisEnemySetControl = GetComponent <EnemySetControl>();
 }