| Main/System/Battle/BaseBattleWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/BattleConst.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/BattleManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/System/Battle/BaseBattleWin.cs
@@ -194,17 +194,49 @@ if (!FuncOpen.Instance.IsFuncOpen(BattleManager.Instance.passFuncId, true)) return; //主线Boss之外的战斗支持永久特权跳过 int passRound = BattleManager.Instance.defaultPassRound; var name = battleField.ToString(); bool isStoryBossBattleField = name == "StoryBossBattleField"; // 检查是否为永久特权卡玩家 bool hasForeverPrivilege = InvestModel.Instance.IsInvested(InvestModel.foreverCardType); if (hasForeverPrivilege && !isStoryBossBattleField) if (hasForeverPrivilege) { battleField.ForceFinish(); return; // 永久特权卡玩家逻辑 if (BattleConst.FieldNameToIndex.ContainsKey(name)) { int index = BattleConst.FieldNameToIndex[name]; if (BattleManager.Instance.foreverPrivilegePassDict.ContainsKey(index)) { passRound = BattleManager.Instance.foreverPrivilegePassDict[index]; } else { // 未配置的战场类型,使用普通玩家规则 if (BattleManager.Instance.passDict.ContainsKey(index)) { passRound = BattleManager.Instance.passDict[index]; } // 否则使用默认配置 } } // 如果战场类型不在 FieldNameToIndex 中,使用默认配置 } else { // 普通玩家逻辑 if (BattleConst.FieldNameToIndex.ContainsKey(name)) { int index = BattleConst.FieldNameToIndex[name]; if (BattleManager.Instance.passDict.ContainsKey(index)) { passRound = BattleManager.Instance.passDict[index]; } // 否则使用默认配置 } // 如果战场类型不在 FieldNameToIndex 中,使用默认配置 } int passRound = BattleManager.Instance.passRound; int nowRound = battleField.round; if (nowRound < passRound) { @@ -214,6 +246,9 @@ battleField.ForceFinish(); } /// <summary> /// 改变速度 /// </summary> Main/System/Battle/BattleConst.cs
@@ -22,6 +22,14 @@ { "TianziBillboradBattleField", "TianziBillboradBattleWin" }, }; public static Dictionary<string, int> FieldNameToIndex = new Dictionary<string, int>() { { "StoryBossBattleField", 1 }, { "ArenaBattleField", 2 }, { "BoneBattleField", 3}, { "TianziBillboradBattleField", 4 }, }; public const int BattleStartEffectID = 1001; // Example effect ID for battle start public const int skillMotionFps = 30; Main/System/Battle/BattleManager.cs
@@ -26,7 +26,11 @@ } public readonly int[] speedIndexfuncIdArr = new int[] { 34, 35, 36 }; // 战斗倍数对应的功能ID public readonly int passFuncId = 33; // 跳过战斗对应的功能ID public int passRound; // 超过X回合可跳过 public int defaultPassRound; public Dictionary<int, int> passDict = new Dictionary<int, int>(); public Dictionary<int, int> foreverPrivilegePassDict = new Dictionary<int, int>(); public int fightGuideID; public int fightGuideMainLevelLimit; public int fightGuideNoClickSeconds; @@ -46,7 +50,7 @@ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit; ParseConfig(); } void ParseConfig() @@ -61,7 +65,9 @@ challengeBossGuides = JsonMapper.ToObject<int[]>(config.Numerical4); config = FuncConfigConfig.Get("BattleButton"); passRound= int.Parse(config.Numerical1); defaultPassRound = int.Parse(config.Numerical1); passDict = ConfigParse.ParseIntDict(config.Numerical2); foreverPrivilegePassDict = ConfigParse.ParseIntDict(config.Numerical3); } @@ -269,9 +275,9 @@ packQueue.Enqueue(pack); } // packQueue = new Queue<GameNetPackBasic>(newPackList); // packQueue = new Queue<GameNetPackBasic>(newPackList); DistributeNextPackage(); }