//Т Е Х Н И К А П Р О Т И В П Е Х О Т Ы private void PlayVehicleVSInfantry(CombatLib.Offence.Melee.OMVehicle AttackingPlayer, CombatLib.Defence.Melee.DMInfantry DefendingPlayer) { /*//отладочные выводы MessageBox.Show("VehicleVSInfantry"); MessageBox.Show(AttackingPlayer.ToString(), "AttackingPlayer"); MessageBox.Show(DefendingPlayer.ToString(), "DefendingPlayer");*/ //инициализация объектов Random RndGenerator = new Random(); CombatLib.Phases.PhaseHits.PhaseHitsInfantry Hits = new CombatLib.Phases.PhaseHits.PhaseHitsInfantry(); CombatLib.Phases.PhaseWounds.PhaseWoundsInfantry Wounds = new CombatLib.Phases.PhaseWounds.PhaseWoundsInfantry(); CombatLib.Phases.PhaseSaves.PhaseSavesInfantry Saves = new CombatLib.Phases.PhaseSaves.PhaseSavesInfantry(); //указатели на родителей классов CombatLib.Offence.Melee.OffenceMelee baseOMVehicle = AttackingPlayer; CombatLib.Defence.Melee.DefenceMelee baseDMInfantry = DefendingPlayer; CombatLib.Phases.PhaseHits.PhaseHits basePhaseHitsInfantry = Hits; ////ПОДГОТОВЛЕНИЯ ПЕРЕД ИГРОЙ //вычисление наилучшего спасброска Saves.Condition = CombatLib.Addition.AdditionalFuncs.BestSaveThrow(AttackingPlayer.AP, 7, DefendingPlayer.ArmorSave, DefendingPlayer.InvulSave); //И Г Р А //попадания try { CombatLib.BattleFuncs.PlayHits.PlayMelee(baseOMVehicle, DefendingPlayer, ref basePhaseHitsInfantry, 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; } 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, Saves); }
//П Е Х О Т А П Р О Т И В П Е Х О Т Ы private void PlayInfantryVSInfantry(CombatLib.Offence.Ranged.ORInfantry AttackingPlayer, CombatLib.Defence.Ranged.DRInfantry DefendingPlayer) { /*//отладочные выводы MessageBox.Show("InfantryVSInfantry"); MessageBox.Show(AttackingPlayer.ToString(), "AttackingPlayer"); MessageBox.Show(DefendingPlayer.ToString(), "DefendingPlayer");*/ //инициализация объектов Random RndGenerator = new Random(); //генератор рандомных числе - один на все время работы программы со случайной затравкой CombatLib.Phases.PhaseHits.PhaseHitsInfantry Hits = new CombatLib.Phases.PhaseHits.PhaseHitsInfantry(); //класс фазы попаданий CombatLib.Phases.PhaseWounds.PhaseWoundsInfantry Wounds = new CombatLib.Phases.PhaseWounds.PhaseWoundsInfantry(); //класс фазы ран CombatLib.Phases.PhaseSaves.PhaseSavesInfantry Saves = new CombatLib.Phases.PhaseSaves.PhaseSavesInfantry(); //класс фазы спасбросков //указатели на родителей классов CombatLib.Offence.Ranged.OffenceRanged baseORInfantry = AttackingPlayer; //родитель атакующего игрока CombatLib.Phases.PhaseHits.PhaseHits basePhaseHitsInfantry = Hits; //родитель фазы попаданий //ПОДГОТОВЛЕНИЯ ПЕРЕД ИГРОЙ //вычисление наилучшего спасброска Saves.Condition = CombatLib.Addition.AdditionalFuncs.BestSaveThrow(AttackingPlayer.AP, DefendingPlayer.CoverSave, DefendingPlayer.ArmorSave, DefendingPlayer.InvulSave); //И Г Р А //попадания try { CombatLib.BattleFuncs.PlayHits.PlayRanged(baseORInfantry, ref basePhaseHitsInfantry, 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, Saves); }