public void StopRamming(IRamable rammer) { if (_rammerExplDict.ContainsKey(rammer)) { _rammerExplDict.Remove(rammer); } }
public void Ramming(float damage, Vector3 ramPoint, IRamable rammer) { Damage(damage); if (!_rammerExplDict.ContainsKey(rammer)) { if (damage >= damageThreshold) { var hitExpl = Instantiate(ramHitExplosion, ramPoint, Quaternion.identity); _rammerExplDict.Add(rammer, hitExpl); } } else { var explParticle = _rammerExplDict.FirstOrDefault(pair => pair.Key == rammer); if (explParticle.Value != null) { explParticle.Value.transform.position = ramPoint; } } }