public void DealDamage(IDamageReceiver damageReceiver, DamagesParameters damagesParameters) { if (damageReceiver.GetDamageTag != attackTag || damageReceiver.GetDamageTag == AttackTag.Enemies || damageReceiver.GetDamageTag == AttackTag.Environment) { damageReceiver.ReceiveDamage(this, damagesParameters, null); } }
public void SetUpGameGoal() { targetsToDestroyReceivers = new List <IDamageReceiver>(); foreach (GameObject targetObject in targetsToDestroy) { if (targetObject != null) { IDamageReceiver damageReceiver = targetObject.GetComponent <IDamageReceiver>(); if (damageReceiver != null) { targetsToDestroyReceivers.Add(damageReceiver); damageReceiver.OnDeath += new OnLifeEvent(RemoveTargetToDestroy); } } } foreach (TargetZone targetZone in zonesToGoTo) { targetZone.OnPlayerEnter += RemoveZoneToGoTo; targetZone.StartZone(); } foreach (FleeingEnemyShip ship in shipsToCatch) { ship.OnFleeingEnemyCatched = RemoveCatchedShip; } }
/// <summary> /// Called when the projectile collides with something. /// </summary> /// <param name="collision">Collision info</param> protected void OnCollisionEnter(Collision collision) { if (!Destroyed) { //ApplyDamage(); IDamageReceiver dmgRec = collision.transform.GetComponent <IDamageReceiver>(); if (dmgRec != null) { dmgRec.TakeDamage(damage); } // Stops the projectile Rigidbody.velocity = Vector3.zero; // Passes collision information to the weapon PassCollisionInfoToWeapon(this); // Creates a hit mark at the point of impact //if (!hitMarkCreated) //{ // CreateHitMark(collision); // hitMarkCreated = true; //} DestroyObject(); } }
private void OnTriggerEnter(Collider other) { IDamageReceiver damageReceiver = other.GetComponent <IDamageReceiver>(); if (damageReceiver != null) { if (damageReceiver == relatedProjectile.GetSourceDamageReceiver) { return; } if (GetDamageTag == AttackTag.Environment || GetDamageTag == AttackTag.Enemies || GetDamageTag != damageReceiver.GetDamageTag) { DealDamage(damageReceiver, relatedProjectile.GetDamagesParameters); } } if (relatedProjectile.PersistantAndPlaced) { IDamageSource damageSource = other.GetComponent <IDamageSource>(); if (damageSource != null && damageReceiver == null) { relatedProjectile.ExplodeOnContact(); } } if (other.GetComponent <Obstacle>() != null) { relatedProjectile.ExplodeOnContact(); } }
void OnTriggerEnter2D(Collider2D collider) { IDamageReceiver damageReceiver = collider.GetComponent <IDamageReceiver>(); damageReceiver?.TakeHit(damage); Destroy(gameObject); }
public void DealDamage(IDamageReceiver damageReceiver, DamagesParameters damagesParameters) { damageReceiver.ReceiveDamage(this, damagesParameters, relatedProjectile.GetProjectileSpecialParameters); if (relatedProjectile.GetProjectileSpecialParameters.GetPiercingParameters.GetNumberOfPiercing > 0) { relatedProjectile.GetProjectileSpecialParameters.GetPiercingParameters.DecreamentPiercing(); FeedbackObject woodProjection = GameManager.gameManager.PoolManager.GetFeedbackObject(FeedbackObjectPoolTag.WoodDestruction, PoolInteractionType.GetFromPool); if (woodProjection != null) { woodProjection.transform.position = transform.position; woodProjection.StartFeedback(2, 0.2f, specialSound); } } else if (relatedProjectile.GetProjectileSpecialParameters.GetSkeweringParameters.Skewering) { FeedbackObject woodProjection = GameManager.gameManager.PoolManager.GetFeedbackObject(FeedbackObjectPoolTag.WoodDestruction, PoolInteractionType.GetFromPool); if (woodProjection != null) { woodProjection.transform.position = transform.position; woodProjection.StartFeedback(2, 0.2f, specialSound); } } else { relatedProjectile.ExplodeOnContact(); } }
private void OnHitPlayer() { IDamageReceiver playerDamage = m_player.GetComponent <IDamageReceiver>(); playerDamage.ReceiveDamage(m_damage); Destroy(gameObject); }
public void InflictDamage(IDamageReceiver receiver) { float damage = GetDamage(); receiver.ReceiveDamage(damage); eventOnDamageInflicted?.Invoke(damage); }
public void DealDamage(IDamageReceiver receiver) { if (receiver != null) { receiver.ReceiveDamage(int.MaxValue); } }
protected void OnTriggerEnter2D(Collider2D other) { IDamageReceiver damageReceiver = other.GetComponent <IDamageReceiver>(); if (damageReceiver != null) { //Debug.Log("Hit a damage receiver."); // Check if the other GameObject is a PlayerSpaceship. if (other.gameObject.GetComponent <PlayerSpaceship>() != null) { // If it is, check if it is immortal. if (!other.gameObject.GetComponent <PlayerSpaceship>()._isImmortal) { damageReceiver.TakeDamage(GetDamage()); } } else { damageReceiver.TakeDamage(GetDamage()); } } if (!_weapon.DisposeProjectile(this)) { Debug.LogError("Couldn't dispose projectile."); Destroy(gameObject); } }
public void OnPlayerEnter(IDamageReceiver damageReceiver) { currentState = EnemyState.Wait; fixedTime = Time.unscaledTime + timeStop; damageReceiver.AddDamage(0); }
public void SetUp() { activeOutMapZones = new List <OutMapZone>(); //playerLifeManager = GameManager.gameManager.Player.LfManager; playerReceiver = GameManager.gameManager.Player.GetShipDamageReceiver; vignetteCurve.preWrapMode = WrapMode.PingPong; vignetteCurve.postWrapMode = WrapMode.PingPong; }
private void SendDamage(Collider other) { IDamageReceiver receiver = other.transform.GetComponent <IDamageReceiver>(); if (receiver != null) { receiver.TakeDamage(10); } }
public void DealDamage(IDamageReceiver receiver) { if (receiver != null) { int damage = Damage + Random.Range(-10, 20); Debug.Log(damage + " урона нанесено"); receiver.ReceiveDamage(damage); } }
public void TakeDamage(float damage) { IDamageReceiver d = Behaviour as IDamageReceiver; if (d == null) { throw new Exception("Behaviour does not implement 'IDamageReceiver'."); } d.Damage(damage); }
public HealthModifier(IDamageReceiver _receiver, TankType _damageType) { if (_receiver == null) { return; } var damagePoint = TableService.Instance.GetDamagePoint(_damageType); _receiver.TakeDamage(damagePoint); }
protected void OnTriggerEnter2D(Collider2D other) { IDamageReceiver damageReceiver = other.GetComponent <IDamageReceiver>(); if (damageReceiver != null) { damageReceiver.TakeHealth(_healAmount); } Destroy(gameObject); }
protected virtual void OnHit(GameObject hitObj, Vector3 hitPosition) { if (hitObj != null) { //Debug.Log("Hit " + hitObj.name); IDamageReceiver dmgRec = hitObj.transform.GetComponent <IDamageReceiver>(); if (dmgRec != null) { dmgRec.TakeDamage(GetDamage()); } } }
private void OnTriggerEnter2D(Collider2D other) { IDamageReceiver receiver = other.GetComponent <IDamageReceiver>(); if (receiver != null) { if (receiver.OnDamage(hitTarget)) { Destroy(gameObject); } } }
/// <summary> /// Deal damage /// </summary> /// <param name="receiver">Damage receiver</param> public void DealDamage(IDamageReceiver damageReceiver) { if (damageReceiver == null) { Debug.LogError("Damage receiver is null"); return; } damageReceiver.Damage(Damage); if (DamageDealedEvent != null) { DamageDealedEvent(Damage); } }
/// <summary> Applies damage to an object that can receive it. </summary> public static int ApplyDamage(IDamageReceiver receiver, int damageAmount) { int newHealthAmount = Math.Max(0, receiver.Health - damageAmount); int damageDone = receiver.Health - newHealthAmount; receiver.Health = newHealthAmount; if (receiver.Health <= 0) { receiver.OnHealthDepleted(); } return(damageDone); }
public void RpcLaunch(Vector3 direction, GameObject shooter) { //TODO: Add particle effects. _flyTimer = flyTime; self = shooter.GetComponent <IDamageReceiver>(); GetComponent <SphereCollider>().enabled = true; Rigidbody.AddForce(direction.normalized * _shootingForce, ForceMode.Impulse); if (isServer) { _initialized = true; } }
/// <summary> /// Heal a damage receiver /// </summary> /// <param name="damageReceiver">Damage receiver</param> public void Heal(IDamageReceiver damageReceiver) { if (damageReceiver == null) { Debug.LogError("Damage receiver is null"); return; } damageReceiver.Heal(AmountOfHealing); if (HealingDealedEvent == null) { HealingDealedEvent(AmountOfHealing); } }
public void CheckForEnemyPhase(IDamageReceiver damageReceiver) { if (nextPhaseIndex >= enemyPhaseParameters.Count) { return; } float currentLifePercent = lifeManager.GetCurrentLifePercentage; if (currentLifePercent <= enemyPhaseParameters[nextPhaseIndex].GetLifePercentToAsign) { AssignNextPhase(); } }
protected void OnTriggerEnter2D(Collider2D other) { IDamageReceiver damageReceiver = other.GetComponent <IDamageReceiver>(); if (damageReceiver != null) { damageReceiver.TakeDamage(GetDamage()); } if (_Weapon.DisposePrjectile(this) == false) { Destroy(this.gameObject); Debug.LogError("Error in disposing projectile"); } }
private void ChkPossibilities(ref IDamageReceiver[] possibleReceivers) { foreach (var receiver in possibleReceivers) { if (receiver == this) { // This receiver does not count as it's only a form of a proxy. continue; } else { _damageReceiver = receiver; } } }
private void ApplyDamage() { List <IDamageReceiver> alreadyDamaged = new List <IDamageReceiver>(); Collider[] damageReceivers = Physics.OverlapSphere(transform.position, explosionRadius, _hitMask); for (int i = 0; i < damageReceivers.Length; i++) { IDamageReceiver damageReceiver = damageReceivers[i].GetComponentInParent <IDamageReceiver>(); if (damageReceiver != null && !alreadyDamaged.Contains(damageReceiver)) { alreadyDamaged.Add(damageReceiver); damageReceiver.TakeDamage(_damage); } } }
protected void OnTriggerEnter2D(Collider2D other) { IDamageReceiver damageReceiver = other.GetComponent <IDamageReceiver>(); if (damageReceiver != null) { damageReceiver.TakeDamage(GetDamage()); } if (!_weapon.DisposeProjectile(this)) { Debug.LogError("Could not return the projectile back to the pool!"); Destroy(gameObject); } }
private void OnTriggerEnter2D(Collider2D collider) { if (collider.gameObject != m_firer) { IDamageReceiver damageReceiver = collider.gameObject.GetComponent <IDamageReceiver>(); if (damageReceiver != null) { if (!m_enemyBullet || collider.gameObject == GameMaster.GetPlayer()) { damageReceiver.ReceiveDamage(m_damage); } Destroy(gameObject); } } }
public virtual void ProcessAttack(AttackData attackData) { IDamageReceiver damageReceiver = attackData.target as IDamageReceiver; if (damageReceiver != null) { damageReceiver.OnDamage(attackData); } else { if (attackData.target.HasMethod(attackData.method)) { attackData.target.Call(attackData.method, attackData); } } }