using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SocialPlatforms;
using UnityEngine.UI;
public class FireSystem : MonoBehaviour
{
public float reloadcooldown;
public float AmmoInGun;
public float AmmoInPocket;
public float AmmoMax;
float AddableAmmo;
float reloadtimer;
public Text AmmoCounter;
public Text PocketAmmoCounter;
public GameObject impactEffect;
RaycastHit hit;
public GameObject raypoint;
public CharacterController Karakter;
Animator GunAnimset;
public bool CanFire;
private float gunTimer;
public float gunCoolDown;
public ParticleSystem MuzzleFlash;
AudioSource seskaynak;
public AudioClip FireSound;
public float range;
public AudioClip reloadsound;
void Start()
{
seskaynak = GetComponent<AudioSource>();
GunAnimset = GetComponent<Animator>();
}
void Update()
{
AmmoCounter.text = AmmoInGun.ToString();
PocketAmmoCounter.text = AmmoInPocket.ToString();
AddableAmmo = AmmoMax - AmmoInGun;
if (AddableAmmo > AmmoInPocket)
{
AddableAmmo = AmmoInPocket;
}
if (Input.GetKeyDown(KeyCode.R) && AddableAmmo > 0 && AmmoInPocket > 0)
{
if (Time.time > reloadtimer)
{
StartCoroutine("Reload");
reloadtimer = Time.time + reloadcooldown;
}
}
if (Input.GetKey(KeyCode.Mouse0) && CanFire == true && Time.time > gunTimer && AmmoInGun > 0)
{
Fire();
gunTimer = Time.time + gunCoolDown;
}
}
void Fire()
{
AmmoInGun--;
if (Physics.Raycast(raypoint.transform.position, raypoint.transform.forward, out hit, range))
{
MuzzleFlash.Play();
seskaynak.Play();
seskaynak.clip = FireSound;
Debug.Log(hit.transform.name);
GunAnimset.Play("fire", -1, 0f);
Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
IEnumerator Reload()
{
GunAnimset.SetBool("isReloading", true);
seskaynak.clip = reloadsound;
seskaynak.Play();
yield return new WaitForSeconds(0.3f);
GunAnimset.SetBool("isReloading", false);
yield return new WaitForSeconds(1.4f);
AmmoInGun = AmmoInPocket + AddableAmmo;
AmmoInPocket = AmmoInPocket - AddableAmmo;
}
}
}
}