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); } } }
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; // } //} } }