//Ф У Н К Ц И И О Т Ы Г Р Ы Ш А Б О Я //Т Е Х Н И К А П Р О Т И В Т Е Х Н И К И 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); }
//Ф У Н К Ц И И О Т Ы Г Р Ы Ш А Б О Я //Т Е Х Н И К А П Р О Т И В Т Е Х Н И К И 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); }