示例#1
0
        void OnTerritoryListListener(string path, INodeData data)
        {
            NationTerritoryList territoryData = data as NationTerritoryList;

            if (!territoryData.Updated)
            {
                return;
            }

            for (var i = 0; i < NationManager.Instance.List.Members.Count; i++)
            {
                var nation          = NationManager.Instance.List.Members[i];
                int territory_count = System.Array.FindAll(NationManager.Instance.TerritoryList.TerritoryList, m => m.Owner == nation.Name).Length;
                nation.Occupancy = (float)territory_count / NationManager.Instance.TerritoryList.TerritoryList.Length;
            }

            for (var i = 0; i < OccupancyEntrys.Length; i++)
            {
                var        entry      = OccupancyEntrys[i];
                NationData nationData = NationManager.Instance.List.Find(entry.natinName);
                LTUIUtil.SetText(entry.percentLabel, (nationData.Occupancy * 100) + "%");
                entry.progressBar.value = nationData.Occupancy;
            }

            float myNationOccupancy = NationManager.Instance.List.Find(NationManager.Instance.Account.NationName).Occupancy;

            Hotfix_LT.Data.NationRatingRewardTemplate ratingReward = Hotfix_LT.Data.EventTemplateManager.Instance.GetNationRatingRewardTpl((int)(myNationOccupancy * 100));
            if (ratingReward != null)
            {
                for (int fillIndex = 0; fillIndex < CombatRewardShowItems.Length; ++fillIndex)
                {
                    if (fillIndex < ratingReward.rewardDatas.Count)
                    {
                        CombatRewardShowItems[fillIndex].LTItemData = ratingReward.rewardDatas[fillIndex];
                    }
                    else
                    {
                        CombatRewardShowItems[fillIndex].mDMono.gameObject.SetActive(false);
                    }
                }
            }
            else
            {
                //Debug.Log("Hotfix_LT.Data.NationRatingRewardTemplate is null for Occupancy=" + myNationOccupancy);
                for (int fillIndex = 0; fillIndex < CombatRewardShowItems.Length; ++fillIndex)
                {
                    CombatRewardShowItems[fillIndex].mDMono.gameObject.SetActive(false);
                }
            }
        }
示例#2
0
        void SetTerritoryStateData(NationTerritoryList territoryList)
        {
            string myNationName = NationManager.Instance.Account.NationName;

            for (int index = 0; index < territoryList.TerritoryList.Length; ++index)
            {
                TerritoryData curData = territoryList.TerritoryList[index];
                if (curData.HP <= 0)
                {
                    curData.HP = NationManager.Instance.Config.TerritoryConfigs[index].MaxHp;
                }
                if (curData.HP <= 0)
                {
                    EB.Debug.LogError("hp<=0 for territoryindex:{0}", index);
                }
                curData.MaxHP  = NationManager.Instance.Config.TerritoryConfigs[index].MaxHp;
                curData.ADType = eTerritoryAttackOrDefendType.None;
                curData.Index  = index;
                if (curData.State == eTerritoryState.Capture)
                {
                    curData.ADType = eTerritoryAttackOrDefendType.None;
                }
                else if (curData.State == eTerritoryState.Open && System.Array.Find(curData.CanAttackArr, d => d == myNationName) != null)
                {
                    curData.ADType = eTerritoryAttackOrDefendType.Attack;
                }
                else if (curData.State == eTerritoryState.Open && System.Array.Find(curData.CanDefendArr, d => d == myNationName) != null)
                {
                    curData.ADType = eTerritoryAttackOrDefendType.Defend;
                }

                //if (curData.Owner == myNationName)  //自己国家只能防守
                //{
                //	if (curData.State == eTerritoryState.Close||curData.State==eTerritoryState.Occupied||curData.State==eTerritoryState.Invincible)
                //	{
                //		curData.ADType = eTerritoryAttackOrDefendType.None;
                //	}
                //	else if (curData.State == eTerritoryState.Open)
                //	{
                //		int[] nearbyIndexs = NationUtil.GetTerritotyMap(index);
                //		bool isNearbyOther = false;
                //		foreach (var nearbyIndex in nearbyIndexs)
                //		{
                //			TerritoryData nearbydata = territoryList.TerritoryList[nearbyIndex];
                //			if (myNationName != nearbydata.Owner && nearbydata.Owner != eTerritoryType.Neutral.ToString())
                //			{
                //				isNearbyOther = true;
                //				break;
                //			}
                //		}
                //		curData.ADType = isNearbyOther == true ? eTerritoryAttackOrDefendType.Defend : eTerritoryAttackOrDefendType.None;
                //	}
                //}
                //else
                //{
                //	if (curData.State == eTerritoryState.Open)
                //	{
                //		int[] nearbyIndexs = NationUtil.GetTerritotyMap(index);
                //		bool isNearbyI = false;
                //		foreach (var nearbyIndex in nearbyIndexs)
                //		{
                //			TerritoryData nearbydata = territoryList.TerritoryList[nearbyIndex];
                //			if (myNationName == nearbydata.Owner)
                //			{
                //				isNearbyI = true;
                //				break;
                //			}
                //		}
                //		curData.ADType = isNearbyI == true ? eTerritoryAttackOrDefendType.Attack : eTerritoryAttackOrDefendType.None;
                //	}
                //}
            }
        }