public void Attack(Entity ent) { var dist = (int)Vector2.Distance(Position, ent.Position); var hit = Accuracy.AttemptHit(Weapon, dist, AccuracyMod); if (Weapon.Silenced) { GetComponent <AudioSource>().PlayOneShot(silentShootSound); } else { GetComponent <AudioSource>().PlayOneShot(shootSound); } SpawnBullet(Position, ent.Position); SpawnHitResult(ent.Position, hit); ent.Attacked(); if (hit) { ent.Health -= Weapon.Damage; GetComponent <AudioSource>().PlayOneShot(hitSound); } if (ent.Health <= 0) { ent.State = EntState.Dead; } AP -= Weapon.APCost; }