using UnityEngine;
|
using System.Collections.Generic;
|
|
public class BattleStartAction : RecordAction
|
{
|
private bool isRun = false;
|
|
public BattleStartAction(BattleField _battleField)
|
: base(RecordActionType.BattleStart, _battleField, null)
|
{
|
|
}
|
|
public override bool IsFinished()
|
{
|
return isFinish;
|
}
|
|
|
public override void Run()
|
{
|
base.Run();
|
|
if (isRun)
|
return;
|
|
// 隐藏部分UI
|
EventBroadcast.Instance.Broadcast(EventName.DISPLAY_BATTLE_UI, battleField.guid, false);
|
|
battleField.StartBattle(() =>
|
{
|
if (1 == battleField.MapID)
|
{
|
// 主线不播战斗开始
|
StartBattleCallback();
|
return;
|
}
|
|
battleField.battleRootNode.battleStartNode.SetActive(true);
|
|
UniTaskExtension.DelayTime((GameObject)null, 1f, () =>
|
{
|
battleField.battleRootNode.battleStartNode.SetActive(false);
|
StartBattleCallback();
|
});
|
});
|
|
isRun = true;
|
}
|
|
private void StartBattleCallback()
|
{
|
isFinish = true;
|
EventBroadcast.Instance.Broadcast(EventName.DISPLAY_BATTLE_UI, battleField.guid, true);
|
battleField.DistributeNextPackage();
|
}
|
|
public override void ForceFinish()
|
{
|
//正常开始之后到界面出现之前都点不了 所以这边不用强制完成 接口留着
|
|
base.ForceFinish();
|
// 完成就开始显示UI
|
|
}
|
}
|