| | |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using LitJson; |
| | | using System.Collections.Generic; |
| | | |
| | | // B4 24 回合战斗初始化 #tagSCTurnFightInit |
| | | |
| | | public class DTCB424_tagSCTurnFightInit : DtcBasic { |
| | | public override void Done(GameNetPackBasic vNetPack) |
| | | { |
| | | public override void Done(GameNetPackBasic vNetPack) { |
| | | base.Done(vNetPack); |
| | | HB424_tagSCTurnFightInit vNetData = vNetPack as HB424_tagSCTurnFightInit; |
| | | |
| | | // 【战斗地图定义】 |
| | | // 前后端协议通讯时,如果有MapID、FuncLineID信息,一般代表的是某个战斗功能, |
| | | // 并可绑定某个战斗场景(相当于MMO中的不同功能及战斗场景地图) |
| | | // 卡牌中也可理解为不同的战斗功能及绑定不同的战斗背景图之类 |
| | | // 目前几个固定MapID定义 |
| | | // 主线小怪战斗 MapID = 1 |
| | | // FuncLineID = 章节*10000+关卡编号*100+第x波,如第一章,第10关卡,第5波时值 = 11005, |
| | | // 单章最大支持99小关,单关最大支持99波怪 |
| | | // 主线boss战斗 MapID = 2 |
| | | // FuncLineID = 章节*10000+关卡编号*100+第x波,如第一章,第10关卡的boss值 = 11001, |
| | | // 注:关卡boss波数固定为只有1波 |
| | | // 前端可通过MapID及对应的FuncLineID加载不同的战斗场景背景、背景音乐等 |
| | | |
| | | // HB424_tagSCTurnFightInit |
| | | // MapID; // 自定义地图ID,可用于绑定战斗地图场景功能(如主线关卡、主线boss、爬塔、竞技场等) |
| | | // FuncLineID; // MapID对应的扩展值,如具体某个关卡等 |
| | | // TurnMax; // 最大轮次 |
| | | // Len; |
| | | // Msg; // 本场战斗扩展信息,一般为json格式,具体内容由MapID决定 |
| | | // FactionCnt; |
| | | // FactionList; // 阵营列表,通常固定只有两个阵营 |
| | | |
| | | List<TeamBase> redTeamList = new List<TeamBase>(); |
| | | List<TeamBase> blueTeamList = new List<TeamBase>(); |
| | | |
| | | if (null != vNetData.FactionList) |
| | | { |
| | | foreach (var vFaction in vNetData.FactionList) |
| | | { |
| | | if (vFaction.Faction == 1) |
| | | { |
| | | foreach (var lineUp in vFaction.LineupList) |
| | | { |
| | | redTeamList.Add(new TeamBase(lineUp)); |
| | | } |
| | | } |
| | | else if (vFaction.Faction == 2) |
| | | { |
| | | foreach (var lineUp in vFaction.LineupList) |
| | | { |
| | | blueTeamList.Add(new TeamBase(lineUp)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | JsonData extendData = JsonMapper.ToObject(vNetData.Msg); |
| | | |
| | | string guid = BattleManager.Instance.GetGUID(vNetPack.packUID); |
| | | BattleField battleField = BattleManager.Instance.CreateBattleField(guid, (int)vNetData.MapID, (int)vNetData.FuncLineID, extendData, redTeamList, blueTeamList); |
| | | BattleStartAction battleStartAction = new BattleStartAction(battleField); |
| | | battleField.recordPlayer.PlayRecord(battleStartAction); |
| | | } |
| | | } |