/// <summary> /// This is called via interface when a laser hits an object /// </summary> /// <param name="damageData"></param> public void OnHitDetect(OnHitDetectData data) { if (data.DamageData.AttackType != AttackType.Laser) { return; } SetEnergy(5); }
private void ShootAtDirection(Vector2 rotationToShoot, OnHitDetectData data) { var range = -1f; if (data.BulletObject.TryGetComponent <ProjectileRangeLimited>(out var rangeLimited)) { range = rangeLimited.CurrentDistance; } CastProjectileMessage.SendToAll(gameObject, data.BulletObject.GetComponent <Bullet>().PrefabName, rotationToShoot, default, range);
public void OnHitDetect(OnHitDetectData data) { //Only reflect lasers if (data.BulletObject.TryGetComponent <Bullet>(out var bullet) == false || bullet.MaskData != laserData) { return; } ShootAtDirection(GetNewDirection(data), data); }
private void TryAngleDouble(OnHitDetectData data) { if (Vector2.Angle(data.BulletShootDirection, VectorExtensions.DegreeToVector2(rotation - 90)) <= 55) { ShootAtDirection(rotation + 90, data); } else if (Vector2.Angle(data.BulletShootDirection, VectorExtensions.DegreeToVector2(rotation + 180 - 90)) <= 55) { ShootAtDirection(rotation + 180 + 90, data); } }
public void OnHitDetect(OnHitDetectData data) { if (data.DamageData.AttackType != AttackType.Rad) { return; } damageTaken += data.DamageData.Damage; if (damageTaken >= radDamageNeedToSpawn) { SpawnPrefab(); } }