示例#1
0
 public static Composite DemonHunterBuffs()
 {
     return
         (new PrioritySelector(CtxChanger,
                               Common.CreateWaitForAttack(),
                               Common.CreateWaitForCast(),
                               Common.CreateGetPowerGlobe(),
                               Common.CreateUsePoolOfReflection(),
                               new SelfCast(SNOPower.X1_DemonHunter_Companion,
                                            ctx =>
                                            CompanionTimer.IsFinished && !Minion.HasPet(((CombatContext)ctx), Pet.DH_Companion),
                                            s => CompanionTimer.Reset()),
                               new SelfCast(SNOPower.DemonHunter_Chakram,
                                            extra =>
                                            BelphegorSettings.Instance.DemonHunter.ShurikenCloud &&
                                            ShurikenCloudTimer.IsFinished, s => ShurikenCloudTimer.Reset()),
                               new SelfCast(SNOPower.DemonHunter_SmokeScreen,
                                            extra =>
                                            SmokeScreenTimer.IsFinished && ZetaDia.Me.HitpointsCurrentPct <=
                                            BelphegorSettings.Instance.DemonHunter
                                            .SmokeScreenHP ||
                                            BelphegorSettings.Instance.DemonHunter.SpamSmokeScreen,
                                            s => SmokeScreenTimer.Reset()),
                               Avoidance.CreateMoveForAvoidance(
                                   BelphegorSettings.Instance.DemonHunter.MaximumRange)
                               ));
 }
示例#2
0
 public static Composite BarbarianBuffs()
 {
     return
         (new PrioritySelector(CtxChanger,
                               Common.CreateWaitForAttack(),
                               Common.CreateWaitForCast(),
                               new SelfCast(SNOPower.Barbarian_WarCry,
                                            extra => (!ZetaDia.Me.HasBuff(SNOPower.Barbarian_WarCry) ||
                                                      BelphegorSettings.Instance.Barbarian.SpamWarCry) &&
                                            !ZetaDia.Me.IsInTown),
                               Avoidance.CreateMoveForAvoidance(BelphegorSettings.Instance.Barbarian.MaximumRange)
                               ));
 }
示例#3
0
 public static Composite CrusaderBuff()
 {
     return
         (new Decorator(ctx => !ZetaDia.IsInTown,
                        new PrioritySelector(CtxChanger,
                                             Common.CreateWaitForAttack(),
                                             Common.CreateWaitForCast(),
                                             Common.CreateGetPowerGlobe(),
                                             Common.CreateUsePoolOfReflection(),
                                             Avoidance.CreateMoveForAvoidance(BelphegorSettings.Instance.Crusader.MaximumRange)
                                             )
                        ));
 }
示例#4
0
 public static Composite WitchDoctorBuff()
 {
     return
         (new PrioritySelector(CtxChanger,
                               Common.CreateWaitForAttack(),
                               Common.CreateWaitForCast(),
                               new SelfCast(SNOPower.Witchdoctor_Gargantuan,
                                            extra => !Minion.HasPet(Pet.Gargantuan)),
                               new SelfCast(SNOPower.Witchdoctor_SummonZombieDog,
                                            extra => Minion.PetCount(Pet.ZombieDogs) < 3),
                               Avoidance.CreateMoveForAvoidance(
                                   BelphegorSettings.Instance.WitchDoctor.MaximumRange)
                               ));
 }
示例#5
0
 public static Composite BarbarianBuffs()
 {
     return
         (new PrioritySelector(CtxChanger,
                               Common.CreateWaitForAttack(),
                               Common.CreateWaitForCast(),
                               Common.CreateGetPowerGlobe(),
                               Common.CreateUsePoolOfReflection(),
                               new SelfCast(SNOPower.X1_Barbarian_WarCry_v2,
                                            extra => (!ZetaDia.Me.HasBuff(SNOPower.X1_Barbarian_WarCry_v2) ||
                                                      BelphegorSettings.Instance.Barbarian.SpamWarCry) &&
                                            !ZetaDia.IsInTown),
                               new SelfCast(SNOPower.Barbarian_BattleRage,
                                            extra => !ZetaDia.Me.HasBuff(SNOPower.Barbarian_BattleRage)),
                               Avoidance.CreateMoveForAvoidance(BelphegorSettings.Instance.Barbarian.MaximumRange)
                               ));
 }
示例#6
0
 public static Composite WizardBuffs()
 {
     return
         (new PrioritySelector(CtxChanger,
                               Common.CreateWaitForAttack(),
                               Common.CreateWaitForCast(),
                               new SelfCast(SNOPower.Wizard_MagicWeapon,
                                            extra => !ZetaDia.Me.HasBuff(SNOPower.Wizard_MagicWeapon)),
                               new SelfCast(SNOPower.Wizard_Familiar, extra => FamiliarTimer.IsFinished,
                                            s => FamiliarTimer.Reset()),
                               new SelfCast(SNOPower.Wizard_EnergyArmor,
                                            extra => !ZetaDia.Me.HasBuff(SNOPower.Wizard_EnergyArmor)),
                               new SelfCast(SNOPower.Wizard_StormArmor,
                                            extra => !ZetaDia.Me.HasBuff(SNOPower.Wizard_StormArmor)),
                               new SelfCast(SNOPower.Wizard_IceArmor,
                                            extra => !ZetaDia.Me.HasBuff(SNOPower.Wizard_IceArmor)),
                               Avoidance.CreateMoveForAvoidance(
                                   BelphegorSettings.Instance.Wizard.MaximumRange)
                               ));
 }
示例#7
0
 public static Composite MonkBuff()
 {
     return
         (new Decorator(ctx => !ZetaDia.IsInTown,
                        new PrioritySelector(CtxChanger,
                                             Common.CreateWaitForAttack(),
                                             Common.CreateWaitForCast(),
                                             Common.CreateGetPowerGlobe(),
                                             Common.CreateUsePoolOfReflection(),
                                             new SelfCast(SNOPower.Monk_BreathOfHeaven,
                                                          ret =>
                                                          ZetaDia.Me.CurrentPrimaryResource >
                                                          BelphegorSettings.Instance.Monk.
                                                          BoHBlazingWrathOutOfCombatSpiritTreshold &&
                                                          !ZetaDia.Me.HasBuff(SNOPower.Monk_BreathOfHeaven) &&
                                                          BelphegorSettings.Instance.Monk.BoHBlazingWrath),
                                             Avoidance.CreateMoveForAvoidance(BelphegorSettings.Instance.Monk.MaximumRange)
                                             )
                        ));
 }
示例#8
0
文件: Monk.cs 项目: shmilyzxt/MyBuddy
 public static Composite MonkBuff()
 {
     return
         (new Decorator(ctx => !ZetaDia.Me.IsInTown,
                        new PrioritySelector(CtxChanger,
                                             Common.CreateWaitForAttack(),
                                             Common.CreateWaitForCast(),
                                             new SelfCast(SNOPower.Monk_MysticAlly,
                                                          extra =>
                                                          AllyTimer.IsFinished && !Minion.HasPet(Pet.MysticAlly),
                                                          s => AllyTimer.Reset()),
                                             new SelfCast(SNOPower.Monk_BreathOfHeaven,
                                                          ret =>
                                                          ZetaDia.Me.CurrentPrimaryResource >
                                                          BelphegorSettings.Instance.Monk.
                                                          BoHBlazingWrathOutOfCombatSpiritTreshold &&
                                                          !ZetaDia.Me.HasBuff(SNOPower.Monk_BreathOfHeaven) &&
                                                          BelphegorSettings.Instance.Monk.BoHBlazingWrath),
                                             Avoidance.CreateMoveForAvoidance(BelphegorSettings.Instance.Monk.MaximumRange)
                                             )
                        ));
 }