Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using Kvant;
- public enum WeaponType
- {
- BulletUp,
- Bullet
- }
- //public enum Flame
- //{
- // Blue,
- // Red
- //}
- //Na real sou o player controller
- public class WeaponController : MonoBehaviour
- {
- public Wall waveReference;
- [SerializeField]
- [Header("O attack reference o player pega automatico no start IGNORE")]
- GameObject attackReference;
- float attackRange;
- #region Enums
- public WeaponType weaponType;
- //public Flame flameColor;
- private IWeapon iWeapon;
- #endregion
- private void HandleWeaponType()
- {
- //To prevent Unity from creating multiple copies of the same component in inspector at runtime
- Component c = gameObject.GetComponent<IWeapon>() as Component;
- if (c != null)
- {
- Destroy(c);
- }
- #region Strategy
- switch (weaponType)
- {
- case WeaponType.BulletUp:
- iWeapon = gameObject.AddComponent<BulletUp>();
- break;
- case WeaponType.Bullet:
- iWeapon = gameObject.AddComponent<Bullet>();
- break;
- default:
- iWeapon = gameObject.AddComponent<Bullet>();
- break;
- }
- #endregion
- }
- //public void HandleFlameColor()
- //{
- // Component c = gameObject.GetComponent<IFlame>() as Component;
- // if (c != null)
- // {
- // Destroy(c);
- // iFlame.DestroyFlame(); // so that number of flame objects remains one
- // }
- // #region Strategy
- // switch (flameColor)
- // {
- // case Flame.Blue:
- // iFlame = gameObject.AddComponent<BlueFlame>();
- // break;
- // case Flame.Red:
- // iFlame = gameObject.AddComponent<RedFlame>();
- // break;
- // default:
- // iFlame = gameObject.AddComponent<BlueFlame>();
- // break;
- // }
- // #endregion
- //}
- public void Fire()
- {
- iWeapon.Shoot();
- }
- void Start()
- {
- attackReference = GameObject.FindGameObjectWithTag("AudioRef");
- HandleWeaponType();
- //HandleFlameColor();
- //iFlame.ShowFlame();
- }
- void BerserkRage()
- {
- print("PUTAÇO");
- }
- void BrutalizaTudo()
- {
- waveReference.positionNoiseAmplitude = 3f; //aumentar gradualmente
- FindObjectOfType<ShakeCamera>().enabled = true;
- }
- void TudoSusu()
- {
- waveReference.positionNoiseAmplitude = 0.7f; //diminuir gradualmente
- FindObjectOfType<ShakeCamera>().enabled = false;
- }
- [SerializeField]
- BreathScript breath;
- [SerializeField]
- [Tooltip("Altura da voz pra captar para dar ataque aéreo")]
- float HardAttackVolumeInput = 2f;
- [SerializeField]
- [Tooltip("Altura da voz pra captar para dar ataque terrestre")]
- float EasyAttackVolumeInput = 1f;
- void AtaquePorVoz()
- {
- if (attackRange > HardAttackVolumeInput)
- {
- weaponType = WeaponType.BulletUp;
- BrutalizaTudo();
- }
- else if (attackRange > EasyAttackVolumeInput)
- {
- weaponType = WeaponType.Bullet;
- Fire();
- }
- else
- {
- TudoSusu();
- print("Fica de boa ai irmão");
- }
- }
- void AtaquePorMouse()
- {
- if (Input.GetMouseButton(0))
- {
- weaponType = WeaponType.BulletUp;
- BrutalizaTudo();
- Fire();
- }
- else if (Input.GetMouseButton(1))
- {
- weaponType = WeaponType.Bullet;
- Fire();
- }
- else
- {
- TudoSusu();
- }
- }
- void Update()
- {
- HandleWeaponType();
- attackRange = attackReference.transform.localScale.y;
- AtaquePorMouse();
- if (Input.GetKeyDown(KeyCode.Space))
- {
- EventManager.onStartGame();
- }
- //to check the value of weaponType in the inspector while in play mode
- if (Input.GetKeyDown(KeyCode.C))
- {
- HandleWeaponType();
- }
- //if (Input.GetKeyDown(KeyCode.F))
- //{
- // HandleFlameColor();
- // iFlame.ShowFlame();
- //}
- }
- #region Colisão
- //Pega local de colisão, alvo, e distribui dano
- void SpawnExplosion(Vector3 hitPosition, Transform target, int damage)
- {
- Explosion temp = target.GetComponent<Explosion>();
- if (temp != null)
- temp.IveBeenHit(hitPosition, damage);
- }
- private void OnTriggerEnter(Collider c)
- {
- if (c.tag == "Enemy" && this.gameObject.tag == "Player")
- {
- SpawnExplosion(c.transform.position, gameObject.transform, 1);
- //SpawnImpulse(c.transform.position, c.transform);
- print("Sentiu");
- //GetHit();
- }
- }
- #endregion
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement