| | |
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | curSumAssistNum = DogzAssistDefaultCnt;
|
| | | addAssistCnt = 0;
|
| | | SelectDogzItemQuality = 0;
|
| | | SelectDogzItemStart = 0;
|
| | |
| | |
|
| | | #region 配置
|
| | | private Dictionary<int, Dictionary<int, int>> m_DogzEquipLimit = new Dictionary<int, Dictionary<int, int>>(); //装备位 品质限制
|
| | | public int DogzAssistDefaultCnt { get; private set; } //助战神兽总数
|
| | | public int DogzAssistDefaultCnt { get; private set; } //助战神兽默认数量
|
| | | public int DogzAssistMaxCnt { get; private set; }//助战神兽最大数
|
| | | public int AddAssistItem { get; private set; } //增加助战神兽总数的物品Id
|
| | | public int DogzPackGridCnt { get; private set; } //神兽物品背包格子数
|
| | |
| | |
|
| | | public int GetAssistItemCnt()
|
| | | {
|
| | | return AddAssistItemCnt[addAssistCnt];
|
| | | if(!IsAddMaxAssist())
|
| | | {
|
| | | return AddAssistItemCnt[addAssistCnt];
|
| | | }
|
| | | else
|
| | | {
|
| | |
|
| | | return AddAssistItemCnt[AddAssistItemCnt.Length - 1];
|
| | | }
|
| | | }
|
| | |
|
| | | public bool IsAddMaxAssist()
|
| | | {
|
| | | if (curSumAssistNum < DogzAssistMaxCnt)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | else
|
| | | {
|
| | | return true;
|
| | | }
|
| | | }
|
| | |
|
| | | public int presentSelectDogz { get; set; } //当前选中的神兽id
|
| | |
| | | #region 协议
|
| | |
|
| | | public int addAssistCnt { get; private set; } //额外购买的助战数
|
| | | public int curSumAssistNum { get; private set; } //当前可以助战的神兽数量
|
| | | public void SetServerAddAssistDogzCnt(HA3C0_tagMCDogzInfo info)
|
| | | {
|
| | | addAssistCnt = info.BuyHelpbattleCount;
|
| | | DogzAssistDefaultCnt += addAssistCnt;
|
| | | curSumAssistNum = DogzAssistDefaultCnt + addAssistCnt;
|
| | | if (UpdateAssistDogzEvent != null)
|
| | | {
|
| | | UpdateAssistDogzEvent();
|
| | |
| | | {
|
| | | var configs = Config.Instance.GetAllValues<DogzConfig>();
|
| | | presentSelectDogz = configs[0].ID;
|
| | | foreach (var key in m_DogzEquipLimit.Keys)
|
| | | if(dogzFuncRedpoint.state == RedPointState.Simple)
|
| | | {
|
| | | Redpoint redpoint = GetSingleDogzRedpointById(key);
|
| | | if (redpoint.state == RedPointState.Simple)
|
| | | foreach (var key in m_DogzEquipLimit.Keys)
|
| | | {
|
| | | presentSelectDogz = key;
|
| | | break;
|
| | | Redpoint redpoint = GetSingleDogzRedpointById(key);
|
| | | if (redpoint.state == RedPointState.Simple)
|
| | | {
|
| | | presentSelectDogz = key;
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | foreach(var key in dogzAssistStateDict.Keys)
|
| | | {
|
| | | if(TryGetAssistDogzState(key))
|
| | | {
|
| | | presentSelectDogz = presentSelectDogz > key ? presentSelectDogz : key;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | value.state = RedPointState.None;
|
| | | }
|
| | | bool isMaxAssistNum = GetAssistDogzCount() >= DogzAssistDefaultCnt ? true : false;
|
| | | bool isMaxAssistNum = GetAssistDogzCount() >= curSumAssistNum ? true : false;
|
| | | int minAlreadyAssistId = 0;
|
| | | foreach (var dogzId in m_DogzEquipLimit.Keys)
|
| | | {
|
| | | if (TryGetAssistDogzState(dogzId)
|
| | | && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
|
| | | {
|
| | | minAlreadyAssistId = dogzId;
|
| | | }
|
| | | }
|
| | |
|
| | | if (!isMaxAssistNum)
|
| | | {
|
| | | int minAlreadyAssistId = 0;
|
| | | foreach (var dogzId in m_DogzEquipLimit.Keys)
|
| | | {
|
| | | if (TryGetAssistDogzState(dogzId)
|
| | | && ((minAlreadyAssistId < dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
|
| | | {
|
| | | minAlreadyAssistId = dogzId;
|
| | | }
|
| | | }
|
| | |
|
| | | int maxDogzId = 0;
|
| | | foreach(var dogzId in m_DogzEquipLimit.Keys)
|
| | | {
|
| | |
| | | {
|
| | | var equips = GetDogzEquips(dogzId);
|
| | | int equipNum = equips == null ? 0 : equips.Count;
|
| | | if(!TryGetAssistDogzState(dogzId) && equipNum == 5)
|
| | | if(!TryGetAssistDogzState(dogzId) && equipNum == 5
|
| | | && ((minAlreadyAssistId != 0 && dogzId > minAlreadyAssistId) || minAlreadyAssistId == 0))
|
| | | {
|
| | | Redpoint assistRedpoint = GetDogzAssistRedpointById(dogzId);
|
| | | if (assistRedpoint.state == RedPointState.None)
|
| | |
| | | return;
|
| | | }
|
| | | }
|
| | | bool isMaxAssistNum = GetAssistDogzCount() >= DogzAssistDefaultCnt ? true : false;
|
| | | bool isMaxAssistNum = GetAssistDogzCount() >= curSumAssistNum ? true : false;
|
| | | if (!isMaxAssistNum)
|
| | | {
|
| | | int maxEquipNum = 0;
|
| | |
| | | foreach (var dogzId in m_DogzEquipLimit.Keys)
|
| | | {
|
| | | if(TryGetAssistDogzState(dogzId)
|
| | | && ((minAlreadyAssistId < dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
|
| | | && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
|
| | | {
|
| | | minAlreadyAssistId = dogzId;
|
| | | }
|
| | |
| | |
|
| | | public void UpdateAssistNumRed()
|
| | | {
|
| | | if(CheckIsAddAssistNum())
|
| | | if(CheckIsAddAssistNum() && !IsAddMaxAssist())
|
| | | {
|
| | | if(addAssistDogzRedpoint.state == RedPointState.None)
|
| | | {
|