2019-08-04 00:59:18 +02:00
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace Saltosion.OneWeapon {
|
|
|
|
|
public class Gun : MonoBehaviour {
|
|
|
|
|
|
|
|
|
|
public Bullet Bullet;
|
2019-08-04 15:43:22 +02:00
|
|
|
|
public SpriteRenderer Sprite;
|
|
|
|
|
public Transform BulletHole;
|
2019-08-04 20:01:28 +02:00
|
|
|
|
public float Cooldown = 0.5f;
|
2019-08-04 00:59:18 +02:00
|
|
|
|
|
|
|
|
|
private bool IsHeld = false;
|
2019-08-04 20:01:28 +02:00
|
|
|
|
private float CurrCooldown = 0;
|
|
|
|
|
|
|
|
|
|
void Update() {
|
|
|
|
|
if (CurrCooldown > 0) {
|
|
|
|
|
CurrCooldown -= Time.deltaTime;
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-08-04 00:59:18 +02:00
|
|
|
|
|
|
|
|
|
void OnTriggerEnter2D(Collider2D collider) {
|
|
|
|
|
if (IsHeld) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Player Player = collider.GetComponent<Player>();
|
|
|
|
|
if (Player != null) {
|
|
|
|
|
IsHeld = true;
|
|
|
|
|
Player.SetGun(this);
|
|
|
|
|
Destroy(GetComponent<BoxCollider2D>());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-08-04 20:01:28 +02:00
|
|
|
|
public bool Shoot(Vector2 direction, float rotation) {
|
2019-08-04 00:59:18 +02:00
|
|
|
|
if (Bullet == null) {
|
|
|
|
|
Debug.LogError("THERE IS NO BULLET");
|
|
|
|
|
} else {
|
2019-08-04 20:01:28 +02:00
|
|
|
|
if (CurrCooldown <= 0) {
|
|
|
|
|
CurrCooldown = Cooldown;
|
|
|
|
|
Bullet ShotBullet = Instantiate(Bullet, BulletHole.position, new Quaternion());
|
|
|
|
|
ShotBullet.Direction = direction.normalized;
|
|
|
|
|
ShotBullet.InitialRotation = rotation;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2019-08-04 00:59:18 +02:00
|
|
|
|
}
|
2019-08-04 20:01:28 +02:00
|
|
|
|
return false;
|
2019-08-04 00:59:18 +02:00
|
|
|
|
}
|
2019-08-04 15:43:22 +02:00
|
|
|
|
|
|
|
|
|
public void FlipGun(bool flipped) {
|
|
|
|
|
Sprite.flipY = flipped;
|
|
|
|
|
}
|
2019-08-04 00:59:18 +02:00
|
|
|
|
}
|
|
|
|
|
}
|