コード例 #1
0
        //Ф У Н К Ц И И   О Т Ы Г Р Ы Ш А   Б О Я
        //Т Е Х Н И К А   П Р О Т И В   Т Е Х Н И К И
        private void PlayVehicleVSVehicle(CombatLib.Offence.Melee.OMVehicle AttackingPlayer, CombatLib.Defence.Melee.DMVehicle DefendingPlayer)
        {
            /*//отладочные выводы
            MessageBox.Show("VehicleVSVehicle");
            MessageBox.Show(AttackingPlayer.ToString(), "AttackingPlayer");
            MessageBox.Show(DefendingPlayer.ToString(), "DefendingPlayer");*/

            //инициализация объектов
            Random RndGenerator = new Random();
            CombatLib.Phases.PhaseHits.PhaseHitsVehicle Hits = new CombatLib.Phases.PhaseHits.PhaseHitsVehicle();
            CombatLib.Phases.PhaseWounds.PhaseWoundsVehicle Wounds = new CombatLib.Phases.PhaseWounds.PhaseWoundsVehicle();
            CombatLib.Phases.PhaseSaves.PhaseSavesVehicle Saves = new CombatLib.Phases.PhaseSaves.PhaseSavesVehicle();

            //указатели на родителей классов
            CombatLib.Offence.Melee.OffenceMelee baseOMVehicle = AttackingPlayer;
            CombatLib.Defence.Melee.DefenceMelee baseDMVehicle = DefendingPlayer;
            CombatLib.Phases.PhaseHits.PhaseHits basePhaseHitsVehicle = Hits;

            //И Г Р А

            //попадания
            try
            {
                CombatLib.BattleFuncs.PlayHits.PlayMelee(baseOMVehicle, baseDMVehicle, ref basePhaseHitsVehicle, ref RndGenerator);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Ошибка: " + e.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (Hits.Hits == 0)
            {
                this.DisplayResult(Hits);
                return;
            }

            //раны
            try
            {
                CombatLib.BattleFuncs.PlayWounds.MeleePlay(baseOMVehicle, DefendingPlayer, Hits, ref Wounds, ref RndGenerator);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Ошибка: " + e.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            //спасов нет, поэтому все "сырые" раны станут окончательными
            Wounds.PunchedWounds = Wounds.RowPunchedWounds;
            Wounds.SlidingWounds = Wounds.RowSlidingWounds;
            Wounds.Wounds = Wounds.PunchedWounds + Wounds.SlidingWounds;

            this.DisplayResult(Hits, Wounds, AttackingPlayer.S);
        }
コード例 #2
0
        //Ф У Н К Ц И И   О Т Ы Г Р Ы Ш А   Б О Я
        //Т Е Х Н И К А   П Р О Т И В   Т Е Х Н И К И
        private void PlayVehicleVSVehicle(CombatLib.Offence.Ranged.ORVehicle AttackingPlayer, CombatLib.Defence.Ranged.DRVehicle DefendingPlayer)
        {
            /*//отладочные выводы
            MessageBox.Show("VehicleVSVehicle");
            MessageBox.Show(AttackingPlayer.ToString(), "AttackingPlayer");
            MessageBox.Show(DefendingPlayer.ToString(), "DefendingPlayer");*/

            //инициализация объектов
            Random RndGenerator = new Random();
            CombatLib.Phases.PhaseHits.PhaseHitsVehicle Hits = new CombatLib.Phases.PhaseHits.PhaseHitsVehicle();
            CombatLib.Phases.PhaseWounds.PhaseWoundsVehicle Wounds = new CombatLib.Phases.PhaseWounds.PhaseWoundsVehicle();
            CombatLib.Phases.PhaseSaves.PhaseSavesVehicle Saves = new CombatLib.Phases.PhaseSaves.PhaseSavesVehicle();

            //указатели на родителей классов
            CombatLib.Offence.Ranged.OffenceRanged baseORInfantry = AttackingPlayer;
            CombatLib.Phases.PhaseHits.PhaseHits basePhaseHitsVehicle = Hits;

            ////ПОДГОТОВЛЕНИЯ ПЕРЕД ИГРОЙ
            //вычисление наилучшего спасброска
            Saves.Condition = DefendingPlayer.CoverSave;

            //И Г Р А

            //попадания
            try
            {
                CombatLib.BattleFuncs.PlayHits.PlayRanged(baseORInfantry, ref basePhaseHitsVehicle, ref RndGenerator);
            }
            catch(Exception e)
            {
                MessageBox.Show(e.Message, "Ошибка: " + e.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (Hits.Hits == 0)
            {
                this.DisplayResult(Hits);
                return;
            }

            //раны
            try
            {
                CombatLib.BattleFuncs.PlayWounds.RangedPlay(baseORInfantry, DefendingPlayer, Hits, ref Wounds, ref RndGenerator);
            }
            catch(Exception e)
            {
                MessageBox.Show(e.Message, "Ошибка: " + e.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (Wounds.RowWounds == 0)
            {
                this.DisplayResult(Hits, Wounds);
                return;
            }

            //спасы
            try
            {
                CombatLib.BattleFuncs.PlaySaves.Play(ref Wounds, ref Saves, ref RndGenerator);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Ошибка: " + e.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            this.DisplayResult(Hits, Wounds, AttackingPlayer.S, Saves);
        }