Exemplo n.º 1
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (!explodeTriggerFired)         /*inimigos do solo por ex n sao deletados dps de explodir, por isso essa checagem */
     //o que colidiu pode ser o player ou municao ( damageDelar) ou municao (AmmoHandler)
     {
         DamageDealer damageDealer = other.GetComponent <DamageDealer>();
         AmmoHandler  projectile   = other.GetComponent <AmmoHandler>();
         /* só importa o player e o projetil dele, qqr outra coisa que colidir com um inimigo será indiferente a ele */
         if (!damageDealer && !projectile)
         {
             return;
         }
         /*destroi municoes do player quando tocar no inimigo*/
         if (other.gameObject.tag == Constantes.PLAYERPROJETIL)
         {
             if (projectile)
             {
                 ProcessHit(projectile);
                 projectile.GetComponent <AmmoHandler>().InstantiateEffect();
                 projectile.DestroyMe();
             }
             else
             {
                 Debug.LogWarning(Constantes.MISSING_AMMO_HANDLER_SCRIPT);
             }
         }
         else if (other.gameObject.tag == Constantes.PLAYER)
         {
             if (damageDealer)               /*reduzira a vida do player em 55% se colidiur com um inimigo */
             {
                 damageDealer.HitDueDirectColision(GetHitPercentage());
             }
         }
     }
 }
Exemplo n.º 2
0
 //using instead of Start() because of an error to a null reference for the animator component in OnEnable()
 void Awake()
 {
     ammoHandler = GetComponentInParent <AmmoHandler>();
     audioSource = GetComponent <AudioSource>();
     animator    = GetComponent <Animator>();
     gameManager = FindObjectOfType <GameManager>();
     currentAmmo = magSize;
 }
Exemplo n.º 3
0
    private void Shoot()
    {
        if (AmmoHandler.ammo > 0 && P_PlayerInteractionEnabled == true)
        {
            p_Projectile = Instantiate(p_ProjectilePrefab, p_ProjectileOrigin.position, Quaternion.identity);
            p_Projectile.Shoot(m_Direction, p_ShootForce, "Enemy");

            AmmoHandler.DecrementAmmo(1);
        }
    }
Exemplo n.º 4
0
    public bool Store(AmmoHandler ammoHandler)
    {
        var freeSlot = Array.Find(Сlips.Slots, slot => !slot.HasItem);

        if (freeSlot == null)
        {
            return(false);
        }

        freeSlot.Set(ammoHandler);

        return(true);
    }
    void Start()
    {
        sc       = FindObjectOfType <SpawnController>();
        ammo     = FindObjectOfType <AmmoHandler>();
        sh       = FindObjectOfType <SpriteHandler>();
        myAnim   = GetComponent <Animator>();
        myCircle = GetComponent <CircleCollider2D>();

        randomCandy = Random.Range(0, sh.candyList.Length);
        randomColor = Random.Range(0, 8);

        myColor = ammo.ammoColors[randomColor];
        GetComponent <SpriteRenderer>().sprite = sh.candyList[randomCandy].candy[randomColor];
    }
Exemplo n.º 6
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (!stopMoving)
     {
         if (other.gameObject.tag == Constantes.PLAYERPROJETIL)
         {
             AmmoHandler playerProjectile = other.GetComponent <AmmoHandler>();
             if (!playerProjectile)
             {
                 return;
             }
             ManageHit(playerProjectile);
         }
         CheckHealth();
     }
 }
Exemplo n.º 7
0
    void OnTriggerEnter2D(Collider2D other)
    {
        AmmoHandler projectile = other.GetComponent <AmmoHandler>();

        /* só importa o player e o projetil dele, qqr outra coisa que colidir com um inimigo será indiferente a ele */
        if (!projectile)
        {
            return;
        }
        /*checagem do destroye aqui é só pra o tiro atravessar o objeto depis de destrui-lo xD*/
        if (other.gameObject.tag == Constantes.PLAYERPROJETIL && !destroyed)
        {
            projectile.GetComponent <AmmoHandler>().InstantiateEffect();
            //	projectile.DestroyMe();
            RemoveHealth(projectile.GetDamage());
        }
    }
Exemplo n.º 8
0
    void OnTriggerEnter2D(Collider2D other)
    {
        //if(other.gameObject.layer == 17)/*layer mapas */
        //	CheckTileMapColision(other.gameObject);

        DamageDealer damageDealer    = other.GetComponent <DamageDealer>();
        AmmoHandler  enemyProjectile = other.GetComponent <AmmoHandler>();

        //é importante... n tire esse if ( se n tiver nenhum dos dois);
        if (!damageDealer && !enemyProjectile)
        {
            return;
        }
        /*independente do que colidiu, o player irá tomar um hit... */
        if (damageDealer)
        {
            if (damageDealer.CanHurt())           /*pois pode ser que o inimigo ja tenha sido morto, entao n é pra me ferir/mudar minha cor mais */
            {
                ProcessHit(damageDealer);
            }
        }
        else if (enemyProjectile)
        {
            ProcessHit(enemyProjectile);
        }
        /* dependendo do que colidiu com o player, esse irá ser destruído */
        if (other.gameObject.tag != Constantes.BOSS && !IsGroundEnemy(other)) //destroi inimigos comuns apenas
        {
            if (damageDealer)                                                 //inimigo perdera 25% da vida que tem ao colidir diretamente com o player
            {
                damageDealer.HitDueDirectColision(GetHitPercentage());
            }
            else if (enemyProjectile)
            {
                enemyProjectile.InstantiateEffect();
                enemyProjectile.DestroyMe();
            }
        }
    }
Exemplo n.º 9
0
 private void ProjectileHandler(AmmoHandler playerProjectile)
 {
     playerProjectile.GetComponent <AmmoHandler>().InstantiateEffect();
     playerProjectile.DestroyMe();
     audioManager.play_die_audio();
 }
Exemplo n.º 10
0
 private void ManageHit(AmmoHandler playerProjectile)
 {
     bossHealthManager.RemoveEnemyHealth(playerProjectile.GetDamage());
     bossSpriteManager.InstantiateDamagedEffect(playerProjectile);
     ProjectileHandler(playerProjectile);
 }
    public void InstantiateDamagedEffect(AmmoHandler playerProjectile)
    {
        GameObject explosao_effect = Instantiate(DamagePrefab, playerProjectile.transform.position, Quaternion.identity);

        explosao_effect.transform.SetParent(gameObject.transform);
    }
Exemplo n.º 12
0
 void Start()
 {
     ammoHandler = GetComponent <AmmoHandler>();
 }
Exemplo n.º 13
0
 private void Start()
 {
     _ammoHandler = GetComponent <AmmoHandler>();
 }
Exemplo n.º 14
0
 public void Reload()
 {
     AmmoHandler.IncrementAmmo(AmmoHandler.maxAmmo);
 }
Exemplo n.º 15
0
 private void Awake()
 {
     instance = this;
 }