示例#1
0
        public override void InitializeTasks()
        {
            base.InitializeTasks();
            SiegeTask.Enable();
            TimingAttackTask.Enable();
            //WorkerScoutTask.Enable();
            DefenseTask.Enable();
            BunkerDefendersTask.Enable();
            SupplyDepotTask.Enable();
            ArmyRavenTask.Enable();
            MechDestroyExpandsTask.Enable();
            RepairTask.Enable();
            ReplenishBuildingSCVTask.Enable();
            ClearBlockedExpandsTask.Enable();
            HomeRepairTask.Enable();
            TransformTask.Enable();
            ThorretTask.Enable();
            HideBuildingTask.Enable();
            HideUnitsTask.Enable();
            //AttackTask.Enable();

            AttackTask.Enable();

            if (TankDefenseTasks.Count == 0)
            {
                foreach (Base b in Bot.Main.BaseManager.Bases)
                {
                    if (b == Natural ||
                        b == Main)
                    {
                        continue;
                    }
                    TankDefenseTasks.Add(new DefenseSquadTask(b, UnitTypes.SIEGE_TANK)
                    {
                        MaxDefenders = 2
                    });
                    LiberatorDefenseTasks.Add(new DefenseSquadTask(b, UnitTypes.LIBERATOR)
                    {
                        MaxDefenders = 1
                    });
                    VikingDefenseTasks.Add(new DefenseSquadTask(b, UnitTypes.VIKING_FIGHTER)
                    {
                        MaxDefenders = 1
                    });
                }
            }

            foreach (DefenseSquadTask task in TankDefenseTasks)
            {
                Task.Enable(task);
            }
            foreach (DefenseSquadTask task in LiberatorDefenseTasks)
            {
                Task.Enable(task);
            }
            foreach (DefenseSquadTask task in VikingDefenseTasks)
            {
                Task.Enable(task);
            }
        }
示例#2
0
        public void Execute_TransformerFailed_ShouldReturnFailure()
        {
            var task = new TransformTask<string, string>(
                Task.Const("foo"),
                val => { throw new Exception("An error has occurred"); });

            task.Execute().AssertFailedWith("An error has occurred");
        }
示例#3
0
        public void Execute_NestedTaskSucceed_ShouldTransform()
        {
            var task = new TransformTask<string, string>(
                Task.Const("foo"),
                val => val.ToUpper());

            task.Execute().AssertDataIs("FOO");
        }
示例#4
0
        public void Execute_NestedTaskFailed_ShouldFail()
        {
            var task = new TransformTask<string, string>(
                Task.Failure<string>("error message"),
                val => val.ToUpper());

            task.Execute().AssertFailedWith("error message");
        }
示例#5
0
 public override void InitializeTasks()
 {
     base.InitializeTasks();
     TimingAttackTask.Enable();
     DefenseTask.Enable();
     SupplyDepotTask.Enable();
     RepairTask.Enable();
     ReplenishBuildingSCVTask.Enable();
     ClearBlockedExpandsTask.Enable();
     HomeRepairTask.Enable();
     TransformTask.Enable();
 }
示例#6
0
        public bool Execute()
        {
            bool result = true;

            BuildEngine.LogMessageEvent(new BuildMessageEventArgs($"Transforming file: {Path}", string.Empty,
                                                                  nameof(TransformConfig), MessageImportance.Normal));

            try
            {
                TransformationCollection transforms = new TransformationCollection();

                foreach (var item in Trasformations)
                {
                    if (transforms.ContainsKey(item.ItemSpec) == false)
                    {
                        transforms.Add(item.ItemSpec, item.GetMetadata("Value"));
                    }
                    else
                    {
                        BuildEngine.LogWarningEvent(new BuildWarningEventArgs(
                                                        null,
                                                        null,
                                                        null,
                                                        0, 0, 0, 0,
                                                        $"Transform key duplicate: {item.ItemSpec}. Skipping.", null,
                                                        nameof(TransformConfig), DateTime.Now));
                        result = false;
                    }
                }

                TransformTask.Transform(Type, Path, Target ?? Path, transforms);

                BuildEngine.LogMessageEvent(new BuildMessageEventArgs($"File transformed to: {Target ?? Path}", string.Empty,
                                                                      nameof(TransformConfig), MessageImportance.Normal));
            }
            catch (Exception ex)
            {
                BuildEngine.LogErrorEvent(new BuildErrorEventArgs(
                                              null,
                                              null,
                                              null,
                                              0, 0, 0, 0,
                                              $"File transformation error: {ex.Message}", null,
                                              nameof(TransformConfig), DateTime.Now));

                result = false;
            }

            return(result);
        }
示例#7
0
 public override void InitializeTasks()
 {
     base.InitializeTasks();
     WorkerScoutTask.Enable();
     DefenseTask.Enable();
     BunkerDefendersTask.Enable();
     SupplyDepotTask.Enable();
     ArmyRavenTask.Enable();
     //MechDestroyExpandsTask.Enable();
     RepairTask.Enable();
     ReplenishBuildingSCVTask.Enable();
     TransformTask.Enable();
     WorkerRushDefenseTask.Enable();
     TimingAttackTask.Enable();
     DefenseSquadTask.Enable(false, UnitTypes.MARINE);
     SiegeAtRampTask.Enable();
     SiegeBelowRampTask.Enable();
     HomeRepairTask.Enable();
 }
示例#8
0
        public static bool TransformConfig(this ICakeContext context, string type, string path, string target,
                                           TransformationCollection transformations)
        {
            var result = true;

            context.Log.Write(Verbosity.Normal, LogLevel.Information, "Transforming file: {0}", path);

            try
            {
                TransformTask.Transform(type, path, target ?? path, transformations);

                context.Log.Write(Verbosity.Normal, LogLevel.Information, "File transformed to: {0}", target ?? path);
            }
            catch (Exception ex)
            {
                context.Log.Write(Verbosity.Normal, LogLevel.Error, "File transformation error: {0}", ex.Message);
                result = false;
            }

            return(result);
        }
示例#9
0
文件: MechTvZ.cs 项目: slemvs/TyrSc2
        public override void InitializeTasks()
        {
            base.InitializeTasks();
            TimingAttackTask.Enable();
            WorkerScoutTask.Enable();
            DefenseTask.Enable();
            BunkerDefendersTask.Enable();
            SupplyDepotTask.Enable();
            ArmyRavenTask.Enable();
            RepairTask.Enable();
            ReplenishBuildingSCVTask.Enable();
            DistributedDefenseTask.Enable();
            TransformTask.Enable();
            KillScoutsTask.Enable();
            HomeRepairTask.Enable();
            MechDestroyExpandsTask.Enable();

            DistributeHellbatsTask = new DistributeOverBasesTask(UnitTypes.HELLBAT);
            DistributeHellbatsTask.Enable();

            if (CycloneDefenseSquads == null)
            {
                CycloneDefenseSquads = DefenseSquadTask.GetDefenseTasks(UnitTypes.CYCLONE);
            }
            else
            {
                foreach (DefenseSquadTask task in CycloneDefenseSquads)
                {
                    Tyr.Bot.TaskManager.Add(task);
                }
            }
            DefenseSquadTask.Enable(CycloneDefenseSquads, true, true);

            foreach (DefenseSquadTask task in CycloneDefenseSquads)
            {
                task.Priority      = 4;
                task.MaxDefenders  = 1;
                task.AllowClaiming = false;
            }
        }
示例#10
0
        public override void InitializeTasks()
        {
            base.InitializeTasks();
            SiegeTask.Enable();
            TimingAttackTask.Enable();
            WorkerScoutTask.Enable();
            DefenseTask.Enable();
            BunkerDefendersTask.Enable();
            SupplyDepotTask.Enable();
            ArmyRavenTask.Enable();
            RepairTask.Enable();
            ReplenishBuildingSCVTask.Enable();
            ClearBlockedExpandsTask.Enable();
            HomeRepairTask.Enable();
            TransformTask.Enable();

            if (TankDefenseTasks.Count == 0)
            {
                foreach (Base b in Bot.Main.BaseManager.Bases)
                {
                    if (b == Natural ||
                        b == Main)
                    {
                        continue;
                    }
                    TankDefenseTasks.Add(new DefenseSquadTask(b, UnitTypes.SIEGE_TANK)
                    {
                        MaxDefenders = 2
                    });
                    LiberatorDefenseTasks.Add(new DefenseSquadTask(b, UnitTypes.LIBERATOR)
                    {
                        MaxDefenders = 1
                    });
                    VikingDefenseTasks.Add(new DefenseSquadTask(b, UnitTypes.VIKING_FIGHTER)
                    {
                        MaxDefenders = 1
                    });
                }
            }

            foreach (DefenseSquadTask task in TankDefenseTasks)
            {
                Task.Enable(task);
            }
            foreach (DefenseSquadTask task in LiberatorDefenseTasks)
            {
                Task.Enable(task);
            }
            foreach (DefenseSquadTask task in VikingDefenseTasks)
            {
                Task.Enable(task);
            }

            DefenseSquadTask.Enable(false, UnitTypes.CYCLONE);
            foreach (DefenseSquadTask task in DefenseSquadTask.Tasks)
            {
                task.MaxDefenders = 2;
            }
            if (CycloneDefenseTasks == null)
            {
                CycloneDefenseTasks = DefenseSquadTask.GetDefenseTasks(UnitTypes.CYCLONE);
            }

            DefenseSquadTask.Enable(CycloneDefenseTasks, false, false);
            foreach (DefenseSquadTask task in CycloneDefenseTasks)
            {
                task.MaxDefenders = 1;
                task.Priority     = 8;
            }
        }