// дописать поглащение урона public void SetDamage(InfoCollision info) { if (_isDead) { return; } if (Hp > 0) { Hp -= info.Damage; } if (Hp <= 0) { var tempRigidbody = GetComponent <Rigidbody>(); if (!tempRigidbody) { tempRigidbody = gameObject.AddComponent <Rigidbody>(); } tempRigidbody.velocity = info.Dir; Destroy(gameObject, 10); OnPointChange?.Invoke(); _isDead = true; } }
public void OnCollision(InfoCollision info) { if (_isDead) { return; } if (HP > 0) { HP -= info.Damage / _healthDivider; } if (HP <= 0) { if (!TryGetComponent <Rigidbody>(out _)) { gameObject.AddComponent <Rigidbody>(); } var rb = gameObject.GetComponent <Rigidbody>(); rb.isKinematic = false; rb.useGravity = true; Destroy(gameObject, _timeToDestroy); OnPointChange.Invoke(); _isDead = true; } }
//todo дописать поглащение урона - done public void SetDamage(InfoCollision info) { if (_isDead) { return; } float damage = info.Damage / Shield; if (Armor > 0) { Armor -= damage; } if (Armor <= 0 && Hp > 0) { Hp -= damage; } if (Hp <= 0) { if (!TryGetComponent <Rigidbody>(out _)) { gameObject.AddComponent <Rigidbody>(); } Destroy(gameObject, 10); OnPointChange?.Invoke(); _isDead = true; } }
public void SetDamage(InfoCollision info) { if (_isDead) { return; } if (Hp > 0) { Hp -= info.Damage; } _meshRenderer.material.color = Color.Lerp(Color.gray, _initialColor, Hp / _initialHp); if (Hp <= 0) { var tempRigidbody = GetComponent <Rigidbody>(); if (!tempRigidbody) { tempRigidbody = gameObject.AddComponent <Rigidbody>(); } tempRigidbody.velocity = info.Dir; Destroy(gameObject, 10); OnPointChange?.Invoke(); _isDead = true; } }
//private void GettingPeriodicDamage(in InfoCollision info) //{ // _timeRemaining = new TimeRemaining(Burning, _timeBurning, true); //} //private void Burning() //{ // var fireEffect = ServiceLocator.Resolve<EffectController>().GetFireEffect(); // if (fireEffect) // { // fireEffect.transform.SetParent(transform); // } //} private void GettingMomentDamage(InfoCollision info) { if (Hp > 0) { Hp -= info.Damage; switch (info.Effect) { case EffectType.Fire: gameObject.transform.GetComponent <Renderer>().material.color = Color.red; break; case EffectType.Frost: gameObject.transform.GetComponent <Renderer>().material.color = Color.blue; break; } } if (Hp <= 0) { if (!TryGetComponent <Rigidbody>(out _)) { gameObject.AddComponent <Rigidbody>(); } Destroy(gameObject, _timeToDestroy); OnPointChange.Invoke(); _isDead = true; } }
public void SetDamage(InfoCollision info) { if (_isDead) { return; } if (Hp > 0) { Hp -= info.Damage; } if (Hp <= 0) { _isDead = true; Color = new Color(0.7f, 0.1f, 0.1f); _agent.enabled = false; _character.enabled = false; _rigidBody.useGravity = true; _capsuleCollider.enabled = true; _rigidBody.velocity = info.Dir; Layer = 11; Destroy(gameObject, 5); OnPointChange?.Invoke(); } }
public override void SetDamage(InfoCollision info) { if (_isDead) { return; } if (Hp > 0) { Hp -= info.Damage; } if (Hp <= 0) { Hp = 0; if (!TryGetComponent <Rigidbody>(out _)) { gameObject.AddComponent <Rigidbody>(); } Destroy(gameObject, 10); OnPointChange?.Invoke(); _isDead = true; } StatusChange(); }
//todo дописать поглащение урона public void SetDamage(InfoCollision info) { float damage = info.Damage / Armor; if (_isDead) { return; } if (Defense > 0) { Defense -= damage; } else if (Hp > 0) { Hp -= damage; } if (Hp <= 0) { if (!TryGetComponent <Rigidbody>(out _)) { gameObject.AddComponent <Rigidbody>(); } Destroy(gameObject, 10); OnPointChange?.Invoke(); _isDead = true; } }
public void CollisionEnter(InfoCollision info) { if (_isDead) { return; } if (!TryGetComponent <Rigidbody>(out _)) { gameObject.AddComponent <Rigidbody>(); } OnPointChange.Invoke(); _isDead = true; }
//todo дописать поглащение урона public void CollisionEnter(InfoCollision info) { if (_isDead) { return; } if (Hp > 0) { Hp -= info.Damage; } if (Hp <= 0) { if (!TryGetComponent <Rigidbody>(out _)) { gameObject.AddComponent <Rigidbody>(); } Destroy(gameObject, _timeToDestroy); OnPointChange.Invoke(); _isDead = true; } }
//todo дописать поглащение урона public void SetDamage(InfoCollision info) { if (_isDead) { return; } if (Armor > 0) { if (Armor > info.Damage) { Armor -= info.Damage; return; } else { Hp -= (info.Damage - Armor); Armor = 0; } } if (Hp > 0) { Hp -= info.Damage; } if (Hp <= 0) { if (!GetComponent <Rigidbody>()) { gameObject.AddComponent <Rigidbody>(); } Destroy(gameObject, 10); OnPointChange?.Invoke(); _isDead = true; } }
protected override void Interaction() { OnPointChange?.Invoke(point); }
protected override void Interaction() { Point++; OnPointChange.Invoke(Point); _bonus?.Invoke(); }
public void HandleOnPointChange() { OnPointChange.Invoke(this); }