| Main/System/BeautyMM/BeautyMMManager.Travel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/BeautyMM/BeautyMMManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/BeautyMM/BeautyMMTravelCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/BeautyMM/BeautyMMTravelWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/System/BeautyMM/BeautyMMManager.Travel.cs
@@ -23,6 +23,7 @@ public int maxGirds = 0; public Int2 clickGirdPos = new Int2(); public bool isClickDoor = false; // 是否点击过门,用于帮玩家自动重置 public void UpdateTravelInfo(HB040_tagSCTravelInfo netPack) { @@ -35,6 +36,11 @@ m_SceneryLVInfo = netPack.SceneryLVInfo; m_Result = netPack.Result; openChangeGridList.Clear(); if (m_Result == 5) { isClickDoor = false; //不需要帮忘记自动重置了 } for (int i = 0; i < netPack.GridCnt; i++) { @@ -114,6 +120,12 @@ return false; } public int GetMaxEnergy() { var value = allMMTalentEffect.ContainsKey((int)TalentEffectType.Travel) ? allMMTalentEffect[(int)TalentEffectType.Travel] : 0; return baseTravelEnergy + value; } Redpoint redpointTravel = new Redpoint(MainRedDot.Redpoint_BeautyMM, MainRedDot.Redpoint_BeautyMM * 10 + 2); void UpdateTravelRedpoint() Main/System/BeautyMM/BeautyMMManager.cs
@@ -27,6 +27,10 @@ public int recoverTravelEnergyTime = 0; // 数值2:恢复1点体力所需时间,分钟 public int[] travelRowCol = new int[2]; // 数值3:游历行列数 行|列 public Dictionary<int, int> allMMTalentAttr = new Dictionary<int, int>(); public Dictionary<int, int> allMMTalentEffect = new Dictionary<int, int>(); public override void Init() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitialize; @@ -44,6 +48,8 @@ beautyMMDataDict.Clear(); beautyMMSkinDataDict.Clear(); m_GridDict.Clear(); allMMTalentAttr.Clear(); allMMTalentEffect.Clear(); } void ParseConfig() @@ -92,6 +98,7 @@ } } UpdateRedpoint(); RefreshAllTalen(); OnBeautyMMDataUpdate?.Invoke(); } @@ -314,7 +321,7 @@ } // 获取MM天赋效果 public int GetMMTalentEffect(int mmID) public Dictionary<int, int> GetMMTalentEffect(int mmID) { int _effect = 0; if (beautyMMDataDict.ContainsKey(mmID)) @@ -335,10 +342,49 @@ _effect += _addLV * config.EffPerLVAdd; } } return _effect; return new Dictionary<int, int>() { {config.EffType, _effect} } ; } } return _effect; return new Dictionary<int, int>(); } void RefreshAllTalen() { foreach (var key in beautyMMDataDict.Keys) { var _dict = GetMMTalentAttr(key); //加到allMMTalentAttr foreach (var _key in _dict.Keys) { if (allMMTalentAttr.ContainsKey(_key)) { allMMTalentAttr[_key] += _dict[_key]; } else { allMMTalentAttr.Add(_key, _dict[_key]); } } var _dict2 = GetMMTalentEffect(key); //加到allMMTalentEffect foreach (var _key in _dict2.Keys) { if (allMMTalentEffect.ContainsKey(_key)) { allMMTalentEffect[_key] += _dict2[_key]; } else { allMMTalentEffect.Add(_key, _dict2[_key]); } } } } #region 红点 @@ -548,8 +594,23 @@ public ushort Exp; //当前等级经验 public ushort AwardLV; //已经领取到的奖励等级记录 } public class BeautyMMSkinData { public class BeautyMMSkinData { public byte State; //是否已激活 public byte Used; //是否已穿戴该时装,某个红颜的所有时装穿戴可能都为0,则前端取默认时装进行展示,如果有同步已穿戴的则以后端为准 public byte Star; //时装星级,激活时为0星 } } // 1.主线战利品上限提高百分比 无 百分比 // 2.演武场挑战胜利,概率额外获得1个物品的概率 物品ID 概率 // 3.游历体力上限增加 无 增加上限 // 4.白骨盈野扫荡额外物品奖励 物品ID 个数 public enum TalentEffectType { MainLine = 1, Arena = 2, Travel = 3, BoneField = 4, } Main/System/BeautyMM/BeautyMMTravelCell.cs
@@ -13,6 +13,7 @@ [SerializeField] UIEffectPlayer openEffect; [SerializeField] UIEffectPlayer boomEffect; [SerializeField] UIEffectPlayer gateEffect; [SerializeField] RotationTween restartTween; public void Display(int index) @@ -116,14 +117,19 @@ if (grid.State == 0 || grid.State == 2) { SoundPlayer.Instance.PlayUIAudio(25); if (BeautyMMManager.Instance.m_Energy == 0) { SysNotifyMgr.Instance.ShowTip("BeautyMM4"); return; } } if (grid.EventID == 100) if (grid.EventID == (int)GirdEventType.Empty) { // 空格子 return; } if (grid.EventID < 99 && grid.EventID > 0) if (grid.EventID < (int)GirdEventType.Door && grid.EventID > 0) { //判断建筑是否都开全了没 if (!BeautyMMManager.Instance.CanOpenBuild()) @@ -132,7 +138,7 @@ return; } } if (grid.EventID == 101) if (grid.EventID == (int)GirdEventType.Horse) { boomEffect.Play(); } @@ -143,6 +149,11 @@ pack.Col = (byte)girdPos.y; GameNetSystem.Instance.SendInfo(pack); BeautyMMManager.Instance.clickGirdPos = girdPos; if (grid.EventID == (int)GirdEventType.Door) { BeautyMMManager.Instance.isClickDoor = true; } } } Main/System/BeautyMM/BeautyMMTravelWin.cs
@@ -43,9 +43,11 @@ protected override void OnPreOpen() { BeautyMMManager.Instance.OnTravelInfoUpdate += OnTravelInfoUpdate; GlobalTimeEvent.Instance.secondEvent += ShowEnergy; BeautyMMManager.Instance.openChangeGridList.Clear(); BeautyMMManager.Instance.isClickDoor = false; BeautyMMManager.Instance.clickGirdPos = new Int2(0, 0); UIManager.Instance.OnCloseWindow += OnCloseWindow; rateTipRect.SetActive(false); @@ -57,6 +59,7 @@ { BeautyMMManager.Instance.OnTravelInfoUpdate -= OnTravelInfoUpdate; UIManager.Instance.OnCloseWindow -= OnCloseWindow; GlobalTimeEvent.Instance.secondEvent -= ShowEnergy; } void OnTravelInfoUpdate(int result) @@ -65,7 +68,6 @@ Display(); if (result == 2) { //BeautyMMManager.Instance.clickGirdPos boomRowEffect.transform.localPosition = new Vector3(0, -((BeautyMMManager.Instance.clickGirdPos.x - 1) * gridHeight + gridHeight / 2), 0); boomRowEffect.Play(); @@ -120,6 +122,26 @@ buildImgs[i].SetActive(false); } } ShowEnergy(); } void ShowEnergy() { processImg.fillAmount = BeautyMMManager.Instance.m_Energy*1.0f / BeautyMMManager.Instance.GetMaxEnergy(); processText.text = BeautyMMManager.Instance.m_Energy.ToString() + "/" + BeautyMMManager.Instance.GetMaxEnergy().ToString(); if (processImg.fillAmount >= 1) { timeText.text = Language.Get("BeautyMM27"); } else { //BeautyMM12 var remainSeconds = BeautyMMManager.Instance.recoverTravelEnergyTime * 60 - (TimeUtility.AllSeconds - BeautyMMManager.Instance.m_EnergyTime); timeText.text = Language.Get("BeautyMM12", TimeUtility.SecondsToMS((int)remainSeconds)); } } void DisplyRate() @@ -145,8 +167,8 @@ Dictionary<int, int> buildEffectDic = new Dictionary<int, int>() { {1, 1073}, {2, 1078}, {3, 1083} {4, 1078}, {6, 1083} }; void DisplayBuildResult() { @@ -157,7 +179,43 @@ } buildResultBtn.SetActive(true); var startEffectID = buildEffectDic[BeautyMMManager.Instance.m_SceneryType] + GetSuccessCnt(); buildResultEffect.effectId = startEffectID; buildResultEffect.isPlaySpineLoop = true; buildResultEffect.Play(1); //public uint m_SceneryLVInfo; //景观升级信息:0-还未处理景观升级;个位数-第1次升级成功与否,1-成功,2-失败;十位-第2次 ... for (int i = 0; i < whatImgs.Length; i++) { //0显示问号 1 成功 2 失败 var value = BeautyMMManager.Instance.m_SceneryLVInfo; for (int j = 0; j < i; j++) { value /= 10; } var result = value % 10; whatImgs[i].SetActive(result == 0); rightImgs[i].SetActive(result == 1); wrongImgs[i].SetActive(result == 2); } } //public uint m_SceneryLVInfo; //景观升级信息:0-还未处理景观升级;个位数-第1次升级成功与否,1-成功,2-失败;十位-第2次 ... int GetSuccessCnt() { uint value = BeautyMMManager.Instance.m_SceneryLVInfo; //总共4次 var cnt = 0; for (int i = 0; i < 4; i++) { if (value % 10 == 1) { cnt++; } value /= 10; } return cnt; } void BuildLVUP() @@ -189,7 +247,7 @@ if (ui is CommonGetItemWin) { var gird = BeautyMMManager.Instance.GetGrid(BeautyMMManager.Instance.clickGirdPos); if (gird != null && gird.EventID == (int)GirdEventType.Door) if (BeautyMMManager.Instance.isClickDoor && gird != null && gird.EventID == (int)GirdEventType.Door) { //默认请求下一局 var pack = new CB040_tagCSTravelClick();