| Main/Common/EventName.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/BattleField/StoryBattleField.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/RecordPlayer/RecordAction.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/RecordPlayer/RecordPlayer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Equip/EquipExchangeCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Equip/EquipModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Equip/FloorItemCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Equip/ItemsOnFloor.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Main/AutoFightModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/Common/EventName.cs
@@ -15,4 +15,5 @@ public const string BATTLE_CAST_SKILL = "BATTLE_CAST_SKILL";//施放技能 public const string BATTLE_END = "BATTLE_END";//战斗结束 public const string RECORDPLAYER_END = "RECORDPLAYER_END"; //战斗小片段结束 } Main/System/Battle/BattleField/StoryBattleField.cs
@@ -154,6 +154,7 @@ base.OnSettlement(turnFightStateData); if (battleState == StoryBattleState.Battle) { EquipModel.Instance.CalcAllFloorItems(); BattleManager.Instance.MainFightRequest(4); } } @@ -163,6 +164,7 @@ { base.HaveRest(); battleState = StoryBattleState.Break; EquipModel.Instance.CalcAllFloorItems(); BattleManager.Instance.MainFightRequest(0); } @@ -220,13 +222,7 @@ //再检查一次有没装备未处理 if (PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems().Count > 0) { //构建所有物品 List<int> dropList = new List<int>(); foreach (var item in PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems()) { dropList.Add(item.gridIndex); } EquipModel.Instance.NotifyItemDrop(dropList, null); EquipModel.Instance.CalcAllFloorItems(); BattleDebug.LogError("RequestFight: 装备未处理"); return false; } Main/System/Battle/RecordPlayer/RecordAction.cs
@@ -38,4 +38,12 @@ isFinish = true; } public virtual string GetBattleFieldGuid() { if (battleField == null) { return string.Empty; } return battleField.guid; } } Main/System/Battle/RecordPlayer/RecordPlayer.cs
@@ -149,10 +149,12 @@ if (currentRecordAction != null && currentRecordAction.IsFinished()) { var guid = currentRecordAction.GetBattleFieldGuid(); BattleDebug.LogError("record action " + currentRecordAction.GetType() + " play finished"); currentRecordAction = null; isWaitingNextAction = true; waitTimer = 0f; EventBroadcast.Instance.Broadcast<string>(EventName.RECORDPLAYER_END, guid); return; } Main/System/Equip/EquipExchangeCell.cs
@@ -172,6 +172,21 @@ uieffect.transform.localScale = new Vector3(0.98f, bgRect.rect.height / uieffect.GetComponent<RectTransform>().rect.height, 1); uieffect.Play(); } //二次处理放大效果 await UniTask.Delay(100); if (effectID == 0) { uieffect.Stop(); } else { uieffect.Stop(); uieffect.effectId = effectID; //计算高度缩放比例 特效显示依赖rect的排版 uieffect.transform.localScale = new Vector3(0.98f, bgRect.rect.height / uieffect.GetComponent<RectTransform>().rect.height, 1); uieffect.Play(); } } Main/System/Equip/EquipModel.cs
@@ -27,12 +27,15 @@ public List<int> lastDropIndexs = new List<int>(); //上一次掉落物品索引 int lastAttackHeroID = 0; public override void Init() { DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent += OnEquipResult; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += BeforePlayerDataInitialize; EventBroadcast.Instance.RemoveListener<string, BattleDrops, Action>(EventName.BATTLE_DROP_ITEMS, OnDropEvent); EventBroadcast.Instance.AddListener<string, BattleDrops, Action>(EventName.BATTLE_DROP_ITEMS, OnDropEvent); EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast); EventBroadcast.Instance.AddListener<string>(EventName.RECORDPLAYER_END, RecordPlayerEnd); ParseConfig(); } @@ -41,6 +44,8 @@ DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent -= OnEquipResult; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= BeforePlayerDataInitialize; EventBroadcast.Instance.RemoveListener<string, BattleDrops, Action>(EventName.BATTLE_DROP_ITEMS, OnDropEvent); EventBroadcast.Instance.RemoveListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast); EventBroadcast.Instance.RemoveListener<string>(EventName.RECORDPLAYER_END, RecordPlayerEnd); } @@ -82,6 +87,7 @@ return -1; } //表现掉落和拾取分离开,先掉落等本武将回合完全结束再拾取 void OnDropEvent(string guid, BattleDrops drops, Action action) { if (!string.IsNullOrEmpty(guid)) @@ -93,21 +99,57 @@ action?.Invoke(); } //拾取时机为下一武将(含敌我)攻击 或者 本轮结算(MainFightRequest 前) void OnSkillCast(string guid, SkillConfig skillConfig, TeamHero teamHero) { bool checkDrop = false; if (!string.IsNullOrEmpty(guid)) return; //防范回收报错 if (teamHero == null) checkDrop = true; //只通知玩家武将的战斗 else if (teamHero.NPCID != 0) checkDrop = true; else if (teamHero.heroId != lastAttackHeroID) { lastAttackHeroID = teamHero.heroId; checkDrop = true; } if (checkDrop) { CalcAllFloorItems(); } } void RecordPlayerEnd(string guid) { if (!string.IsNullOrEmpty(guid)) return; CalcAllFloorItems(); } //掉落通知 public void NotifyItemDrop(List<int> indexs, RectTransform rect) { // 界面不显示则立即处理 if (!UIManager.Instance.IsOpened<HomeWin>()) { for (int i = 0; i < indexs.Count; i++) { CalcFloorEquip(indexs[i]); } } else { // if (!UIManager.Instance.IsOpened<HomeWin>()) // { // for (int i = 0; i < indexs.Count; i++) // { // CalcFloorEquip(indexs[i]); // } // } // else // { // OnItemDropEvent?.Invoke(indexs, rect); // } OnItemDropEvent?.Invoke(indexs, rect); } } public void CalcFloorEquip(int itemIndex) @@ -119,7 +161,6 @@ if (item == null) return; //非自动模式下,筛选装备打开装备操作界面 if (IsEquip(item)) { @@ -131,6 +172,20 @@ } } //处理所有掉落的物品 public void CalcAllFloorItems() { if (PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems().Count == 0) { return; } //构建所有物品 foreach (var item in PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems()) { CalcFloorEquip(item.gridIndex); } } private void OnEquipResult(HA814_tagMCMakeItemAnswer info) { if (info.MakeType != (int)MakeType.EquipOP) Main/System/Equip/FloorItemCell.cs
@@ -62,9 +62,6 @@ else { this.transform.localPosition = startPos; // 手动点击或者自动模式下处理 // EquipModel.Instance.CalcFloorEquip(itemIndex); // itemIndex = -1; } } @@ -76,15 +73,11 @@ void CompleteDrop() { EquipModel.Instance.CalcFloorEquip(itemIndex); // 掉落后直接拾取 改成了本武将攻击完全结束后或者回合结束后 // EquipModel.Instance.CalcFloorEquip(itemIndex); isPlaying = false; itemIndex = -1; } // void OnDisable() // { // CompleteDrop(); // } } Main/System/Equip/ItemsOnFloor.cs
@@ -40,7 +40,8 @@ //主界面切换模式触发 private void OnEnable() { //bug记录:再防范一次,重登销毁后意外的注册了多次,后续检查返回登录界面再进入游戏的情况 //bug记录:因为断线重连直接销毁界面导致OnEnable二次触发中间没有触发OnDisable,出现多次掉落的现象 // 已经调整断线重连逻辑,后续观察返回登录界面情况 EquipModel.Instance.OnItemDropEvent -= NotifyPlayItemDrop; PackManager.Instance.DeleteItemEvent -= DeleteDropItem; //主界面打开和显隐都要刷新 @@ -110,7 +111,7 @@ if (item.isActiveAndEnabled) { //防范一直播放掉落动画,某种原因被打断了后续的界面显示,这里直接触发打开界面 EquipModel.Instance.CalcFloorEquip(i); // EquipModel.Instance.CalcFloorEquip(i); continue; } Main/System/Main/AutoFightModel.cs
@@ -95,7 +95,6 @@ ParseConfig(); DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit; BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField; EventBroadcast.Instance.RemoveListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast); EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast); }