lcy
2025-11-06 09bc892c7283df8757a07b646d5af21ddaa263d1
Main/System/Battle/BattleField/OperationAgent/HandModeOperationAgent.cs
@@ -5,77 +5,42 @@
public class HandModeOperationAgent : IOperationAgent
{
   protected StoryBattleField storyBattleField;
   bool autoNext = false;   //预存玩家的下一次攻击,让下一次自动执行,因为玩家点的时机不一定是刚好的可攻击状态
   public HandModeOperationAgent(BattleField battleField) : base(battleField)
   {
      storyBattleField = battleField as StoryBattleField;
   }
   float lastTime;
   public override void Run()
   {
      base.Run();
      if (autoNext)
      {
         if (Time.time - lastTime < 0.1f)
            return;
         lastTime = Time.time;
         if (storyBattleField.RequestFight())
         {
            //直到成功为止
            autoNext = false;
         }
      }
   }
   //   通过主界面的按钮推动(调用)DoNext
   public override void DoNext()
   {
      base.DoNext();
      //   当前没有在播放战斗录像
      if (!battleField.recordPlayer.IsPlaying())
      if (!storyBattleField.RequestFight())
      {
         // 没有下一个包可以发了
         if (!BattleManager.Instance.DistributeNextPackage())
         {
            //   请求下一个战斗包 或者检查战斗是否结束
            // ReqType; // 0-停止战斗回城;1-设置消耗倍值;2-挑战关卡小怪;3-挑战关卡boss;4-继续战斗;
            //   如果在休息 点一下之后应该是挑战小怪或者挑战关卡
            //  如果在战斗 战斗是否结束/战斗持续中 结束应该是挑战下一关 持续应该是继续战斗
            //   检查一下锤子的消耗
            //FightPoint             用于记录消耗战锤倍数,小于等于1时默认1倍,大于1时为对应消耗倍值,0418刷新类型22
            ulong costRate = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.FightPoint);
            ulong cost = (costRate > 1 ? costRate : 1) * 1; // 1是默认消耗
            //   检查一下锤子的消耗
            if (!ItemLogicUtility.CheckCurrencyCount(41, cost, true))
            {
               return;
            }
            byte reqType;
            if (storyBattleField.battleState == StoryBattleState.Break)
            {
               reqType = 2;
            }
            else if (storyBattleField.battleState == StoryBattleState.Battle)
            {
               if (battleField.IsBattleEnd())
               {
                  reqType = 2; // 继续挑战小怪
               }
               else
               {
                  reqType = 4; // 继续战斗
               }
            }
            else
            {
               Debug.LogError("unknown battle state");
               return;
            }
            BattleManager.Instance.MainFightRequest(reqType);
         }
         autoNext = true;
      }
      else
      {
         Debug.LogError("action doesnt finish, wait a moment please");
      }
        {
            autoNext = false;
        }
   }