Advertisement
EdGr87

Untitled

Jan 6th, 2023
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.41 KB | None | 0 0
  1. Player
  2.  
  3.   private const float _initialSpeed = 5f;
  4.     [SerializeField]
  5.     private float _playerSpeed = _initialSpeed;
  6.     [SerializeField]
  7.     private GameObject _laserPrefab;
  8.     [SerializeField]
  9.     private GameObject _tripleShotPrefab;
  10.     [SerializeField]
  11.     private GameObject _laserContainer;
  12.     [SerializeField]
  13.     private GameObject _playerShields;
  14.     private GameObject _letEngine;
  15.     private GameObject _rightEngine;
  16.     [SerializeField]
  17.     private float _fireRate = 0.5f;
  18.     private float _canFire = -1;
  19.     [SerializeField]
  20.     private int _lives = 3;
  21.     [SerializeField]
  22.     private int _score = 10;
  23.     [SerializeField]
  24.     private bool _isTripleShotEnabled = false;
  25.     private bool _isSpeedEnabled = false;
  26.     private bool _isShieldEnabled = false;
  27.     [SerializeField]
  28.     private bool _isPlayerOne = false;
  29.     [SerializeField]
  30.     private bool _isPlayerTwo = false;
  31.  
  32.     private SpawnMnager _spawnMnager;
  33.     private UIManager _uiManager;
  34.     private Animator _animator;
  35.  
  36.     [SerializeField]
  37.     private AudioClip _laserAudioClip;
  38.  
  39.     private AudioSource _audioSource;
  40.  
  41.     private GameObject _seconPlayer;
  42.     void Start() {
  43.  
  44.         if (SceneManager.GetActiveScene().buildIndex == 1) {
  45.             transform.position = new Vector3(0, 0, 0);
  46.             _isPlayerOne = true;
  47.         } else {
  48.             _seconPlayer = GameObject.Find("seconPlayer");
  49.             _isPlayerTwo = true;
  50.             transform.position = new Vector3(-5.58f, 0, 0);
  51.             _seconPlayer.transform.position = new Vector3(6, 0, 0);
  52.         }
  53.  
  54.         _spawnMnager = GameObject.Find("SpawnManager").GetComponent<SpawnMnager>();
  55.         if (_spawnMnager.Equals(null)) {
  56.             Debug.LogError("We could not find the SpawnManager, make sure its in your scene");
  57.         }
  58.  
  59.  
  60.         _uiManager = GameObject.Find("UI").GetComponent<UIManager>();
  61.         if (_uiManager.Equals(null)) {
  62.             Debug.LogError("We could not find the object named UI, make sure that is spell right");
  63.         }
  64.  
  65.         _animator = GetComponent<Animator>();
  66.         if (_animator.Equals(null)) {
  67.             Debug.LogError("Missing the Animator component");
  68.         }
  69.  
  70.         _letEngine = transform.Find("LeftEngineFail").gameObject;
  71.         if (_letEngine.Equals(null)) {
  72.             Debug.LogError("Make sure that you have the LeftEngineFail inside you player");
  73.         }
  74.  
  75.         _rightEngine = transform.Find("RightEngineFail").gameObject;
  76.         if (_rightEngine.Equals(null)) {
  77.             Debug.LogError("Make sure that you have the RightEngineFail inside you player");
  78.         }
  79.  
  80.         _audioSource = GetComponent<AudioSource>();
  81.         if (_audioSource.Equals(null)) {
  82.             Debug.LogError("Make sure that you have the Audio Source component");
  83.         }
  84.  
  85.     }
  86.  
  87.     // Update is called once per frame
  88.     void Update() {
  89.         CalculateMovement();
  90.         PlayerBounds();
  91.  
  92.         if (Input.GetButtonDown("Fire1") && Time.time > _canFire) {
  93.             _canFire = Time.time + _fireRate;
  94.             ShootLaser(_isTripleShotEnabled);
  95.         }
  96.     }
  97.  
  98.     private void ShootLaser(bool tripleShotEnable) {
  99.         GameObject laserContainer;
  100.         if (!tripleShotEnable) {
  101.             laserContainer = Instantiate(_laserPrefab,
  102.                transform.position + new Vector3(0, 0.8f, 0),
  103.                Quaternion.identity);
  104.  
  105.         } else {
  106.             laserContainer = Instantiate(_tripleShotPrefab,
  107.                 transform.position,
  108.                 Quaternion.identity);
  109.         }
  110.         laserContainer.transform.parent = _laserContainer.transform;
  111.         _audioSource.clip = _laserAudioClip;
  112.         _audioSource.Play();
  113.     }
  114.  
  115.     private void PlayerBounds() {
  116.         // X - Axis bounds
  117.         if (transform.position.x > 11.3) {
  118.             transform.position = new Vector3(-11.3f, transform.position.y, 0);
  119.         } else if (transform.position.x < -11.3) {
  120.             transform.position = new Vector3(11.3f, transform.position.y, 0);
  121.         }
  122.  
  123.         //Y - Axis Bounds
  124.         if (transform.position.y > 7.5) {
  125.             transform.position = new Vector3(transform.position.x, -7.5f, 0);
  126.         } else if (transform.position.y < -7.5) {
  127.             transform.position = new Vector3(transform.position.x, 7.5f, 0);
  128.         }
  129.     }
  130.  
  131.     private void CalculateMovement() {
  132.  
  133.         float HorizontalInput = Input.GetAxis("Horizontal");
  134.         float VerticalInput = Input.GetAxis("Vertical");
  135.         Vector3 direction = new(HorizontalInput, VerticalInput, 0);
  136.         _animator.SetFloat("PlayerTurn", HorizontalInput);
  137.         _animator.SetInteger("OriginalPos", (int)HorizontalInput);
  138.  
  139.         transform.Translate(direction * _playerSpeed * Time.deltaTime);
  140.  
  141.     }
  142.  
  143.     public void Damage() {
  144.  
  145.         if (_isShieldEnabled == true) {
  146.  
  147.             _isShieldEnabled = false;
  148.             _playerShields.SetActive(false);
  149.             return;
  150.         }
  151.  
  152.         _lives -= 1;
  153.         _uiManager.UpdateLives(_lives);
  154.         if (_lives == 2) {
  155.             _letEngine.SetActive(true);
  156.         } else if (_lives == 1) {
  157.             _rightEngine.SetActive(true);
  158.         } else if (_lives == 0) {
  159.             _spawnMnager.StopSpawnning();
  160.             Destroy(gameObject);
  161.         }
  162.  
  163.     }
  164.  
  165.     public void EnablePowerUp(int PowerupID) {
  166.         switch (PowerupID) {
  167.  
  168.             case 0:
  169.                 _isTripleShotEnabled = true;
  170.                 StartCoroutine(TripleShotPowerDown());
  171.                 break;
  172.             case 1:
  173.                 if (_isSpeedEnabled == false) {
  174.                     _isSpeedEnabled = true;
  175.                     _playerSpeed *= 2;
  176.                     StartCoroutine(SpeedPowerDown());
  177.                 }
  178.                 break;
  179.             case 2:
  180.                 _isShieldEnabled = true;
  181.                 _playerShields.SetActive(true);
  182.                 break;
  183.         }
  184.     }
  185.  
  186.     IEnumerator SpeedPowerDown() {
  187.  
  188.         yield return new WaitForSeconds(5);
  189.         _isSpeedEnabled = false;
  190.         _playerSpeed = _initialSpeed;
  191.     }
  192.  
  193.     IEnumerator TripleShotPowerDown() {
  194.  
  195.         yield return new WaitForSeconds(5);
  196.         _isTripleShotEnabled = false;
  197.     }
  198.  
  199.     internal void AddScrore(int points) {
  200.  
  201.         _score += points;
  202.  
  203.         _uiManager.UpdateScore(_score);
  204.     }
  205. }
  206.  
  207. Laser
  208.  
  209.  [SerializeField]
  210.     private float _speed = 8.0f;
  211.     private Player _player;
  212.     [SerializeField]
  213.     private bool _isEnemyLaser = false;
  214.  
  215.  
  216.     private void Start() {
  217.         _player = GameObject.Find("Player").GetComponent<Player>();
  218.         if (_player.Equals(null)) {
  219.             Debug.LogError("We could not find the object named Player, make sure that is spell right");
  220.         }
  221.     }
  222.     void Update() {
  223.         if (_isEnemyLaser == true) {
  224.             MoveDown();
  225.         } else {
  226.             MoveUp();
  227.         }
  228.        
  229.     }
  230.  
  231.     private void MoveUp() {
  232.         transform.Translate(Vector3.up * _speed * Time.deltaTime);
  233.  
  234.         if (transform.position.y > 8f) {
  235.             Destroy(gameObject);
  236.         }
  237.     }
  238.  
  239.         private void MoveDown() {
  240.         transform.Translate(Vector3.down * _speed * Time.deltaTime);
  241.  
  242.         if (transform.position.y < -8f) {
  243.             Destroy(gameObject);
  244.         }
  245.     }
  246.  
  247.     public void AssignEnemyLaser() {
  248.         _isEnemyLaser = true;
  249.     }
  250.  
  251.     private void OnTriggerEnter2D(Collider2D collision) {
  252.         if (collision.CompareTag("Player") && _isEnemyLaser == true) {
  253.             if (collision.TryGetComponent<Player>(out var Player)) {
  254.                 Player.Damage();
  255.             }
  256.         }
  257.     }
  258. }
  259.  [SerializeField]
  260.     private float _speed = 8.0f;
  261.     private Player _player;
  262.     [SerializeField]
  263.     private bool _isEnemyLaser = false;
  264.  
  265.  
  266.     private void Start() {
  267.         _player = GameObject.Find("Player").GetComponent<Player>();
  268.         if (_player.Equals(null)) {
  269.             Debug.LogError("We could not find the object named Player, make sure that is spell right");
  270.         }
  271.     }
  272.     void Update() {
  273.         if (_isEnemyLaser == true) {
  274.             MoveDown();
  275.         } else {
  276.             MoveUp();
  277.         }
  278.        
  279.     }
  280.  
  281.     private void MoveUp() {
  282.         transform.Translate(Vector3.up * _speed * Time.deltaTime);
  283.  
  284.         if (transform.position.y > 8f) {
  285.             Destroy(gameObject);
  286.         }
  287.     }
  288.  
  289.         private void MoveDown() {
  290.         transform.Translate(Vector3.down * _speed * Time.deltaTime);
  291.  
  292.         if (transform.position.y < -8f) {
  293.             Destroy(gameObject);
  294.         }
  295.     }
  296.  
  297.     public void AssignEnemyLaser() {
  298.         _isEnemyLaser = true;
  299.     }
  300.  
  301.     private void OnTriggerEnter2D(Collider2D collision) {
  302.         if (collision.CompareTag("Player") && _isEnemyLaser == true) {
  303.             if (collision.TryGetComponent<Player>(out var Player)) {
  304.                 Player.Damage();
  305.             }
  306.         }
  307.     }
  308. }
  309.  
  310. Enemy
  311.  
  312.   float _enemySpeed = 5f;
  313.     private Player _player;
  314.     private Animator _animator;
  315.     private AudioSource _audioSource;
  316.     [SerializeField]
  317.     private GameObject _enemyLaserPrfab;
  318.     [SerializeField]
  319.     private GameObject _spawnContainer;
  320.     [SerializeField]
  321.     private float _fireRate = 0.5f;
  322.     private float _canFire = -1;
  323.  
  324.     private void Start() {
  325.  
  326.         _player = GameObject.Find("Player").GetComponent<Player>();
  327.         _animator = GetComponent<Animator>();
  328.  
  329.         if (_animator.Equals(null)) {
  330.             Debug.LogError("Missing the Animator component");
  331.         }
  332.         _audioSource = GetComponent<AudioSource>();
  333.         if (_audioSource.Equals(null)) {
  334.             Debug.LogError("Make sure that you have the Audio Source component");
  335.         }
  336.     }
  337.     // Update is called once per frame
  338.     void Update() {
  339.  
  340.         if (Time.time > _canFire) {
  341.  
  342.             _fireRate = Random.Range(3f,7f);
  343.             _canFire = Time.time + _fireRate;
  344.            GameObject _enemyLaser = Instantiate(_enemyLaserPrfab, transform.position, Quaternion.identity);
  345.            var lasers = _enemyLaser.GetComponentsInChildren<Laser>();
  346.             foreach (var item in lasers) {
  347.                 item.AssignEnemyLaser();
  348.             }
  349.         }
  350.  
  351.         CalculateMevement();
  352.     }
  353.  
  354.     private void CalculateMevement() {
  355.         transform.Translate(Vector3.down * _enemySpeed * Time.deltaTime);
  356.         if (transform.position.y < -7.5) {
  357.             float RandomX = Random.Range(-9.41f, 9.41f);
  358.             transform.position = new Vector3(RandomX, 7.5f, 0);
  359.         }
  360.     }
  361.  
  362.     void OnTriggerEnter2D(Collider2D collision) {
  363.         switch (collision.gameObject.tag) {
  364.             case "Player":
  365.                 var player = collision.GetComponent<Player>();
  366.                 if (player != null) {
  367.                     player.Damage();
  368.                     _enemySpeed = 0;
  369.                     _animator.SetTrigger("Death");
  370.                     _audioSource.Play();
  371.                     Destroy(gameObject.GetComponent<PolygonCollider2D>());
  372.                     Destroy(gameObject, 2.3f);
  373.                 }
  374.  
  375.                 break;
  376.  
  377.             case "Laser":
  378.                 Destroy(collision.gameObject);
  379.                 _enemySpeed = 0;
  380.                 _audioSource.Play();
  381.                 _player.AddScrore(10);
  382.                 _animator.SetTrigger("Death");
  383.                 Destroy(gameObject, 2.3f);
  384.                 Destroy(gameObject.GetComponent<Collider2D>());
  385.                 break;
  386.         }
  387.     }
  388. }
  389.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement