Exemple #1
0
    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;
    }