コード例 #1
0
        private IEnumerable <IBotTask> RootTaskListComponentDefault()
        {
            yield return(new BotTask {
                Component = EnumerateConfigDiagnostics()
            });

            yield return(new EnableInfoPanelCurrentSystem {
                MemoryMeasurement = MemoryMeasurementAtTime?.Value
            });

            var saveShipTask = new SaveShipTask {
                Bot = this
            };

            yield return(saveShipTask);

            yield return(this.EnsureIsActive(
                             MemoryMeasurementAccu?.ShipUiModule?.Where(module => module.ShouldBeActivePermanent(this))));

            var moduleUnknown =
                MemoryMeasurementAccu?.ShipUiModule?.FirstOrDefault(module => null == module?.TooltipLast?.Value);

            yield return(new BotTask {
                Effects = new[] { moduleUnknown?.MouseMove() }
            });

            if (!saveShipTask.AllowRoam)
            {
                yield break;
            }

            var combatTask = new CombatTask {
                bot = this
            };

            yield return(combatTask);

            if (!saveShipTask.AllowAnomalyEnter)
            {
                yield break;
            }

            yield return(new UndockTask {
                MemoryMeasurement = MemoryMeasurementAtTime?.Value
            });

            if (combatTask.Completed)
            {
                yield return new AnomalyEnter {
                           bot = this
                }
            }
            ;
        }
コード例 #2
0
ファイル: AnomalyHunting.cs プロジェクト: Fulborg/A-Bot
        public IEnumerable <IBotTask> GetTasks(Bot bot)
        {
            //yield return new BotTask { Component = EnumerateConfigDiagnostics() };

            yield return(new EnableInfoPanelCurrentSystem {
                MemoryMeasurement = bot.MemoryMeasurementAtTime?.Value
            });

            var saveShipTask = new SaveShipTask {
                Bot = bot
            };

            yield return(saveShipTask);

            var shipFit = new ShipFit(bot.MemoryMeasurementAccu?.ShipUiModule,
                                      new[]
            {
                new[]
                {
                    new ShipFit.ModuleInfo(ShipFit.ModuleType.Etc),
                },
                new[]
                {
                    new ShipFit.ModuleInfo(ShipFit.ModuleType.Hardener),
                    new ShipFit.ModuleInfo(ShipFit.ModuleType.Hardener),
                    new ShipFit.ModuleInfo(ShipFit.ModuleType.Hardener),
                },
                new[]
                {
                    new ShipFit.ModuleInfo(ShipFit.ModuleType.Etc),
                    new ShipFit.ModuleInfo(ShipFit.ModuleType.Etc)
                }
            });

            yield return(bot.EnsureIsActive(shipFit.GetAlwaysActiveModules().Select(m => m.UiModule)));

            //var moduleUnknown = MemoryMeasurementAccu?.ShipUiModule?.FirstOrDefault(module => null == module?.TooltipLast?.Value);

            //yield return new BotTask { ClientActions = new[] { moduleUnknown?.MouseMove() } };

            if (!saveShipTask.AllowRoam)
            {
                yield break;
            }


            var combatTask = new CombatTask {
                bot = bot
            };

            yield return(combatTask);

            if (!saveShipTask.AllowAnomalyEnter)
            {
                yield break;
            }

            yield return(new UndockTask(bot.MemoryMeasurementAtTime?.Value));

            if (combatTask.Completed)
            {
                if (!currentAnomalyLooted)
                {
                    var lootTask = new LootTask(bot);
                    yield return(lootTask);

                    if (!lootTask.HasWreckToLoot)
                    {
                        currentAnomalyLooted = true;
                    }
                }
                yield return(new AnomalyEnter {
                    bot = bot
                });
            }
        }
コード例 #3
0
        IEnumerable <IBotTask> RootTaskListComponentDefault()
        {
            yield return(new BotTask {
                Component = EnumerateConfigDiagnostics()
            });

            yield return(new EnableInfoPanelCurrentSystem {
                MemoryMeasurement = MemoryMeasurementAtTime?.Value
            });

            var saveShipTask = new SaveShipTask {
                Bot = this
            };

            yield return(saveShipTask);

            yield return(this.EnsureIsActive(MemoryMeasurementAccu?.ShipUiModule?.Where(module => module.ShouldBeActivePermanent(this))));

            var moduleUnknown = MemoryMeasurementAccu?.ShipUiModule?.FirstOrDefault(module => null == module?.TooltipLast?.Value);

            yield return(new BotTask {
                Effects = new[] { moduleUnknown?.MouseMove() }
            });

            if (!saveShipTask.AllowRoam)
            {
                yield break;
            }

            var combatTask = new CombatTask {
                bot = this
            };

            yield return(combatTask);

            if (!saveShipTask.AllowAnomalyEnter)
            {
                yield break;
            }

            yield return(new UndockTask {
                MemoryMeasurement = MemoryMeasurementAtTime?.Value
            });

            if (combatTask.Completed)
            {
                yield return new AnomalyEnter {
                           bot = this
                }
            }
            ;
        }

        IEnumerable <IBotTask> EnumerateConfigDiagnostics()
        {
            var configDeserializeException = ConfigSerialAndStruct.Key?.Exception;

            if (null != configDeserializeException)
            {
                yield return new DiagnosticTask {
                           MessageText = "error parsing configuration: " + configDeserializeException.Message
                }
            }
            ;
            else
            if (null == ConfigSerialAndStruct.Value)
            {
                yield return new DiagnosticTask {
                           MessageText = "warning: no configuration supplied."
                }
            }
            ;
        }
    }
}