Placido_GDD

MVC EnemyManager

Feb 9th, 2022 (edited)
866
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.81 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5.  
  6. public class EnemyManager : MonoBehaviour
  7. {
  8.     public EnemyDataContainer EDC;
  9.     public EnemyData enemyData;
  10.     public GameObject target;
  11.     public PlayerControl playerControl;
  12.     // Start is called before the first frame update
  13.     void Start()
  14.     {
  15.         EDC = GameObject.FindGameObjectWithTag("EDC").GetComponent<EnemyDataContainer>();
  16.         target = GameObject.FindGameObjectWithTag("Player");
  17.         playerControl = GameObject.FindGameObjectWithTag("GameController").GetComponent<PlayerControl>();
  18.     }
  19.  
  20.     // Update is called once per frame
  21.     void Update()
  22.     {
  23.         ManageEnemyLogic();
  24.         ManageEnemyHP();
  25.     }
  26.  
  27.     void ManageEnemyLogic()
  28.     {
  29.         for (int i = 0; i < EDC.enemies.Count; i++)
  30.         {
  31.             if (EDC.enemyData[i] != null)
  32.             {
  33.                 switch (EDC.enemyData[i].logicID)
  34.                 {
  35.                     case 0:
  36.                         //Debug.Log(EDC.enemies[i] + "is Idle");
  37.                         EDC.enemyData[i].isRotating = true;
  38.                         StartCoroutine(Scanning(EDC.enemyData[i], EDC.enemies[i]));
  39.                         //Idle
  40.                         break;
  41.                     case 1:
  42.                         //Debug.Log(EDC.enemies[i] + "is Wandering");
  43.                         EDC.enemyData[i].Wander(EDC.enemies[i], EDC.enemyData[i].agent);
  44.                         break;
  45.                     case 2:
  46.                         //Debug.Log(EDC.enemies[i] + "is pursuing");
  47.                         EDC.enemyData[i].Pursue(target, EDC.enemies[i], EDC.enemyData[i].moveSpeed, playerControl.playerData.walkSpeed, EDC.enemyData[i].agent, playerControl);                      
  48.                         break;
  49.                     case 3:
  50.                         //Debug.Log(EDC.enemies[i] + "is Hiding");
  51.                         EDC.enemyData[i].Hide(target, EDC.enemies[i], EDC.enemyData[i].agent);                  
  52.                         break;
  53.                 }
  54.             }
  55.  
  56.            
  57.         }
  58.        
  59.     }
  60.  
  61.  
  62.  
  63.     void ManageEnemyScanBehavior(EnemyData ED,GameObject EGO)
  64.     {
  65.         //StartCoroutine(Scanning(ED,EGO));
  66.     }
  67.  
  68.     private IEnumerator Scanning(EnemyData ED,GameObject EGO)
  69.     {
  70.         ED.Scan(EGO, ED.newRoT, ED.rotateDur, ED.isRotating);
  71.         yield return new WaitForSeconds(ED.rotateDur);
  72.         //Debug.Log("Rotating Counter-clockwise");
  73.         ED.Scan(EGO,ED.reverseRoT, ED.rotateDur,ED.isRotating);
  74.         yield return new WaitForSeconds(ED.rotateDur);
  75.         ED.isRotating = false;
  76.         if (ED.isRotating == false)
  77.         {
  78.             ED.logicID = 1;
  79.         }
  80.         //
  81.         //Debug.Log("Stopping Rotations");
  82.     }
  83.     void ManageEnemyHP()
  84.     {
  85.         for (int i = 0; i < EDC.enemies.Count; i++)
  86.         {
  87.             if (EDC.enemyData[i] != null)
  88.             {
  89.                 if (EDC.enemyData[i].health <= 0)
  90.                 {
  91.                     EDC.removeEnemies.Add(EDC.enemies[i]);
  92.                     EDC.removeEnemyData.Add(EDC.enemyData[i]);
  93.                     EDC.enemyCount--;
  94.                 }
  95.                 else if (EDC.enemyData[i].health > 0 && EDC.enemyData[i].health <= EDC.enemyData[i].hpThreshold)
  96.                 {
  97.                     EDC.enemyData[i].logicID = 3;
  98.                 }
  99.                 else if (EDC.enemyData[i].health > EDC.enemyData[i].hpThreshold)
  100.                 {
  101.  
  102.                    
  103.                 }
  104.             }
  105.         }
  106.  
  107.         foreach (GameObject enemy in EDC.removeEnemies)
  108.         {
  109.             EDC.enemies.Remove(enemy);
  110.             Destroy(enemy);
  111.         }
  112.         foreach (EnemyData enemyData in EDC.removeEnemyData)
  113.         {
  114.             EDC.enemyData.Remove(enemyData);
  115.         }
  116.     }
  117. }
  118.  
Add Comment
Please, Sign In to add comment