1
0
Fork 0
Bildschirmflausch-LD41/Assets/Scripts/Entities/Attack/SingleShot.cs

69 lines
1.8 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using UnityEngine;
namespace Assets.Scripts.Entities.Attack {
class SingleShot : IAttack {
2018-04-23 18:38:43 +02:00
protected int damage = 12;
protected float cooldown = 1;
protected int range = 4;
protected float speed = 10;
GameObject owner;
GameObject bulletPrefab;
Transform spawn;
public SingleShot(GameObject owner)
{
this.owner = owner;
}
public SingleShot(GameObject owner, int damage, float cooldown, float speed)
{
this.owner = owner;
this.damage = damage;
this.cooldown = cooldown;
this.speed = speed;
}
2018-04-23 20:19:12 +02:00
public void SetCooldown(float cd) {
cooldown = cd;
}
public void SetSpawn(Transform t) {
spawn = t;
}
public void SetPrefab(GameObject bullet) {
this.bulletPrefab = bullet;
}
public void Attack() {
2018-04-23 19:50:04 +02:00
if ( bulletPrefab == null ) {
Debug.Log("SingleShot: No Prefab defined for Bullet!");
return;
2018-04-23 19:50:04 +02:00
}
2018-04-23 18:52:21 +02:00
GameObject b = UnityEngine.Object.Instantiate(bulletPrefab);
b.transform.rotation = spawn.rotation;
b.transform.position = spawn.position;
Bullet bu = b.GetComponent<Bullet>();
bu.SetDamage(damage);
2018-04-23 18:38:43 +02:00
bu.SetSpeed(speed);
bu.SetOwner(owner);
2018-04-23 21:25:35 +02:00
bu.StartBullet();
2018-04-23 23:14:41 +02:00
if (owner.name.Contains("Player"))
GameController.instance.GetAudioControl().SfxPlay(AudioControl.Sfx.shoot);
else
GameController.instance.GetAudioControl().SfxPlay(AudioControl.Sfx.mobattack);
}
public float GetCooldownTime() {
return cooldown;
}
public float GetRange() {
return range;
}
}
}