public void ReportInstructions(RoundReport currentReport) { if (currentReport == null) { throw new ArgumentNullException("currentReport"); } Diagnostics.Assert(this.reportInstructions != null); for (int i = 0; i < this.reportInstructions.Count; i++) { IContenderReportInstruction contenderReportInstruction = this.reportInstructions[i]; Diagnostics.Assert(contenderReportInstruction != null); currentReport.ReportInstruction(this.ContenderGUID, contenderReportInstruction); } this.reportInstructions.Clear(); }
private void Print_Click(object sender, EventArgs e) { var T1 = GetTeam(0); var T2 = GetTeam(1); var T3 = GetTeam(2); if ((T1.CurrentRound.Finished | T2.CurrentRound.Finished | T3.CurrentRound.Finished) && !Stopwatch.Started) { Print.Enabled = false; ChoosePilots(true); void PrintReport() { var Print = new Thread(new ThreadStart(() => { RoundReport.MakeReport(); })); Print.IsBackground = true; Print.Start(); //NewSetOfTeams(); StopTimer(true); //ClearTimer(); } void PrintFunc() { if (!TimerSettings.NoPrePrintAsking) { var PM = new PrintModeSelector(); PM.Show(); PM.FormClosing += (s, a) => { PrintReport(); }; } else { PrintReport(); } //Might be deleted. Just allow any num of prints } PrintFunc(); BGSaver.SaveData(); } else { MessageBox.Show("Не хватает данных для вывода на печать!"); } }
public void DoReportInstructions(RoundReport currentReport, bool postRound = false) { if (currentReport == null) { throw new ArgumentNullException("currentReport"); } Diagnostics.Assert(this.reportInstructions != null); Diagnostics.Assert(this.Simulation != null); for (int i = 0; i < this.reportInstructions.Count; i++) { IUnitReportInstruction unitReportInstruction = this.reportInstructions[i]; Diagnostics.Assert(unitReportInstruction != null); BattleSimulationUnit battleUnit = this.Simulation.GetBattleUnit(unitReportInstruction.UnitGUID); currentReport.DoReportInstruction(battleUnit, unitReportInstruction, postRound); } this.reportInstructions.Clear(); }
public void ExecuteWaitingActions(BattleSimulation battleSimulation, RoundReport roundReport) { BattleSimulationUnit battleSimulationUnit = this.Units.FirstOrDefault((BattleSimulationUnit match) => match.Position.IsValid); if (battleSimulationUnit == null) { return; } List <IUnitReportInstruction> list = new List <IUnitReportInstruction>(); for (int i = 0; i < this.WaitingArmyActions.Count; i++) { int num = BattleSimulation.UnitStateNextID++; BattleArmyAction battleArmyAction = this.WaitingArmyActions[i]; ContenderActionInstruction contenderActionInstruction = battleArmyAction.BuildContenderActionInstruction(this.ContenderGUID, num, battleSimulationUnit.UnitGUID); WorldOrientation orientation = this.Contender.WorldOrientation; if (contenderActionInstruction is ContenderActionSpellInstruction) { orientation = this.Contender.Deployment.DeploymentArea.Forward; } if (contenderActionInstruction != null) { contenderActionInstruction.AddEffectPosition(battleArmyAction.TargetPosition); BattleSimulationTarget[] currentTargets = new BattleSimulationTarget[] { new BattleSimulationTarget(battleArmyAction.TargetPosition) }; for (int j = 0; j < battleArmyAction.BattleActions.Count; j++) { BattleAction battleAction = battleArmyAction.BattleActions[j]; for (int k = 0; k < battleAction.BattleEffects.Length; k++) { BattleEffects battleEffects = battleAction.BattleEffects[k]; if (battleEffects is BattleEffectsArea) { IPathfindingArea area = (battleEffects as BattleEffectsArea).GetArea(battleArmyAction.TargetPosition, orientation, null, battleSimulation.WorldParameters, battleSimulation.BattleZone, battleSimulationUnit); if (area != null) { WorldPosition[] worldPositions = area.GetWorldPositions(battleSimulation.WorldParameters); if (worldPositions != null) { contenderActionInstruction.AddEffectArea(worldPositions); } } } } WorldOrientation orientation2 = battleSimulationUnit.Orientation; battleSimulationUnit.Orientation = orientation; battleSimulation.BattleActionController.ExecuteBattleAction(battleAction, battleAction.BattleEffects, battleSimulationUnit, currentTargets, true, list); battleSimulationUnit.Orientation = orientation2; battleSimulation.CheckUnitsDeath(num); } for (int l = 0; l < list.Count; l++) { contenderActionInstruction.AddReportInstruction(list[l]); } roundReport.ReportInstruction(this.ContenderGUID, contenderActionInstruction); } } this.ClearWaitingActions(); }