Пример #1
0
            public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
            {
                base.GetTextToShow(Buffer);
                bool foundOn  = false;
                bool foundOff = false;

                Engine_AIW2.Instance.DoForSelected(SelectionCommandScope.CurrentPlanet_UnlessViewingGalaxy, delegate(GameEntity selected)
                {
                    if (selected.EntitySpecificOrders.Behavior == EntityBehaviorType.Attacker)
                    {
                        foundOn = true;
                    }
                    else
                    {
                        foundOff = true;
                    }
                    return(DelReturn.Continue);
                });
                Buffer.Add("Pursue: ");
                if (foundOn && foundOff)
                {
                    Buffer.Add("Mixed");
                }
                else if (foundOn)
                {
                    Buffer.Add("On");
                }
                else
                {
                    Buffer.Add("Off");
                }
            }
 public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
 {
     if (World_AIW2.Instance.IsPaused)
     {
         Buffer.Add("PAUSED!");
     }
 }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
            {
                WorldSide localSide = World_AIW2.Instance.GetLocalSide();

                if (localSide == null)
                {
                    return;
                }
                buffer.Add("Metal: ");
                buffer.Add(localSide.StoredMetal.IntValue.ToString("#,##0"));
                if (localSide.LastFrame_TotalMetalFlowRequested > 0)
                {
                    buffer.Add("\n");
                    FInt percentProduced = localSide.LastFrame_MetalFlowRequestPortionMet * 100;
                    buffer.Add(percentProduced.IntValue);
                    buffer.Add("%");
                    if (localSide.LastFrame_MetalFlowRequestPortionMet < FInt.One &&
                        localSide.LastFrame_MetalProduced > FInt.Zero)
                    {
                        buffer.Add(" (");
                        int framesLeft  = (localSide.LastFrame_TotalMetalFlowProjectedRequests / localSide.LastFrame_MetalProduced).GetNearestIntPreferringHigher();
                        int secondsLeft = (framesLeft * World_AIW2.Instance.SimulationProfile.SecondsPerFrameSim).GetNearestIntPreferringHigher();
                        buffer.Add(Engine_Universal.ToHoursAndMinutesString(secondsLeft));
                        buffer.Add(")");
                        buffer.Add("\n").Add(localSide.LastFrame_TotalMetalFlowProjectedRequests.IntValue).Add(" / ").Add(localSide.LastFrame_MetalProduced.ReadableString);
                    }
                }
            }
            private void DoSingleCase_TracePerformance(ArcenDoubleCharacterBuffer buffer)
            {
                buffer.Add("Performance:");
                TimeSpan spanToCheck          = TimeSpan.FromSeconds(30);
                DateTime checkEverythingAfter = DateTime.Now - spanToCheck;

                for (PerformanceSegment segment = PerformanceSegment.None + 1; segment < PerformanceSegment.Length; segment++)
                {
                    ArcenStopwatch stopwatch   = Engine_Universal.PerformanceStopwatches[segment];
                    double         worst       = 0;
                    double         total       = 0;
                    int            samplesRead = 0;
                    for (int i = stopwatch.SampleHistory.Count - 1; i >= 0; i--)
                    {
                        ArcenStopwatch.Sample sample = stopwatch.SampleHistory[i];
                        if (sample.Timestamp < checkEverythingAfter)
                        {
                            break;
                        }
                        worst  = Math.Max(sample.Elapsed.TotalMilliseconds, worst);
                        total += sample.Elapsed.TotalMilliseconds;
                        samplesRead++;
                    }
                    if (samplesRead > 0)
                    {
                        double average = total / samplesRead;
                        buffer.Add("\n").Add(segment.ToString()).Add(" Avg:").Add(average.ToString("0.##")).Add(" Worst:").Add(worst.ToString("0.##"));
                    }
                }
            }
 public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
 {
     if (!Engine_Universal.DebugOutputOn)
     {
         return;
     }
     World_AIW2.Instance.DoForSides(delegate(WorldSide side)
     {
         if (side.Type != WorldSideType.AI)
         {
             return(DelReturn.Continue);
         }
         FInt threshold = side.GetSpecificBudgetThreshold(AIBudgetType.CPA);
         FInt perSecond = side.GetSpecificBudgetStrengthGainPerSecond(AIBudgetType.CPA);
         if (perSecond <= FInt.Zero)
         {
             return(DelReturn.Continue);
         }
         FInt currentAmount = side.StoredStrengthByBudget[AIBudgetType.CPA];
         FInt amountLeft    = threshold - currentAmount;
         FInt secondsLeft   = amountLeft / perSecond;
         buffer.Add("Next CPA in ");
         buffer.Add(Engine_Universal.ToHoursAndMinutesString(secondsLeft.IntValue));
         buffer.Add(" (").Add(currentAmount.ReadableString).Add("/").Add(threshold.ReadableString).Add(")");
         return(DelReturn.Break);
     });
 }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
            {
                WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide();

                if (localSide == null)
                {
                    return;
                }
                buffer.Add("<sprite name=\"Metal\">");
                buffer.Add(localSide.StoredMetal.IntValue.ToString("#,##0"));

                if (localSide.LastFrame_TotalMetalFlowRequested > 0)
                {
                    buffer.Add("   (");
                    int amountSpentLastFrame = localSide.LastFrame_MetalSpent.IntValue;
                    int incomeLastFrame      = localSide.LastFrame_MetalProduced.GetNearestIntPreferringHigher();
                    int netIncome            = incomeLastFrame - amountSpentLastFrame;
                    if (netIncome > 0)
                    {
                        buffer.Add("+");
                    }
                    buffer.Add(netIncome);
                    buffer.Add(" net)");
                    if (localSide.LastFrame_MetalFlowRequestPortionMet < FInt.One &&
                        localSide.LastFrame_MetalProduced > FInt.Zero)
                    {
                        buffer.Add(" (");
                        int framesLeft  = (localSide.LastFrame_TotalMetalFlowProjectedRequests / localSide.LastFrame_MetalProduced).GetNearestIntPreferringHigher();
                        int secondsLeft = (framesLeft * World_AIW2.Instance.SimulationProfile.SecondsPerFrameSim).GetNearestIntPreferringHigher();
                        buffer.Add(Engine_Universal.ToHoursAndMinutesString(secondsLeft));
                        buffer.Add(" est)");   //estimated time left
                        buffer.Add("\n required: ").Add(localSide.LastFrame_TotalMetalFlowProjectedRequests.IntValue).Add("\nproduced: ").Add(localSide.LastFrame_MetalProduced.GetNearestIntPreferringHigher());
                    }
                }
            }
Пример #7
0
            public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
            {
                base.GetTextToShow(Buffer);
                bool foundOn  = false;
                bool foundOff = false;

                Engine_AIW2.Instance.DoForSelected(delegate(GameEntity selected)
                {
                    if (selected.EntitySpecificOrders.Behavior == EntityBehaviorType.Attacker)
                    {
                        foundOn = true;
                    }
                    else
                    {
                        foundOff = true;
                    }
                    return(DelReturn.Continue);
                });
                Buffer.Add("Free Roaming Defender: ");
                if (foundOn && foundOff)
                {
                    Buffer.Add("Mixed");
                }
                else if (foundOn)
                {
                    Buffer.Add("On");
                }
                else
                {
                    Buffer.Add("Off");
                }
            }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
            {
                base.GetTextToShow(buffer);

                if (this.Item == null)
                {
                    buffer.Add("NULL");
                    return;
                }
                buffer.Add(this.Item.Name);
                WorldSide localSide = World_AIW2.Instance.GetLocalSide();

                if (localSide.UnlockedTechs.Contains(this.Item))
                {
                    buffer.Add("\n").Add("(Unlocked)");
                }
                else
                {
                    buffer.Add("\n").Add("(").Add(this.Item.ScienceCost).Add(")");

                    if (localSide.GetCanResearch(this.Item, false, false) == ArcenRejectionReason.SideDoesNotHavePrerequisiteTech)
                    {
                        buffer.Add("\n").Add("(Locked)");
                    }
                }
            }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
            {
                WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide();

                if (localSide == null)
                {
                    return;
                }
                Buffer.Add("<sprite name=\"Hacking\">").Add(localSide.StoredHacking.IntValue.ToString("#,##0"));
                GameEntity hacker = localSide.Entities.GetFirstMatching(EntityRollupType.KingUnits);

                if (hacker == null || hacker.ActiveHack == null)
                {
                    return;
                }
                GameEntity target = World_AIW2.Instance.GetEntityByID(hacker.ActiveHack_Target);

                if (target == null)
                {
                    return;
                }
                int secondsSoFar  = hacker.ActiveHack_DurationThusFar;
                int totalDuration = hacker.ActiveHack.Implementation.GetTotalSecondsToHack(target, hacker);
                int secondsLeft   = totalDuration - secondsSoFar;

                Buffer.Add("\n").Add(Engine_Universal.ToHoursAndMinutesString(secondsLeft));
            }
Пример #10
0
 public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
 {
     base.GetTextToShow(buffer);
     buffer.Add(this.Type.InternalName);
     buffer.Add(" (");
     buffer.Add(this.Target.TypeData.GetDisplayName());
     buffer.Add(")");
 }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
            {
                base.GetTextToShow(buffer);

                buffer.Add(SaveGame.saveName);
                buffer.Add("\n In Game Time : ");
                buffer.Add(Engine_Universal.ToHoursAndMinutesString(SaveGame.secondsSinceGameStart));
            }
 public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
 {
     base.GetTextToShow(buffer);
     if (PlayerAccount_AIW2.Local.CurrentGalaxyMapDisplayMode == this.Mode)
     {
         buffer.Add("*");
     }
     buffer.Add(this.Mode.Name);
 }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
            {
                WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide();

                if (localSide == null)
                {
                    return;
                }
                Buffer.Add("<sprite name=\"Fuel\">").Add(localSide.NetFuel.ToString("#,##0"));
            }
            public void SetText(TextId textId, string Text, string tooltip)
            {
                ArcenDoubleCharacterBuffer buffer = SubTexts[(int)textId].Text.StartWritingToBuffer();

                buffer.Add(Text);
                SubTexts[(int)textId].Text.FinishWritingToBuffer();
                SubTexts[(int)textId].Tooltip    = tooltip;
                LastTextIDWritten                = textId;
                LastWrittenWasImageInsteadOfText = false;
            }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
            {
                WorldSide localSide = World_AIW2.Instance.GetLocalSide();

                if (localSide == null)
                {
                    return;
                }
                Buffer.Add("Science: ").Add(localSide.StoredScience.IntValue.ToString("#,##0"));
            }
Пример #16
0
            public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
            {
                ArcenSetting setting = GetSettingForController(this);

                if (setting == null)
                {
                    return;
                }

                buffer.Add(setting.TempValue_Bool ? "On" : "Off");
            }
        public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
        {
            bool toggledWindowIsShown = this.GetRelatedController().IsOpen;

            if (this.GetShouldSuppressOpenIndicatorEvenIfToggledWindowIsShown())
            {
                toggledWindowIsShown = false;
            }
            base.GetTextToShow(Buffer);
            Buffer.Add(toggledWindowIsShown ? this.TextWhenOpen : this.TextWhenClosed);
        }
Пример #18
0
            public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
            {
                ArcenSetting setting = GetSettingForController(this);

                if (setting == null)
                {
                    return;
                }

                buffer.Add(setting.DisplayName);
            }
 /* Prints out different header depending on whether we are in
  * the Campaign or Load screen */
 public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
 {
     if (Window_LoadGameMenu.Instance.showCampaignButtons)
     {
         Buffer.Add("Click on a campaign to see the save games");
     }
     else
     {
         Buffer.Add("Click a saved game to load from campaign ");
         Buffer.Add(Window_LoadGameMenu.Instance.campaignName);
     }
 }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
            {
                base.GetTextToShow(Buffer);

                if (ArcenUI.Instance.InHideGUIMode)
                {
                    Buffer.Add("Show GUI");
                }
                else
                {
                    Buffer.Add("Hide GUI");
                }
            }
 public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
 {
     base.GetTextToShow(buffer);
     if (this.Item == null || this.Item.PatternController == null)
     {
         buffer.Add("NULL");
         return;
     }
     else
     {
         buffer.Add(this.Item.PatternController.Name);
     }
 }
            //Note that the Close button becomes a "back" button
            //depending on whether we are in the Campaign or Load screen

            public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
            {
                if (!Window_LoadGameMenu.Instance.showCampaignButtons)
                {
                    base.GetTextToShow(Buffer);
                    Buffer.Add("Back to Campaign");
                }
                else
                {
                    base.GetTextToShow(Buffer);
                    Buffer.Add("Close");
                }
            }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
            {
                base.GetTextToShow(buffer);

                ControlGroup group = World_AIW2.Instance.GetControlGroupByID(World_AIW2.Instance.CurrentActiveSelectionControlGroupPrimaryKeyID);

                if (group != null && group.Formation == null)
                {
                    buffer.Add("*");
                }

                buffer.Add("None");
            }
            public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
            {
                base.GetTextToShow(Buffer);
                TechMenu menu = this.GetMenu();

                if (menu == null)
                {
                    Buffer.Add("NULL");
                }
                else
                {
                    Buffer.Add(menu.Abbreviation);
                }
            }
 public virtual void GetTextToShow(ArcenDoubleCharacterBuffer Buffer)
 {
     if (this.WindowController.SupportsMasterMenuKeys)
     {
         if (Input_MasterMenuHandler.GetIsWindowTheTopmostOpenMasterMenuWindow(this.Element.Window))
         {
             int index = Input_MasterMenuHandler.GetIndexByButton(this.Element.Window, this);
             if (index >= 0)
             {
                 Buffer.Add("(").Add(index + 1).Add(")");
             }
         }
     }
 }
Пример #26
0
 public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
 {
     base.GetTextToShow(buffer);
     buffer.Add("+FrameFrequency (");
     if (Engine_AIW2.Instance.FrameFrequencyMultiplier >= 10)
     {
         buffer.Add("MAX");
     }
     else
     {
         buffer.Add(Engine_AIW2.Instance.FrameFrequencyMultiplier);
     }
     buffer.Add(")");
 }
Пример #27
0
 public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
 {
     if (Engine_Universal.IsProfilerEnabled)
     {
         DoSingleCase_ProfilerEnabled(buffer);
     }
     if (Engine_Universal.DebugTextToShowImmediately.Length > 0)
     {
         DoSingleCase_DebugTextToShowImmediately(buffer);
     }
     if (Engine_Universal.TracePerformance)
     {
         DoSingleCase_TracePerformance(buffer);
     }
 }
Пример #28
0
            public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
            {
                base.GetTextToShow(buffer);

                if (World_AIW2.Instance.CurrentActiveSelectionControlGroupPrimaryKeyID > 0)
                {
                    ControlGroup group = World_AIW2.Instance.GetControlGroupByID(World_AIW2.Instance.CurrentActiveSelectionControlGroupPrimaryKeyID);
                    if (group != null && group.TargetSorter == this.Item)
                    {
                        buffer.Add("*");
                    }
                }

                buffer.Add(this.Item.Name);
            }
Пример #29
0
 private void AppendEntityNames(ArcenDoubleCharacterBuffer buffer, int max)
 {
     for (int i = 0; i < this.RelatedEntityTypes.Count && i < max; i++)
     {
         if (i > 0)
         {
             buffer.Add(", ");
         }
         buffer.Add(this.RelatedEntityTypes[i].Name);
     }
     if (this.RelatedEntityTypes.Count > max)
     {
         buffer.Add(", ...");
     }
 }
Пример #30
0
 public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer)
 {
     base.GetTextToShow(buffer);
     buffer.Add(this.Flag.ToString());
     buffer.Add(" (");
     if (Engine_AIW2.Instance.TracingFlags.Has(this.Flag))
     {
         buffer.Add("On");
     }
     else
     {
         buffer.Add("Off");
     }
     buffer.Add(")");
 }