Exemple #1
0
        private void RefreshInformation()
        {
            PlayerInfo playerInfo = GameProxy.instance.PlayerInfo;
            PvpInfo    pvpInfo    = PvpProxy.instance.PvpInfo;

            textPowerNum.text = PvpFormationProxy.instance.GetPower().ToString();
            textRankNum.text  = pvpInfo.rankNo.ToString();
            textName.text     = GameProxy.instance.AccountName;
            FormationTeamInfo teamInfo = PvpFormationProxy.instance.FormationTeamInfo;

            TransformUtil.ClearChildren(formationRoot, true);

            foreach (var value in teamInfo.teamPosDictionary)
            {
                CommonHeroIcon.View.CommonHeroIcon icon = CommonHeroIcon.View.CommonHeroIcon.Create(formationRoot);
                if (value.Value == playerInfo.instanceID)
                {
                    icon.SetRoleInfo(playerInfo);
                }
                else
                {
                    icon.SetRoleInfo(HeroProxy.instance.GetHeroInfo(value.Value));
                }
            }
        }
        public bool IsPositionEmpty(FormationPosition formationPosition)
        {
//			bool isPositionEmpty = true;
//			isPositionEmpty = !FormationsDictionary.ContainsKey(formationPosition);
//			return isPositionEmpty;
            return(FormationTeamInfo.IsPositionEmpty(formationPosition));
        }
        public void TransferPlayer(uint newPlayerInstanceID)
        {
//			FormationPosition playerPosition = GetPlayerPosition();
//			if(playerPosition != FormationPosition.Invalid_Position)
//				FormationsDictionary[playerPosition] = newPlayerInstanceID;
            FormationTeamInfo.TransferPlayer(newPlayerInstanceID);
        }
        public bool RemoveHeroFromFormation(uint heroInstanceID)
        {
//			FormationPosition formationPosition = GetHeroCurrentFormationPosition(heroInstanceID);
//
//			return RemoveHeroFromFormationAt(formationPosition);
            return(FormationTeamInfo.RemoveHeroFromFormation(heroInstanceID));
        }
        public bool IsTeamUnlocked(int teamIndex)
        {
            FormationTeamType type = (FormationTeamType)(teamIndex - 1 + (int)FormationTeamType.pveFirstTeam);

            if (!formationTeamDictionary.ContainsKey(type))
            {
                return(false);
            }
            FormationTeamInfo info = formationTeamDictionary[type];

            return(info.teamPosDictionary.Count != 0);
        }
        public HeroInfo GetHeroAt(FormationPosition formationPosition)
        {
//			uint heroInstanceID = uint.MinValue;
//			HeroInfo heroInfo = null;
//			if (FormationsDictionary.ContainsKey(formationPosition))
//			{
//				heroInstanceID = FormationsDictionary.GetValue(formationPosition);
//				heroInfo = HeroProxy.instance.GetHeroInfo(heroInstanceID);
//			}
//			return heroInfo;
            return(FormationTeamInfo.GetHeroAt(formationPosition));
        }
        public bool RemoveHeroFromFormationAt(FormationPosition formationPosition)
        {
//			bool result = false;
//			if (IsPositionEmpty(formationPosition))
//			{
//				return result;
//			}
//			List<uint> tempList = FormationsDictionary.GetValues();
//			result = FormationsDictionary.Remove(formationPosition);
//			List<uint> tempList2 = FormationsDictionary.GetValues();
//			return result;
            return(FormationTeamInfo.RemoveHeroFromFormation(formationPosition));
        }
        public FormationPosition GetPlayerPosition()
        {
//			List<FormationPosition> keys = FormationsDictionary.GetKeys();
//			int keyCount = keys.Count;
//			for (int i = 0; i < keyCount; i++)
//			{
//				FormationPosition formationPosition = keys[i];
//				if (GameProxy.instance.IsPlayer(FormationsDictionary[formationPosition]))
//				{
//					return formationPosition;
//				}
//			}
//			return FormationPosition.Invalid_Position;
            return(FormationTeamInfo.GetPlayerPosition());
        }
        public void AddHeroToFormaiton(FormationPosition formationPosition, uint heroInstanceID)
        {
//			FormationPosition oldFormationPosition = GetHeroCurrentFormationPosition(heroInstanceID);
//
//			if (GameProxy.instance.IsPlayer(heroInstanceID))
//			{
//				FormationsDictionary.Remove(oldFormationPosition);
//			}
//			else
//			{
//				RemoveHeroFromFormation(heroInstanceID);
//			}
//
//			if (!IsPositionEmpty(formationPosition))
//			{
//				uint newPositionOldCharacterInstanceID = GetCharacterInstanceIDAt(formationPosition);
//				if (oldFormationPosition != FormationPosition.Invalid_Position)
//				{
//					if (GameProxy.instance.IsPlayer(newPositionOldCharacterInstanceID))
//					{
//						FormationsDictionary.Remove(formationPosition);
//					}
//					else
//					{
//						RemoveHeroFromFormationAt(formationPosition);
//					}
//					FormationsDictionary.Add(oldFormationPosition, newPositionOldCharacterInstanceID);
//					FormationsDictionary.Add(formationPosition, heroInstanceID);
//				}
//				else
//				{
//					if (!GameProxy.instance.IsPlayer(newPositionOldCharacterInstanceID))
//					{
//						RemoveHeroFromFormationAt(formationPosition);
//						FormationsDictionary.Add(formationPosition, heroInstanceID);
//					}
//				}
//			}
//			else
//			{
//				if (FormationsDictionary.Count < 5)
//				{
//					FormationsDictionary.Add(formationPosition, heroInstanceID);
//				}
//			}
            FormationTeamInfo.AddHeroToFormaiton(formationPosition, heroInstanceID);
        }
        public FormationPosition GetHeroCurrentFormationPosition(uint heroInstanceID)
        {
//			FormationPosition formationPosition = FormationPosition.Invalid_Position;
//			if (FormationsDictionary.ContainsValue(heroInstanceID))
//			{
//				List<FormationPosition> keys = FormationsDictionary.GetKeys();
//				int keysCount = keys.Count;
//				for (int keyIndex = 0; keyIndex < keysCount; keyIndex++)
//				{
//					FormationPosition key = keys[keyIndex];
//					if (FormationsDictionary[key] == heroInstanceID)
//					{
//						formationPosition = key;
//					}
//				}
//			}
//			return formationPosition;
            return(FormationTeamInfo.GetHeroFormationPosition(heroInstanceID));
        }
        public bool RemoveHeroFromFormationAt(FormationPosition formationPosition)
        {
//			bool result = false;
//			if (IsPositionEmpty(formationPosition))
//			{
//				return result;
//			}
//
//			if (!GameProxy.instance.IsPlayer(GetCharacterInstanceIDAt(formationPosition)))
//			{
//				result = FormationsDictionary.Remove(formationPosition);
//			}
//
//			return result;
            if (!GameProxy.instance.IsPlayer(GetCharacterInstanceIDAt(formationPosition)))
            {
                return(FormationTeamInfo.RemoveHeroFromFormation(formationPosition));
            }
            return(false);
        }
 public bool IsHeroInFormation(uint heroInstanceID)
 {
     //return FormationsDictionary.ContainsValue(heroInstanceID);
     return(FormationTeamInfo.IsHeroInFormation(heroInstanceID));
 }
//		public int GetFormationHeroCount ()
//		{
//			return FormationsDictionary.Count;
//		}

//		public bool HasEmptyFormationPosition ()
//		{
//			return GetFormationHeroCount() < 5;
//		}
//		public bool HasSameHeroInFormation (int heroDataID)
//		{
//			List<uint> characterInstanceIDs = new List<uint>(FormationsDictionary.Values);
//			int characterInstanceIDCount = characterInstanceIDs.Count;
//			for (int i = 0; i < characterInstanceIDCount; i++)
//			{
//				if (!GameProxy.instance.IsPlayer(characterInstanceIDs[i]))
//				{
//					HeroInfo heroInfo = HeroProxy.instance.GetHeroInfo(characterInstanceIDs[i]);
//					if (heroInfo.heroData.id == heroDataID)
//					{
//						return true;
//					}
//				}
//			}
//			return false;
//		}

        public bool CanAddToFormationPosition(FormationPosition formationPosition, uint addCharacterInstanceID)
        {
//			bool can = true;
//			if (IsHeroInFormation(addCharacterInstanceID))
//			{
//				if (!IsPositionEmpty(formationPosition)
//				    && GetCharacterInstanceIDAt(formationPosition) == addCharacterInstanceID)
//				{
//					can = false;
//				}
//			}
//			else
//			{
//				HeroInfo heroInfo = HeroProxy.instance.GetHeroInfo(addCharacterInstanceID);
//				if (HasSameHeroInFormation(heroInfo.heroData.id))
//				{
//					if (!IsPositionEmpty(formationPosition))
//					{
//						uint characterInstanceID = GetCharacterInstanceIDAt(formationPosition);
//						if (!GameProxy.instance.IsPlayer(characterInstanceID)
//						    && HeroProxy.instance.GetHeroInfo(characterInstanceID).heroData.id == heroInfo.heroData.id)
//						{
//							can = true;
//						}
//						else
//						{
//							can = false;
//						}
//					}
//					else
//					{
//						can = false;
//					}
//				}
//				else
//				{
//					if (!IsPositionEmpty(formationPosition) && GameProxy.instance.IsPlayer((GetCharacterInstanceIDAt(formationPosition))))
//					{
//						can = false;
//					}
//					else
//					{
//						if (!HasEmptyFormationPosition())
//						{
//							if (!IsPositionEmpty(formationPosition))
//							{
//								can = true;
//							}
//							else
//							{
//								can = false;
//							}
//						}
//						else
//						{
//							can = true;
//						}
//					}
//				}
//			}
//			return can;
            return(FormationTeamInfo.CanAddToFormationPosition(formationPosition, addCharacterInstanceID));
        }
        public bool CanAddToFormationPosition(FormationPosition formationPosition, uint addCharacterInstanceID)
        {
//			bool can = true;
//			if (IsHeroInFormation(addCharacterInstanceID))
//			{
//				if (!IsPositionEmpty(formationPosition)
//				    && GetCharacterInstanceIDAt(formationPosition) == addCharacterInstanceID)
//				{
//					can = false;
//				}
//			}
//			else
//			{
//				ExpeditionHeroInfo expeditionInfo = GetExpeditionHeroInfo(addCharacterInstanceID);
////				HeroInfo heroInfo = HeroProxy.instance.GetHeroInfo(addCharacterInstanceID);
//				if (HasSameHeroInFormation(expeditionInfo.roleInfo.modelDataId))
//				{
//					if (!IsPositionEmpty(formationPosition))
//					{
//						uint characterInstanceID = GetCharacterInstanceIDAt(formationPosition);
//						ExpeditionHeroInfo oldInfo = GetExpeditionHeroInfo(characterInstanceID);
//						//if (!GameProxy.instance.IsPlayer(characterInstanceID)&&
//						if( oldInfo.roleInfo.modelDataId == expeditionInfo.roleInfo.modelDataId)
//						{
//							can = true;
//						}
//						else
//						{
//							can = false;
//						}
//					}
//					else
//					{
//						can = false;
//					}
//				}
//				else
//				{
////					if (!IsPositionEmpty(formationPosition) && GameProxy.instance.IsPlayer((GetCharacterInstanceIDAt(formationPosition))))
////					{
////						can = false;
////					}
////					else
////					{
//						if (!HasEmptyFormationPosition())
//						{
//							if (!IsPositionEmpty(formationPosition))
//							{
//								can = true;
//							}
//							else
//							{
//								can = false;
//							}
//						}
//						else
//						{
//							can = true;
//						}
////					}
//				}
//			}
//			return can;
            return(FormationTeamInfo.CanAddToFormationPosition(formationPosition, addCharacterInstanceID));
        }