コード例 #1
0
        private void TickWeapon()
        {
            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_NodeCircle);

            if (m_ClosestEnemyData == null)
            {
                m_LineRenderer.gameObject.SetActive(false);
                Debug.Log("Closest enemy null!");
                return;
            }
            else
            {
                var closestEnemyPosition = m_ClosestEnemyData.View.transform.position;
                m_View.TowerLookAt(closestEnemyPosition);
                Vector3 projectileOriginPosition = m_View.ProjectileOrigin.position;
                m_LineRenderer.SetPosition(0, projectileOriginPosition);
                m_LineRenderer.SetPosition(1, closestEnemyPosition);
                m_LineRenderer.gameObject.SetActive(true);
            }

            TickTower();

            Debug.Log("Hit Lazer!");
            m_ClosestEnemyData.GetDamage(m_Damage * Time.deltaTime);
        }
コード例 #2
0
ファイル: Player.cs プロジェクト: velik97/TowerDefence
        public Player()
        {
            GridHolder = Object.FindObjectOfType <GridHolder>();
            GridHolder.CreateGrid();
            Grid = GridHolder.Grid;

            TurretMarket = new TurretMarket();

            EnemySearch = new EnemySearch(m_EnemyDatas);
            m_Health    = Game.CurrentLevel.StartHealth;
        }
コード例 #3
0
    public void LinkSearchArrow(int enemyNo, TargetIndicator targetIndicator, EnemySearch enemySearch, Transform canvasTran)
    {
        this.enemyNo = enemyNo;
        //this.searchArrow = searchArrow;

        this.enemySearch = enemySearch;

        this.targetIndicator = targetIndicator;

        targetIndicator.SetUpTarget(gameObject.transform, canvasTran);
    }
コード例 #4
0
        private void TickWeapon()
        {
            List <EnemyData> enemyDatas = EnemySearch.GetEnemiesInNodes(m_Nodes);

            foreach (EnemyData enemyData in enemyDatas)
            {
                Vector3 rad = m_View.transform.position - enemyData.View.transform.position;
                if (rad.sqrMagnitude < m_Radius)
                {
                    enemyData.ReceiveDamage(m_Damage * Time.deltaTime);
                }
            }
        }
コード例 #5
0
 public void TickShoot()
 {
     m_ClosestEnemy = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_rangeNodes);
     if (m_ClosestEnemy == null)
     {
         m_LineRenderer.gameObject.SetActive(false);
     }
     else
     {
         TickTower();
         Vector3 originPosition = m_View.ProjectileOrigin.position;
         m_LineRenderer.transform.position = originPosition;
         m_LineRenderer.SetPosition(1, m_ClosestEnemy.View.transform.position - originPosition);
         m_LineRenderer.gameObject.SetActive(true);
         m_ClosestEnemy.GetDamage(m_Damage);
     }
 }
コード例 #6
0
        private void TickWeapon()
        {
            m_ClosestEnemyData =
                EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_Nodes);
            if (m_ClosestEnemyData == null)
            {
                m_LineRenderer.gameObject.SetActive(false);
                return;
            }

            m_LineRenderer.SetPositions(new [] {
                m_View.ProjectileOrigin.position,
                m_ClosestEnemyData.View.transform.position
            });

            m_LineRenderer.gameObject.SetActive(true);

            TickTower();
            Shoot(m_ClosestEnemyData);
        }
コード例 #7
0
        private void TickWeapon()
        {
            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_NodesInCircle, m_MaxDistance * m_MaxDistance);

            float passedTime = Time.time - m_LastShotTime;

            if (passedTime < m_TimeBetweenShots)
            {
                return;
            }

            if (m_ClosestEnemyData == null)
            {
                return;
            }

            TickTower();

            Shoot(m_ClosestEnemyData);
            m_LastShotTime = Time.time;
        }
コード例 #8
0
        private void TickWeapon()
        {
            float elapsedTime = Time.time - m_LastShotTime;

            if (elapsedTime < m_TimeBetweenShots)
            {
                return;
            }

            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_AvailableNodes);

            if (m_ClosestEnemyData == null)
            {
                return;
            }

            TickTower();

            Shoot(m_ClosestEnemyData);
            m_LastShotTime = Time.time;
        }
コード例 #9
0
        private void TickWeapon()
        {
            float passedTime = Time.time - m_LastShotTime;

            if (passedTime < m_TimeBetweenShots)
            {
                return;
            }

            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_NodeCircle);

            if (m_ClosestEnemyData == null)
            {
                Debug.Log("Closest enemy null!");
                return;
            }

            TickTower();

            Shoot(m_ClosestEnemyData);
            m_LastShotTime = Time.time;
        }
コード例 #10
0
        public void TickShoot()
        {
            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_Nodes);
            if (m_ClosestEnemyData == null)
            {
                m_LineRenderer.gameObject.SetActive(false);
            }
            else
            {
                Vector3 closestEnemyPosition = m_ClosestEnemyData.View.transform.position;
                m_View.TowerLookAt(closestEnemyPosition);

                m_LineRenderer.SetPosition(0, m_View.ProjectileOrigin.position);
                m_LineRenderer.SetPosition(1, closestEnemyPosition);

                m_LineRenderer.gameObject.SetActive(true);

                m_ClosestEnemyData.GetDamage(m_Damage * Time.deltaTime);

                //Debug.Log("Dealt damage");
            }
        }
コード例 #11
0
        private void TickWeapon()
        {
            float passedTime = Time.time - m_LastShotTime;

            if (passedTime < m_TimeBetweenShots)
            {
                return;
            }

            m_ClosestEnemyData =
                EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_Nodes);

            if (m_ClosestEnemyData == null)
            {
                return;
            }

            TickTower();
            //Можем вызвать 2 раза, но это не проблема, а исправлять долго

            Shoot(m_ClosestEnemyData);
            m_LastShotTime = Time.time;
        }
コード例 #12
0
 private bool SetClosest()
 {
     m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_NodesInCircle, m_MaxDistance * m_MaxDistance);
     return(CheckClosest());
 }
コード例 #13
0
 private void TickWeapon()
 {
     m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_AvailableNodes);
 }