| | |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | |