コード例 #1
0
        void EnterTower(EntityView ev)
        {
            if (m_nearTowerID != ev.ID)
            {
                m_TowerEV      = ev;
                m_nearTowerID  = ev.ID;
                m_nearTowerPos = ev.gameObject.transform.position;

                m_soldierCount = 0;
                IList <U3D_Render.EntityView> enemyList = MapFinderManager.Nearest(m_nearTowerPos, TowerStrikingDistance, SPELL.CampFlag.CampFlag_Friend);
                foreach (EntityView entity in enemyList)
                {
                    if (entity.Property != null && entity.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SEX) == (int)MONSTER_TYPE.MONSTER_TYPE_COMMON)
                    {
                        if (entity.StateMachine != null && entity.StateMachine.GetState() != GameLogic.EntityState.Dead)
                        {
                            float dis = Vector3.SqrMagnitude(entity.gameObject.transform.position - m_TowerEV.gameObject.transform.position);
                            if (dis <= TowerStrikingDistance * TowerStrikingDistance)
                            {
                                m_soldierCount++;
                            }
                        }
                    }
                }

                UWarTowerSoldierMsgData data = new UWarTowerSoldierMsgData(true, m_soldierCount);
                UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_WARTOWER_UPDATE, data);
            }
        }
コード例 #2
0
 void ExitTower()
 {
     if (m_nearTowerID != -1)
     {
         m_nearTowerID  = -1;
         m_nearTowerPos = Vector3.one;
         m_soldierCount = 0;
         m_TowerEV      = null;
         UWarTowerSoldierMsgData data = new UWarTowerSoldierMsgData(false, m_soldierCount);
         UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_WARTOWER_UPDATE, data);
     }
 }
コード例 #3
0
        void UpdateNearTowerSoldier()
        {
            m_towerSoldierCheckTimer += Time.deltaTime;
            if (m_towerSoldierCheckTimer >= TowerSoldierCheckTime)
            {
                m_towerSoldierCheckTimer = 0f;

                if (m_nearTowerID > 0)
                {
                    if (m_TowerEV == null || m_TowerEV.gameObject == null)
                    {
                        m_nearTowerID  = -1;
                        m_nearTowerPos = Vector3.one;
                        m_soldierCount = 0;
                        UWarTowerSoldierMsgData msgData = new UWarTowerSoldierMsgData(false, m_soldierCount);
                        UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_WARTOWER_UPDATE, msgData);
                        return;
                    }

                    m_nearTowerPos = m_TowerEV.gameObject.transform.position;
                    m_soldierCount = 0;
                    IList <U3D_Render.EntityView> enemyList = MapFinderManager.Nearest(m_nearTowerPos, TowerStrikingDistance, SPELL.CampFlag.CampFlag_Friend);
                    foreach (EntityView entity in enemyList)
                    {
                        if (entity.Property != null && entity.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SEX) == (int)MONSTER_TYPE.MONSTER_TYPE_COMMON)
                        {
                            if (entity.StateMachine != null && entity.StateMachine.GetState() != GameLogic.EntityState.Dead)
                            {
                                float dis = Vector3.SqrMagnitude(entity.gameObject.transform.position - m_TowerEV.gameObject.transform.position);
                                if (dis <= TowerStrikingDistance * TowerStrikingDistance)
                                {
                                    m_soldierCount++;
                                }
                            }
                        }
                    }

                    UWarTowerSoldierMsgData data = new UWarTowerSoldierMsgData(true, m_soldierCount);
                    UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_WARTOWER_UPDATE, data);
                }
            }
        }
コード例 #4
0
ファイル: WarTowerMessageWnd.cs プロジェクト: zwong91/Titan
 public void UpdateData(UWarTowerSoldierMsgData data)
 {
     countTxt.text = data.nSoldierCount.ToString();
     m_wnd.SetVisible(data.bShow);
 }