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()); } } } }
//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; }
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); } }
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]; }
void OnTriggerEnter2D(Collider2D other) { if (!stopMoving) { if (other.gameObject.tag == Constantes.PLAYERPROJETIL) { AmmoHandler playerProjectile = other.GetComponent <AmmoHandler>(); if (!playerProjectile) { return; } ManageHit(playerProjectile); } CheckHealth(); } }
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()); } }
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(); } } }
private void ProjectileHandler(AmmoHandler playerProjectile) { playerProjectile.GetComponent <AmmoHandler>().InstantiateEffect(); playerProjectile.DestroyMe(); audioManager.play_die_audio(); }
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); }
void Start() { ammoHandler = GetComponent <AmmoHandler>(); }
private void Start() { _ammoHandler = GetComponent <AmmoHandler>(); }
public void Reload() { AmmoHandler.IncrementAmmo(AmmoHandler.maxAmmo); }
private void Awake() { instance = this; }