예제 #1
0
    void Awake()
    {
        ui                = GetComponent <EnemyUI>();
        anim              = body.GetComponent <Animator>();
        _player           = GameObject.FindGameObjectWithTag("Player");
        enemyAgent        = GetComponent <NavMeshAgent>();
        enemyAgent.speed  = walkSpeed;
        spearKillCollider = attackKickSpear.GetComponent <BoxCollider>();

        if (gaurdPoint != null)
        {
            lookTowardsHere = gaurdPoint.transform.GetChild(0);
            currentPoint    = gaurdPoint;
            enemyAgent.SetDestination(currentPoint.transform.position);
        }
        else
        {
            Debug.LogError("Guard does not have 1st patrol point set!");
        }

        if (PatrollingEnemy == true && gaurdPoint2 != null)
        {
            currentGuardPointToGo = 2;
            lookTowardsHere2      = gaurdPoint2.transform.GetChild(0);
            StartCoroutine(NextPatrolPointDelay());
        }
        else if (PatrollingEnemy == true && gaurdPoint2 == null)
        {
            Debug.LogError("Guard is supposed to patrol but 2nd guard point is not set!");
        }
    }
예제 #2
0
        private void Inject()
        {
            // Services
            ImpactService impactService = new ImpactService();

            // Groupal controller
            PortalsController  portalsController = new PortalsController();
            PortalUICollection portalUIList      = new PortalUICollection();

            portalsController.SetPortalRemoveListener(portalUIList);

            // Factories
            PlayerFactory playerFactory = new PlayerFactory(portalsController, portalsController, impactService, portalUIList);
            EnemyFactory  enemyFactory  = new EnemyFactory(impactService);
            PortalFactory portalFactory = new PortalFactory(portalsController, portalUIList);

            // References
            PlayerUI playerUI  = GameObject.Find("/Player").GetComponent <PlayerUI>();
            EnemyUI  enemyUI1  = GameObject.Find("/Enemies/Enemy1").GetComponent <EnemyUI>();
            EnemyUI  enemyUI2  = GameObject.Find("/Enemies/Enemy2").GetComponent <EnemyUI>();
            PortalUI portalUI1 = GameObject.Find("/Portals/Portal1").GetComponent <PortalUI>();
            PortalUI portalUI2 = GameObject.Find("/Portals/Portal2").GetComponent <PortalUI>();
            PortalUI portalUI3 = GameObject.Find("/Portals/Portal3").GetComponent <PortalUI>();

            // Injection
            playerFactory.CreatePlayer(playerUI);
            enemyFactory.CreateEnemy(enemyUI1);
            enemyFactory.CreateEnemy(enemyUI2);
            portalFactory.CreatePortal(portalUI1);
            portalFactory.CreatePortal(portalUI2);
            portalFactory.CreatePortal(portalUI3);
        }
예제 #3
0
 public override void Start()
 {
     enemyUI = GetComponent <EnemyUI>();
     base.Start();
     target = GameManager.instance.player.gameObject;
     m_horizontalViewHalfAngle = obstViewAngle * 0.5f;
     waitTime = fireCtrl.nextFire * 0.5f;
     startMob();
 }
예제 #4
0
 public virtual void Awake()
 {
     AI      = GetComponent <EnemyBrain>();
     EnemyUI = GetComponent <EnemyUI>();
     EnemyUI.Initialize();
     Health = GetComponent <Health>();
     EnemyUI.UpdateHealthBar(Health);
     Attack = GetComponent <Attack>();
 }
예제 #5
0
        /// <summary>
        /// Do remove enemy after time.
        /// </summary>
        /// <param name="aEnemyThatDied_gameobject">A enemy that died_gameobject.</param>
        /// <param name="aDelay_float">A delay_float.</param>
        private void _doRemoveEnemyAfterTime(EnemyUI aEnemyThatDied_enemyUI, float aTotalTimeUntilDestory_float)
        {
            //
            iGameModel.currentRoundDataVO.removeEnemy(aEnemyThatDied_enemyUI.gameObject);

            aEnemyThatDied_enemyUI.doTweenToSinkIntoGround();

            //
            Destroy(aEnemyThatDied_enemyUI.gameObject, aTotalTimeUntilDestory_float);
        }
예제 #6
0
        /// <summary>
        /// When the enemy died signal.
        /// </summary>
        /// <param name="aEnemyThatDied_gameobject">A enemy that died_gameobject.</param>
        private void _onEnemyDiedSignal(EnemyUI aEnemyThatDied_enemyui)
        {
            //
            _doRemoveEnemyAfterTime(aEnemyThatDied_enemyui, 2f);


            //
            CancelInvoke("_doCheckRoundAndGameStatusAfterTime");
            Invoke("_doCheckRoundAndGameStatusAfterTime", 2.5f);
        }
예제 #7
0
        public void CreateEnemy(EnemyUI enemyUI)
        {
            EnemyController enemyController = new EnemyController();
            EnemyData       enemyData       = new EnemyData(40, 10);

            enemyController.SetEnemyDataOutput(enemyUI);
            enemyController.SetEnemyDeadOutput(enemyUI);
            enemyController.SetImpactService(impactService);
            enemyUI.SetEnemyControllerInput(enemyController);
            enemyUI.SetEnemyData(enemyData);
        }
예제 #8
0
    public void Start()
    {
        UIManager     = this.GetComponent <EnemyUI>();
        playerManager = GameObject.Find("Player").GetComponent <PlayerManager>();
        TextManager   = GameObject.Find("TextPopupArea").GetComponent <TextManager>();
        BuffManager   = this.GetComponent <EnemyBuffManager>();
        vigor         = BuffManager.vigor;
        defence       = BuffManager.defence;

        EnemyCurrHealth = EnemyMaxHealth;
        ChooseIntent();
    }
    // Use this for initialization
    void Start()
    {
        beforePos = transform.position;
        //Enemy가 생성될 때 이를 PlayerUI에 알려준다
        GameObject.Find("Main Camera").GetComponent <PlayerUI>().SearchEnemys();

        sEnemyUI = GetComponent <EnemyUI>();

        //생성된 후 자동으로 플레이어를 추적
        while (playerTransform == null)
        {
            playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
        }
    }
예제 #10
0
        private void OnCollisionEnter(Collision collision)
        {
            GameObject collider = collision.gameObject;
            EnemyUI    enemy    = collider.GetComponent <EnemyUI>();
            PortalUI   portal   = collider.GetComponent <PortalUI>();

            if (enemy != null)
            {
                playerCollisionNotifier.OnCollision(GetPlayerData(), enemy.GetEnemyData());
            }
            if (portal != null)
            {
                playerTeleportationNotifier.OnTeleportation(portal.GetPortalData());
            }
        }
예제 #11
0
    public void InitializeEnemyIndicator(Transform enemyTr, Transform playerTr)
    {
        try
        {
            enemy  = enemyTr;
            player = playerTr;

            enemyUI    = enemy.GetComponent <EnemyUI>();
            mainCamera = GameObject.FindGameObjectWithTag("MainCamera").transform;
            mainCanvas = mainCamera.GetChild(0);

            FOriginalLocalScale = transform.localScale;
        }
        catch (System.NullReferenceException)
        {
            Destroy(gameObject);
        }
    }
예제 #12
0
    // Use this for initialization
    protected override void Start()
    {
        base.Start();
        gunController = GetComponent <GunController>();
        anim          = GetComponent <Animator>();
        audioSource   = GetComponent <AudioSource>();
        pathfinder    = GetComponent <NavMeshAgent>();
        rb            = GetComponent <Rigidbody>();
        capsuleCol    = GetComponent <CapsuleCollider>();
        target        = GameObject.FindGameObjectWithTag("Player").transform;
        enemyUI       = GetComponentInChildren <EnemyUI>();
        enemyUI.gameObject.SetActive(false);
        enemyUI.StartingHealth = startingHealth;
        enemyUI.Health         = startingHealth;
        gunController.EquipGun();

        target.GetComponent <Player>().OnDeath += OnPlayerDeath;
    }
예제 #13
0
    public override int TakeDamage(Vector2Int locationOfAttack, int amount)
    {
        int oldHealth = Health.CurrentHealth;

        Animation.GetHit(locationOfAttack);
        BattleManager.cardResolveStack.AddDamageDealt(amount);
        Health.TakeDamage(amount);
        int damageDealt = oldHealth - Health.CurrentHealth;

        BattleManager.cardResolveStack.AddDamageDealt(damageDealt);
        EnemyUI.UpdateHealthBar(Health);
        if (Health.IsDead)
        {
            Eliminate(); // KO'd
        }
        else
        {
            EnemyUI.FadeHealthBar();
        }
        return(damageDealt);
    }
예제 #14
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetMouseButtonDown(0))
     {
         GameObject Target = DetectObject();
         if (Target != null)
         {
             Light spotLight = Target.GetComponentInChildren <Light>();
             if (spotLight != null)
             {
                 spotLight.enabled = true;
             }
             EnemyUI EUI = Target.GetComponent <EnemyUI>();
             if (EUI != null)
             {
                 EUI.Selected = true;
             }
             SelectedObject = Target;
         }
         else if (SelectedObject != null && Input.GetKey(KeyCode.LeftShift))
         {
             Light spotLight = SelectedObject.GetComponentInChildren <Light>();
             if (spotLight != null)
             {
                 spotLight.enabled = false;
             }
             EnemyUI EUI = SelectedObject.GetComponent <EnemyUI>();
             if (EUI != null)
             {
                 EUI.Selected = false;
             }
             SelectedObject = Target;
         }
     }
     if (mousePointer != null)
     {
         mousePointer.transform.position = MousePointWorldSpace();
     }
 }
예제 #15
0
 // Start is called before the first frame update
 void Start()
 {
     enemyStats = this.GetComponent <EnemyStats>();
     enemyUI    = this.GetComponent <EnemyUI>();
 }
예제 #16
0
 void Awake()
 {
     ui = GetComponent <EnemyUI>();
 }
예제 #17
0
 private void Awake()
 {
     _instance = this;
 }
	// Use this for initialization
	void Start () 
	{
		//Initialise Combat UI Manager
		ui = GameObject.FindGameObjectWithTag ("Combat UI").GetComponent<CombatUIManager>();
		enemyUI = gameObject.GetComponent<EnemyUI>();

		//Enemies begin with a Random Affinity
		if(randomHealthAffinity)
		{
			affinity = Random.Range (1, 5);

			//Inserting this code because it never ever hits 4 and 5 is not desired
			if(affinity == 5)
			{
				affinity --;
			}
		}
		else
		{
			affinity = forcedHealthAffinity;
		}

		if(randomShieldAffinity)
		{
			shieldAffinity = Random.Range (1, 5);

			//Inserting this code because it never ever hits 4 and 5 is not desired
			if(shieldAffinity == 5)
			{
				shieldAffinity --;
			}
		}
		else
		{
			shieldAffinity = forcedShieldAffinity;
		}

		//Initiate shield 
		shieldMax = shield;

		//Describe the weakness and strength of this enemy's affinity
		switch (affinity)
		{
		case 1: //The affinity is Earth
			affinityWeakness = 2; //Weakness is Fire
			affinityResistance = 3; //Resistant to Lightning
			break;
		case 2: //The affinity is Fire
			affinityWeakness = 4; //Weakness is water
			affinityResistance = 1; //Resistant to Earth
			break;
		case 3: //The affinity is lightning
			affinityWeakness = 1; //Weakness is Earth
			affinityResistance = 4; //Resistant to water
			break;
		case 4:	//The affinity is Water
			affinityWeakness = 3; //Weakness is Lightning
			affinityResistance = 2; //Resistant to Fire
			break;
		}

		if(shield > 0) //If this enemy has a shield
		{
			//Calculate its weakness and strength
			switch(shieldAffinity)
			{
			case 1: //The affinity is Earth
				shieldWeakness = 2; //Weakness is Fire
				shieldResistance = 3; //Resistant to Lightning
				break;
			case 2: //The affinity is Fire
				shieldWeakness = 4; //Weakness is water
				shieldResistance = 1; //Resistant to Earth
				break;
			case 3: //The affinity is lightning
				shieldWeakness = 1; //Weakness is Earth
				shieldResistance = 4; //Resistant to water
				break;
			case 4:	//The affinity is Water
				shieldWeakness = 3; //Weakness is Lightning
				shieldResistance = 2; //Resistant to Fire
				break;
			}
		}

		for(int i = 0; i < healthAffinitySwitchObjects.Length; i++)
		{
			healthAffinitySwitchObjects[i].GetComponent<Renderer>().material = healthAffinityMaterials[0];
		}

		for(int i = 0; i < shieldAffinitySwitchObjects.Length; i++)
		{
			shieldAffinitySwitchObjects[i].GetComponent<Renderer>().material = shieldAffinityMaterials[0];
		}
	}
예제 #19
0
 private void Awake()
 {
     uiCameraCanvas = GameObject.Find("UICanvas").GetComponent <Canvas>();
     enemyUI        = Instantiate(uiPrefab, uiCameraCanvas.transform);
     ui             = enemyUI.GetComponent <EnemyUI>();
 }
예제 #20
0
 protected override void Awake()
 {
     base.Awake();
     enemyUI = transform.Find("Canvas").GetComponent <EnemyUI>();
 }
예제 #21
0
 public void ApplyDamage(EnemyUI enemyToHurt)
 {
     EnemyController = enemyToHurt;
     enemyToHurt.TakeDamage(Damage, transform.position);
     print("Take that, enemy!");
 }
예제 #22
0
 void OnEnable() {
     enemyUI = GetComponent<EnemyUI>();
     enemyUI.SetHealthUI(enemyHealth);
 }