private void DealAreaDamage(Core.GameObject toIgnore) { List <BaseAlien> aliens = SceneManager.Instance.currScene.GetObjectsByClass <Assets.Objects.BaseAlien>(); foreach (BaseAlien alien in aliens) { if (toIgnore == alien) { continue; } float distance = (alien.transform.position - transform.position).Length(); if (distance > areaRange) { continue; } Gameplay.Health health = alien.GetComponent <Gameplay.Health>(); if (health == null) { continue; } health.DealDamage(new Gameplay.DamageInfo() { damageDealer = Damage.damageDealer, value = (int)(Damage.value * 0.5) }); } RocketExplosion explosion = new RocketExplosion(new Transform(transform)); GameManager.SpawnObject(explosion); }
protected virtual void OnHit(Collider thisCollider, Collider otherCollider) { Gameplay.Health enemyHealth = otherCollider.Parent.GetComponent <Gameplay.Health>(); if (enemyHealth != null) { enemyHealth.DealDamage(Damage); } else { return; } Destroy(); }
private void CheckCollision(Collider thisCollider, Collider otherCollider) { GameObject other = otherCollider.Parent; Player player = other as Player; if (player == null) { return; } Gameplay.Health health = player.GetComponent <Gameplay.Health>(); health.Restore(80); Destroy(); }
protected virtual void Load(Core.Transform transform) { // Physics AddComponent(new Body(this)); AddComponent(new CircleCollider(this, CollisionChanell.Enemy, colliderOffset, colliderRadius)); // HealthBar healthComponent = AddComponent(new Gameplay.Health(this)); healthComponent.MaxHealth = maxHealth; healthBar = AddComponent(new UI.HealthBar(this, healthBarOffset)); healthComponent.OnDamageTaken += healthBar.Refresh; healthComponent.OnDamageTaken += OnDamage; healthComponent.OnDepleted += Die; // AI aiAttack = AddComponent(new Gameplay.AIAttack(this)); movement = AddComponent(new Navigation.MovementComponent(this)); navigation = AddComponent(new Navigation.NavigationAgent(this)); // Visual anim = AddComponent(new Graphics.StackAnimator(this)); }
private void Die(Gameplay.Health damaged, Gameplay.DamageInfo damageInfo) { SpawnCorpse(); Destroy(); }
private void OnDamage(Gameplay.Health damaged, Gameplay.DamageInfo damageInfo) { hitSFX.Stop(); hitSFX.Play(); }
public void Refresh(Gameplay.Health damaged, Gameplay.DamageInfo dmgInfo) { SetValue(damaged.GetPercentage()); }