using LitJson;
|
using System.Collections.Generic;
|
using System.Linq;
|
|
public class BoneBattleField : BattleField
|
{
|
protected JsonData extendData;
|
protected MainLevelConfig levelConfig;
|
public BoneBattleField(string _guid) : base(_guid)
|
{
|
|
}
|
|
public override void Init(int MapID, int FuncLineID, JsonData _extendData,
|
List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte turnMax)
|
{
|
base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList, turnMax);
|
|
int level = FuncLineID;// 关卡
|
extendData = _extendData;
|
levelConfig = MainLevelConfig.Get(level);
|
|
SetBattleMode(BattleMode.Record);
|
}
|
|
public override void AutoSetBattleMode()
|
{
|
SetBattleMode(BattleMode.Record);
|
}
|
|
public override void TurnFightState(int TurnNum, int State,
|
uint FuncLineID, JsonData extendData)
|
{
|
base.TurnFightState(TurnNum, State, FuncLineID, extendData);
|
|
switch (State)
|
{
|
// 起始状态标记
|
case 0:
|
break;
|
case 1://准备完毕
|
break;
|
case 2://战斗中
|
break;
|
case 3://战斗结束
|
break;
|
case 4://结算奖励
|
break;
|
case 5://结束状态标记
|
break;
|
default:
|
BattleDebug.LogError("recieve a unknown State");
|
break;
|
}
|
}
|
|
protected override void OnSettlement(JsonData turnFightStateData)
|
{
|
base.OnSettlement(turnFightStateData);
|
}
|
|
public override void WhaleFall()
|
{
|
AutoFightModel.Instance.isPause = false;
|
Destroy();
|
|
if (UIManager.Instance.IsOpened<BoneFieldBattleWin>())
|
{
|
UIManager.Instance.CloseWindow<BoneFieldBattleWin>();
|
UIManager.Instance.OpenWindow<BoneFieldWin>();
|
}
|
}
|
|
public override void Run()
|
{
|
if (operationAgent == null)
|
{
|
//防范异常
|
return;
|
}
|
base.Run();
|
}
|
|
public override void DistributeNextPackage()
|
{
|
if (IsBattleFinish)
|
return;
|
|
// 不要调用base的函数
|
BattleManager.Instance.DistributeNextReportPackage(guid);
|
}
|
|
public override void ShowWindow(HB424_tagSCTurnFightInit vNetData)
|
{
|
BoneFieldBattleWin fsBattleWin = UIManager.Instance.GetUI<BoneFieldBattleWin>();// as FullScreenBattleWin;
|
if (null == fsBattleWin)
|
{
|
fsBattleWin = UIManager.Instance.OpenWindow<BoneFieldBattleWin>();
|
}
|
fsBattleWin.SetBattleField(this);
|
|
if (UIManager.Instance.IsOpened<BoneFieldWin>())
|
{
|
UIManager.Instance.CloseWindow<BoneFieldWin>();
|
}
|
}
|
|
public NPCLineupConfig GetBossLineupConfig()
|
{
|
if (!DungeonConfig.TryGetDungeonID(MapID, FuncLineID, out int dungeonID))
|
return null;
|
if (!DungeonConfig.HasKey(dungeonID))
|
return null;
|
int[] lineupIDList = DungeonConfig.Get(dungeonID).LineupIDList;
|
if (lineupIDList.IsNullOrEmpty())
|
return null;
|
int lineupID = lineupIDList[0];
|
if (!NPCLineupConfig.HasKey(lineupID))
|
return null;
|
NPCLineupConfig nPCLineupConfig = NPCLineupConfig.Get(lineupID);
|
|
return nPCLineupConfig;
|
}
|
|
public override BattleObject FindBoss()
|
{
|
var config = GetBossLineupConfig();
|
if (config != null)
|
{
|
int bossId = config.BossID;
|
BattleObject bo = battleObjMgr.allBattleObjDict.Values.FirstOrDefault(bo => bo.teamHero.NPCID == bossId);
|
return bo;
|
}
|
return null;
|
}
|
}
|