| | |
| | | |
| | | public void Init(BattleField _battleField) |
| | | { |
| | | Reload(_battleField); |
| | | } |
| | | |
| | | public void Reload(BattleField _battleField) |
| | | { |
| | | Release(); |
| | | battleField = _battleField; |
| | | } |
| | |
| | | } |
| | | |
| | | public virtual void Init(int _MapID, int _FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte turnMax) |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte _turnMax) |
| | | { |
| | | MapID = _MapID; |
| | | redTeamList = _redTeamList; |
| | | blueTeamList = _blueTeamList; |
| | | FuncLineID = _FuncLineID; |
| | | extendData = _extendData; |
| | | IsBattleFinish = false; |
| | | round = 0; |
| | | this.turnMax = turnMax; |
| | | |
| | | redTeamIndex = 0; |
| | | blueTeamIndex = 0; |
| | | |
| | | // 重置死亡处理记录 |
| | | processingDeathObjIds.Clear(); |
| | | |
| | | SetData(_MapID, _FuncLineID, _extendData, _redTeamList, _blueTeamList, turnMax); |
| | | battleEffectMgr.Init(this); |
| | | battleTweenMgr.Init(this); |
| | | recordPlayer.Init(this); |
| | |
| | | |
| | | LoadMap(MapID); |
| | | |
| | | // 清空当前战场的血量记录(防止不同战斗之间的数据混乱) |
| | | if (BattleHeroInfoBar.largestPackUID.ContainsKey(guid)) |
| | | { |
| | | BattleHeroInfoBar.largestPackUID.Remove(guid); |
| | | } |
| | | if (BattleHeroInfoBar.largestPackUIDAllObjectsToHp.ContainsKey(guid)) |
| | | { |
| | | BattleHeroInfoBar.largestPackUIDAllObjectsToHp.Remove(guid); |
| | | } |
| | | if (BattleHeroInfoBar.largestPackUIDAllObjectsMaxHp.ContainsKey(guid)) |
| | | { |
| | | BattleHeroInfoBar.largestPackUIDAllObjectsMaxHp.Remove(guid); |
| | | } |
| | | |
| | | // battleRootNode.SetBackground(ResManager.Instance.LoadAsset<Texture>("Texture/FullScreenBg", "mainui_img_277")); |
| | | |
| | | SetBattleStartState(); |
| | | if (MapID == 1) |
| | | { |
| | | SetSpeedRatio(BattleManager.Instance.speedGear[AutoFightModel.Instance.fightSpeed - 1]); |
| | | } |
| | | else |
| | | { |
| | | SetSpeedRatio(BattleManager.Instance.speedGear[BattleManager.Instance.speedIndex]); |
| | | } |
| | | SetRootNodePosition(); |
| | | rejectNewPackage = false; |
| | | OnRoundChange?.Invoke(round, turnMax); |
| | | |
| | | PreloadResources(redTeamList, blueTeamList); |
| | | EventBroadcast.Instance.Broadcast<string>(EventName.BATTLE_START, guid); |
| | | |
| | | #if UNITY_EDITOR |
| | | if (Launch.Instance.isOpenSkillLogFile) |
| | |
| | | } |
| | | #endif |
| | | |
| | | EventBroadcast.Instance.Broadcast<string>(EventName.BATTLE_START, guid); |
| | | } |
| | | |
| | | public virtual void Reload(int _MapID, int _FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte _turnMax) |
| | | { |
| | | SetData(_MapID, _FuncLineID, _extendData, _redTeamList, _blueTeamList, _turnMax); |
| | | battleEffectMgr.Reload(this); |
| | | battleTweenMgr.Reload(this); |
| | | recordPlayer.Reload(this); |
| | | |
| | | if (blueTeamList == null) |
| | | { |
| | | battleObjMgr.Reload(this, redTeamList[redTeamIndex], null); |
| | | HaveRest(); |
| | | } |
| | | else |
| | | { |
| | | battleObjMgr.Reload(this, redTeamList[redTeamIndex], blueTeamList[blueTeamIndex]); |
| | | } |
| | | |
| | | LoadMap(MapID); |
| | | |
| | | SetBattleStartState(); |
| | | |
| | | SetRootNodePosition(); |
| | | |
| | | OnRoundChange?.Invoke(round, turnMax); |
| | | |
| | | PreloadResources(redTeamList, blueTeamList); |
| | | |
| | | } |
| | | |
| | | public virtual void SetData(int _MapID, int _FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte _turnMax) |
| | | { |
| | | MapID = _MapID; |
| | | redTeamList = _redTeamList; |
| | | blueTeamList = _blueTeamList; |
| | | FuncLineID = _FuncLineID; |
| | | extendData = _extendData; |
| | | IsBattleFinish = false; |
| | | round = 0; |
| | | this.turnMax = _turnMax; |
| | | |
| | | redTeamIndex = 0; |
| | | blueTeamIndex = 0; |
| | | |
| | | // 重置死亡处理记录 |
| | | processingDeathObjIds.Clear(); |
| | | rejectNewPackage = false; |
| | | if (MapID == 1) |
| | | { |
| | | SetSpeedRatio(BattleManager.Instance.speedGear[AutoFightModel.Instance.fightSpeed - 1]); |
| | | } |
| | | else |
| | | { |
| | | SetSpeedRatio(BattleManager.Instance.speedGear[BattleManager.Instance.speedIndex]); |
| | | } |
| | | |
| | | // 清空当前战场的血量记录(防止不同战斗之间的数据混乱) |
| | | if (BattleHeroInfoBar.largestPackUID.ContainsKey(guid)) |
| | | { |
| | | BattleHeroInfoBar.largestPackUID.Remove(guid); |
| | | } |
| | | if (BattleHeroInfoBar.largestPackUIDAllObjectsToHp.ContainsKey(guid)) |
| | | { |
| | | BattleHeroInfoBar.largestPackUIDAllObjectsToHp.Remove(guid); |
| | | } |
| | | if (BattleHeroInfoBar.largestPackUIDAllObjectsMaxHp.ContainsKey(guid)) |
| | | { |
| | | BattleHeroInfoBar.largestPackUIDAllObjectsMaxHp.Remove(guid); |
| | | } |
| | | } |
| | | |
| | | protected void PreloadResources(List<TeamBase> redTeamList, List<TeamBase> blueTeamLis) |
| | |
| | | protected int chapter;// 章节 |
| | | protected int wave;// 波数 |
| | | protected int level;// 关卡 |
| | | protected JsonData extendData; |
| | | |
| | | protected MainChapterConfig chapterConfig; |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | public override void Init(int MapID, int FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte turnMax) |
| | | 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); |
| | | |
| | | // 防止重复注册的问题 |
| | | TeamManager.Instance.OnTeamChange += OnTeamChange; |
| | | |
| | | FuncPresetManager.Instance.OnFuncPresetUseDataEvent += OnFuncPresetUseDataEvent; |
| | | } |
| | | |
| | | public override void SetData(int _MapID, int _FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte _turnMax) |
| | | { |
| | | base.SetData(_MapID, _FuncLineID, _extendData, _redTeamList, _blueTeamList, _turnMax); |
| | | chapter = FuncLineID / 10000; |
| | | wave = MapID == 1 ? FuncLineID % 100 : 1;//第几波怪 |
| | | level = (FuncLineID % 10000) / 100; |
| | |
| | | chapterConfig = MainChapterConfig.Get(chapter); |
| | | levelConfig = MainLevelConfig.Get(level); |
| | | |
| | | base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList, turnMax); |
| | | |
| | | if (null == _blueTeamList || _blueTeamList.Count == 0) |
| | | { |
| | |
| | | |
| | | // LoadBattleMode(); |
| | | lastPresetID = TeamManager.Instance.GetMainTeamID(); |
| | | |
| | | // 防止重复注册的问题 |
| | | TeamManager.Instance.OnTeamChange.RemoveCompletely(OnTeamChange); |
| | | TeamManager.Instance.OnTeamChange += OnTeamChange; |
| | | |
| | | FuncPresetManager.Instance.OnFuncPresetUseDataEvent.RemoveCompletely(OnFuncPresetUseDataEvent); |
| | | FuncPresetManager.Instance.OnFuncPresetUseDataEvent += OnFuncPresetUseDataEvent; |
| | | } |
| | | |
| | | protected override void LoadMap(int mapID) |
| | |
| | | } |
| | | battleFields.Add(guid, battleField); |
| | | onBattleFieldCreate?.Invoke(guid, battleField); |
| | | battleField.Init(MapID, FuncLineID, extendData, redTeamList, blueTeamList, vNetData.TurnMax); |
| | | |
| | | } |
| | | else |
| | | { |
| | | battleField.Reload(MapID, FuncLineID, extendData, redTeamList, blueTeamList, vNetData.TurnMax); |
| | | } |
| | | |
| | | |
| | | |
| | | battleField.Init(MapID, FuncLineID, extendData, redTeamList, blueTeamList, vNetData.TurnMax); |
| | | |
| | | return battleField; |
| | | } |
| | |
| | | |
| | | public void Init(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam) |
| | | { |
| | | Reload(_battleField, _redTeam, _blueTeam); |
| | | } |
| | | |
| | | public void Reload(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam) |
| | | { |
| | | Release(); |
| | | battleField = _battleField; |
| | | ReloadTeam(_redTeam, BattleCamp.Red); |
| | | ReloadTeam(_blueTeam, BattleCamp.Blue, false); |
| | | } |
| | | ReloadTeam(_blueTeam, BattleCamp.Blue, false); } |
| | | |
| | | public void ReloadTeam(TeamBase teamBase, BattleCamp _camp, bool active = true) |
| | | { |
| | |
| | | |
| | | public void Init(BattleField _battleField) |
| | | { |
| | | Reload(_battleField); |
| | | } |
| | | |
| | | public void Reload(BattleField _battleField) |
| | | { |
| | | Release(); |
| | | battleField = _battleField; |
| | | } |
| | |
| | | |
| | | public void Init(BattleField _battleField) |
| | | { |
| | | Reload(_battleField); |
| | | } |
| | | |
| | | public void Reload(BattleField _battleField) |
| | | { |
| | | Release(); |
| | | stepForcefinish = false; |
| | | battleField = _battleField; |