| | |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using System.Linq; |
| | | using Cysharp.Threading.Tasks; |
| | | |
| | | public class BattleObjMgr |
| | | { |
| | |
| | | |
| | | protected BattleField battleField; |
| | | |
| | | public void Init(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam) |
| | | public async UniTask Init(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam) |
| | | { |
| | | Reload(_battleField, _redTeam, _blueTeam); |
| | | await Reload(_battleField, _redTeam, _blueTeam); |
| | | } |
| | | |
| | | public void Reload(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam) |
| | | public async UniTask Reload(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam) |
| | | { |
| | | Release(); |
| | | battleField = _battleField; |
| | | ReloadTeam(_redTeam, BattleCamp.Red); |
| | | ReloadTeam(_blueTeam, BattleCamp.Blue, false); } |
| | | await ReloadTeam(_redTeam, BattleCamp.Red); |
| | | await ReloadTeam(_blueTeam, BattleCamp.Blue, false); } |
| | | |
| | | public void ReloadTeam(TeamBase teamBase, BattleCamp _camp, bool active = true) |
| | | public async UniTask ReloadTeam(TeamBase teamBase, BattleCamp _camp, bool active = true) |
| | | { |
| | | var posNodeList = _camp == BattleCamp.Red ? battleField.battleRootNode.redTeamNodeList : battleField.battleRootNode.blueTeamNodeList; |
| | | var campDict = _camp == BattleCamp.Red ? redCampDict : blueCampDict; |
| | | CreateTeam(posNodeList, campDict, teamBase, _camp, active); |
| | | await CreateTeam(posNodeList, campDict, teamBase, _camp, active); |
| | | } |
| | | |
| | | protected void CreateTeam(List<GameObject> posNodeList, Dictionary<int, BattleObject> campDict, TeamBase teamBase, BattleCamp _Camp, bool active) |
| | | protected async UniTask CreateTeam(List<GameObject> posNodeList, Dictionary<int, BattleObject> campDict, TeamBase teamBase, BattleCamp _Camp, bool active) |
| | | { |
| | | DestroyTeam(campDict); |
| | | if (teamBase == null) |
| | |
| | | TeamHero teamHero = teamBase.serverHeroes[i]; |
| | | if (teamHero != null) |
| | | { |
| | | BattleObject battleObj = BattleObjectFactory.CreateBattleObject(battleField, posNodeList, teamHero, _Camp); |
| | | BattleObject battleObj = await BattleObjectFactory.CreateBattleObjectAsync(battleField, posNodeList, teamHero, _Camp); |
| | | battleObj.SetActive(active); |
| | | allBattleObjDict.Add(battleObj.ObjID, battleObj); |
| | | campDict.Add(battleObj.GetPositionNum(), battleObj); |