Example #1
0
        public void BattlePerTime(float perTime)
        {
            if (!IsBattleInPlanet())
            {
                return;
            }

            float enemy  = 0f;
            float player = 0f;

            if (State == e_State.AI)
            {
                enemy  += Formula.CalculateDamageForDefOnePerTime(_enemyTroops, _playerTroops, DEF, perTime);
                player += Formula.CalculateDamageForAttackOnePerTime(_enemyTroops, _playerTroops, DEF, perTime);
            }
            else if (State == e_State.Player)
            {
                enemy  += Formula.CalculateDamageForAttackOnePerTime(_playerTroops, _enemyTroops, DEF, perTime);
                player += Formula.CalculateDamageForDefOnePerTime(_playerTroops, _enemyTroops, DEF, perTime);
            }
            else
            {
                enemy  += Formula.CalculateDamageForNeutralOnePerTime(_enemyTroops, _playerTroops, perTime);
                player += Formula.CalculateDamageForNeutralOnePerTime(_enemyTroops, _playerTroops, perTime);
            }
            EnemyTroops  += enemy;
            PlayerTroops += player;
            DebugInConsole.LogFormat("我方损失兵力:{0} 总兵力:{1}", player, PlayerTroops);
            DebugInConsole.LogFormat("敌方损失兵力:{0} 总兵力:{1}", enemy, EnemyTroops);
            //Truncate(ref _enemyTroops, 0f);
            //Truncate(ref _playerTroops, 0f);
        }
Example #2
0
        /// <summary>
        /// 更新双方人口
        /// </summary>
        void UpdatePopulation()
        {
            _enemyPopulation     = 0;
            _playerPopulation    = 0;
            _playerMaxPopulation = 0;
            _enemyMaxPopulation  = 0;
            foreach (var s in Soldiers)
            {
                if (s.Bloc == SoldierType.Enemy)
                {
                    _enemyPopulation++;
                }
                else
                {
                    _playerPopulation++;
                }
            }
            foreach (var p in _planets)
            {
                //   _enemyPopulation += p.EnemyTroops;
                // _playerPopulation += p.PlayerTroops;

                if (p.State == Star.e_State.AI)
                {
                    _enemyMaxPopulation += p.Capacity;
                }
                else if (p.State == Star.e_State.Player)
                {
                    _playerMaxPopulation += p.Capacity;
                }
            }
            DebugInConsole.LogFormat("敌方总人口:{0} 目前人口: {1}", _enemyMaxPopulation, _enemyPopulation);
            DebugInConsole.LogFormat("我方总人口:{0} 目前人口: {1}", _playerMaxPopulation, _playerPopulation);
        }
Example #3
0
        void UpdateSoldiersInPlanets()
        {
            DebugInConsole.Log("刷新星球内士兵...");

            DebugInConsole.LogFormat("敌我士兵总数: {0}", Soldiers.Length);
            foreach (var p in Planets)
            {
                p.Planet_.PlayerSoldiers.Clear();
                p.Planet_.EnemySoldiers.Clear();
            }
            foreach (var s in Soldiers)
            {
                switch (s.Bloc)
                {
                case SoldierType.Player:
                    if (s.InPlanet != null)
                    {
                        s.InPlanet.PlayerSoldiers.Add(s);
                    }
                    break;

                case SoldierType.Enemy:
                    if (s.InPlanet != null)
                    {
                        s.InPlanet.EnemySoldiers.Add(s);
                    }
                    break;

                default:
                    break;
                }
            }
        }
Example #4
0
        public void UpdateSoldiersToCount(int to, SoldierType type)
        {
            int detla = 0;

            switch (type)
            {
            case SoldierType.Player:
                detla = to - PlayerSoldiers.Count;
                DebugInConsole.LogFormat("我方增加兵力:{0} 之前兵力{1} 目前兵力{2}", detla, PlayerSoldiers.Count, to);
                break;

            case SoldierType.Enemy:
                detla = to - EnemySoldiers.Count;
                DebugInConsole.LogFormat("敌方增加兵力:{0} 之前兵力{1} 目前兵力{2}", detla, EnemySoldiers.Count, to);
                break;

            default:
                break;
            }

            //加兵
            if (detla > 0)
            {
                CreateSoldiers(detla, type);
            }
            else if (detla < 0)
            {
                RandomRemoveSoldiers(-detla, type);
            }
        }
Example #5
0
 void UpdateSituationInEachPlanet()
 {
     //_situationUpdateTimer.Resume();
     _situationUpdateTimer.Update();
     if (_situationUpdateTimer.CurrentState == TimerState.FINISHED)
     {
         DebugInConsole.LogFormat("*******************第{0}秒*******************", _updateCountIndex++);
         // UpdateSoldiersInPlanets();
         //UpdatePopulation();
         foreach (var p in _planets)
         {
             DebugInConsole.LogFormat("*****星球: {0}*****", p.name);
             p.OnUpdateSituation();
             p.OnUpdateSoldierAnimation();
             DebugInConsole.Log("*******************");
         }
         DebugInConsole.LogFormat("*********************************************");
         //yield return new WaitForSeconds(Formula.CalculatePerTime);
         //}
     }
 }