//将战斗单位放置入战场 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 IEnumerator PlayEnterBattleFieldAction(BattleHeroEnterBattleFieldAction action) { if (action == null) { UtilityHelper.LogError("Error BattleHeroEnterBattleFieldAction"); yield break; } //设置位置 UpdatePositionByGrid(action.gridUnit); RefreshAttribute(action.attribute); }
//进入战场 public void EnterBattleField(BattleField battleField, GridUnit bornGrid, List <BattleAction> heroActions) { if (battleField != null && bornGrid != null) { this.battleField = battleField; EnterGrid(bornGrid); if (heroActions != null) { BattleHeroEnterBattleFieldAction action = new BattleHeroEnterBattleFieldAction(this); action.gridUnit = bornGrid; action.attribute = new BattleHeroSyncAttribute(); action.attribute.hpChanged = 0; action.attribute.currentHP = hp; heroActions.Add(action); } } }
//进入战场 public BattleHeroEnterBattleFieldAction EnterBattleField(BattleField battleField, GridUnit bornGrid, bool generateAction) { if (battleField != null && bornGrid != null) { this.battleField = battleField; EnterGrid(bornGrid); //需要产生一条 if (generateAction) { BattleHeroEnterBattleFieldAction action = new BattleHeroEnterBattleFieldAction(this); action.gridUnit = bornGrid; action.attribute = new BattleHeroSyncAttribute(); action.attribute.hpChanged = 0; action.attribute.currentHP = hp; return(action); } } return(null); }