/// <summary> /// /// </summary> /// <param name="bulletResponse"></param> private void OnReceivingBullet(BulletResponse bulletResponse) { if (gameplayStateHandler != null) { var received = gameplayStateHandler.ReceiveBullet(bulletResponse.bullet); if (received) { foreach (var buff in GetComponents <CharacterBuff>()) { received = buff.ReceiveBullet(bulletResponse.bullet); if (!received) { break; } } } bulletResponse.received = received; if (received) { TakeDamages(bulletResponse.bullet); if (!resources.hasArmor) { Push(bulletResponse.bullet.orientation, Random.Range(600.0f, 800.0f), 0.1f); } } } }
/// <summary> /// /// </summary> /// <param name="collision"></param> private bool OnTriggerCollide(Collider2D collision) { _untriggeredContacts.Remove(collision); if (_beingDestroyed) { return(true); } var shooter = (instigator as WeaponEquippable)?.shooter; if (shooter == null) { shooter = instigator as ShooterBehaviour; } if (shooter != null) { if (collision.GetComponent <ShooterBehaviour>() == shooter) { return(false); } } var bulletReaction = collision.GetComponent <BulletReaction>(); var tilemapChunk = collision.GetComponent <TilemapChunk>(); if (bulletReaction == null && tilemapChunk == null) { return(false); } var received = false; if (bulletReaction != null) { var bulletResponse = new BulletResponse(this, collision); bulletReaction.SendBulletReceive(bulletResponse); received = bulletResponse.received; } if (tilemapChunk != null) { received = true; } if (received) { _beingDestroyed = true; if (_hitAnimation) { GameplayStatics.SpawnFireAndForgetAnimation(_hitAnimation, transform.position, Quaternion.identity) .AddComponent <TileObjectRenderer>().additive = 12; } Destroy(gameObject); } return(received); }
/// <summary> /// /// </summary> /// <param name="bulletResponse"></param> public void SendBulletReceive(BulletResponse bulletResponse) { SendMessage(OnReceivingBulletMethodName, bulletResponse, SendMessageOptions.DontRequireReceiver); if (_acceptBullets) { bulletResponse.received = true; } }
/// <summary> /// /// </summary> /// <param name="response"></param> private void OnReceivingBullet(BulletResponse response) { if (isDashReflected) { response.received = true; ++_damages; } else { response.received = false; } }
/// <summary> /// /// </summary> /// <param name="response"></param> private void OnReceivingBullet(BulletResponse response) { if (response.collider == GetComponent <BoxCollider2D>()) { response.received = true; SendPickup(response.bullet.instigator as Character, false); _hasOpened = true; } else { response.received = false; } }
/// <summary> /// /// </summary> /// <param name="response"></param> private void OnReceivingBullet(BulletResponse response) { response.received = false; if (this.IsInConstruction()) { return; } _health -= response.bullet.damages; _hitFlash?.Flash(); _expectedBullet = response.bullet; _expectedBullet.GetComponent <Collider2D>().isTrigger = false; if (_health <= 0) { _destroyAfterReflect = true; } }
/// <summary> /// /// </summary> /// <param name="response"></param> private void OnReceivingBullet(BulletResponse response) { if (this.IsInConstruction() || response.collider.isTrigger) { response.received = false; return; } response.received = true; if (TakeDamagesInternal(response.bullet)) { var shooter = response.bullet.instigator as ShooterBehaviour; var spawner = shooter?.spawner; var baseItem = GetComponent <Construct>().baseItem; if (spawner != null && spawner.HasAbility(AbilityId.ConstructRogue) && baseItem != null && spawner.character != null) { spawner.character.tempConstruct = baseItem; } } }
/// <summary> /// /// </summary> /// <param name="bulletResponse"></param> private void OnReceivingBullet(BulletResponse bulletResponse) { transform.parent.SendMessage(nameof(OnReceivingBullet), bulletResponse, SendMessageOptions.DontRequireReceiver); }
/// <summary> /// /// </summary> /// <param name="response"></param> private void OnReceivingBullet(BulletResponse response) { PlayAnim(); response.received = true; }
/// <summary> /// /// </summary> /// <param name="response"></param> private void OnReceivingBullet(BulletResponse response) { DoCheck(SoundEventEmitterMessage.OnReceivingBullet); }