//将战斗单位放置入战场 private void EnterBattleField(bool recordProcess) { BattleUnit battleUnit = null; List <BattleAction> actions = null; if (recordProcess) { actions = new List <BattleAction>(); } for (int i = 0; i < teams.Count; ++i) { for (int j = 0; j < teams[i].battleUnits.Count; ++j) { battleUnit = teams[i].battleUnits[j]; GridUnit bornUnit = battleMap.GetBornGrid(i, true); if (bornUnit == null) { UtilityHelper.LogError("Get born unit failed."); continue; } BattleHeroEnterBattleFieldAction action = battleUnit.EnterBattleField(this, bornUnit, recordProcess); if (recordProcess && action != null) { actions.Add(action); } } } if (recordProcess) { AppendBattleActions(actions.ToArray()); } }
//将战斗单位放置入战场 private void EnterBattleField(bool recordProcess) { BattleUnit battleUnit = null; List <BattleAction> actions = null; if (recordProcess) { actions = new List <BattleAction>(); } for (int i = 0; i < teams.Count; ++i) { for (int j = 0; j < teams[i].battleUnits.Count; ++j) { battleUnit = teams[i].battleUnits[j]; GridUnit bornUnit = battleMap.GetBornGrid(i, true); if (bornUnit == null) { battleUnit.battleUnitAttribute.hp = 0; UtilityHelper.LogError("Get born unit failed."); continue; } battleUnit.EnterBattleField(this, bornUnit, actions); //生成行动队列 actionQueue.Enqueue(battleUnit); } } if (recordProcess) { AppendBattleActions(actions); } }
//将战斗单位放置入战场 private void EnterBattleField() { //队伍进入战场 for (int i = 0; i < teams.Count; ++i) { //队伍进入战场 teams[i].EnterBattleField(this, battleMap.GetBornGrid(i, teams[i].battleUnits.Count, true)); } //随机行动顺序 bool reverse = DebugHelper.Instance.randomFirstAction && (resetTimes & 1) == 0; for (int i = 0; i < teams.Count; ++i) { int teamIdx = reverse ? 1 - i : i; //随机 List <BattleUnit> shuffle = new List <BattleUnit>(teams[teamIdx].battleUnits); UtilityHelper.Shuffle <BattleUnit>(shuffle); for (int j = 0; j < shuffle.Count; j++) { actionQueue.Enqueue(shuffle[j]); } } }