public void DealDamage(DamageData data) { if (data.damageType == EDamageType.EPhysical) { myFadeout.DecreaseLight(data.damage * damageUnlitScale); } }
private void OnCollisionEnter2D(Collision2D collision) { // only do fire in free form //if (!bFreeForm) //return; if (!playerController.canPerformAction) { return; } if (!collision.gameObject || collision.contactCount == 0 || !tExplosion.IsReadyRestart()) { return; } // ensure only specified masks will cause explosion if ((requiredExplosionMask.value & (1 << collision.gameObject.layer)) == 0) { return; } // if (lightFadeout.fadeoutPercent < minExplosionFadeout) { return; } lightFadeout.DecreaseLight(fadeoutCost); Vector3 spawnPosition = collision.GetContact(0).point; Vector2 toOther = transform.position - player.position; Instantiate(explosionPrefab, spawnPosition, Quaternion.FromToRotation(Vector2.up, toOther)); }