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();
 }
Esempio n. 2
0
        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();
    }