protected override void FireRound(Vector3 _, Transform __) { var shot = Instantiate(ProjectilePrefab, Muzzle.transform.position, transform.rotation); shot.Launch(DamageMessage.Create(Stats.Damage, Stats.DamageTypes)); Animator.SetTrigger("Fire"); Muzzle.Play(); FireSfx.Play(); }
public void Damage(DamageMessage damage) { if (damage.Types.Contains(DamageType.Fragmentation)) { AttachedHealth.ReceiveDamage(DamageMessage.Create(damage, DamageMultiplier * FgramentationDamageMultiplier)); } else { AttachedHealth.ReceiveDamage(damage); } }
protected override void FireRound(Vector3 position, Transform _) { Cannon.transform.LookAt(AimAt(position)); RaycastHit hit; if (Physics.Raycast(Cannon.transform.position, Cannon.transform.forward, out hit, Stats.Range, HitLayer)) { var hitBox = hit.collider.GetComponent <HitBox>(); if (hitBox) { hitBox.Damage(DamageMessage.Create(Stats.Damage, Stats.DamageTypes)); } var impactCollider = hit.collider.GetComponent <ColliderImpact>(); if (impactCollider) { impactCollider.ImpactHit(hit); } } Cannon.Play(); }
protected override void FireRound(Vector3 _, Transform target) { var missile = Instantiate(Missile, FiringPositions.PickOne().position, transform.rotation); missile.Launch(target, DamageMessage.Create(Stats.Damage, Stats.DamageTypes)); }