Exemple #1
0
        //将战斗单位放置入战场
        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);
        }
Exemple #3
0
        //进入战场
        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);
                }
            }
        }
Exemple #4
0
        //进入战场
        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);
        }