static CharacterAbilityTrees()
        {
            frostBiteCurseAbility.buffDebuffName = CharAbilities.frostbiteBuff;
            frostBiteCurseAbility.minimumIntervalBetweenUsagesMs = 2000;
            frostBiteCurseAbility.activationComposite            = CharAbilities.ComboHotkey(x => Keys.LControlKey, x => Keys.Q);


            steelSkinAbility.activationComposite = CharAbilities.ComboHotkey(x => Keys.LControlKey, x => Keys.H);
            steelSkinAbility.skillCooldownMs     = 500;

            enfeebleCurseAbility.buffDebuffName = CharAbilities.enfeebleBuff;
            enfeebleCurseAbility.minimumIntervalBetweenUsagesMs = 2000;
            enfeebleCurseAbility.activationComposite            = CharAbilities.ComboHotkey(x => Keys.LControlKey, x => Keys.Q);


            bloodRageAbility.buffDebuffName = CharAbilities.bloodRageBuff;
            bloodRageAbility.minimumIntervalBetweenUsagesMs = 2000;
            bloodRageAbility.activationComposite            = CharAbilities.ComboHotkey(x => Keys.LControlKey, x => Keys.J);

            berserkAbility.buffDebuffName = CharAbilities.berserkBuff;
            berserkAbility.minimumIntervalBetweenUsagesMs = 5000;
            berserkAbility.activationComposite            = CharAbilities.ComboHotkey(x => Keys.LControlKey, x => Keys.M);
            //generateRageAbility.buffDebuffName = CharAbilities.frostbiteBuff;
            generateRageAbility.minimumIntervalBetweenUsagesMs = 1000;
            //generateRageAbility.activationComposite = CharAbilities.ComboHotkey(x => Keys.LControlKey, x => Keys.Q);

            tempChainsBlashpemy.buffDebuffName = CharAbilities.tempChainsBuff;
            tempChainsBlashpemy.minimumIntervalBetweenUsagesMs = 30;
            tempChainsBlashpemy.skillCooldownMs     = 1200;
            tempChainsBlashpemy.activationComposite = CharAbilities.ComboHotkey(x => Keys.None, x => Keys.T);
        }
        public static Composite ActivateNecroAuras()
        {
            return(new PrioritySelector(
                       CharAbilities.ActivateAura(x => CharAbilities.skitterBotsBuff, x => Keys.LControlKey, x => Keys.R),
                       CharAbilities.ActivateAura(x => CharAbilities.hatredBuff, x => Keys.LControlKey, x => Keys.H),
                       CharAbilities.ActivateAura(x => CharAbilities.carrionGolemBuff, x => Keys.None, x => Keys.W)

                       ));
        }
 public static Composite CreateBamaBuffTree()
 {
     return(new Decorator(delegate
     {
         return WillBot.Plugin.TreeHelper.CanTickMap();
     },
                          new PrioritySelector(
                              CharAbilities.CreateUseGuardSkillComposite(steelSkinAbility)
                              // Create snipers mark
                              // Create Flesh offering
                              )));
 }
 public static Composite CreateNecroBuffTree()
 {
     return(new Decorator(delegate
     {
         return WillBot.Plugin.TreeHelper.CanTickMap();
     },
                          new PrioritySelector(
                              CharAbilities.CreateUseEnduringCryComposite(),
                              CharAbilities.CreateUseVortexComposite(),
                              CharAbilities.CreateUseBoneArmorComposite(),
                              CharAbilities.UseConvocation(),
                              CharAbilities.CreateUseFrostbiteComposite(),
                              CharAbilities.RaiseZombieComposite()
                              )));
 }
 public static Composite CreateRageWarriorBuffTree()
 {
     return(new Decorator(delegate
     {
         return WillBot.Plugin.TreeHelper.CanTickMap();
     },
                          new PrioritySelector(
                              CharAbilities.CreatePFRageComposite(generateRageAbility)
                              // CharAbilities.CreateUseGuardSkillComposite(steelSkinAbility)
                              // CharAbilities.ActivateBuffIfNotPresent(bloodRageAbility)
                              //CharAbilities.CreateBerserkComposite()
                              // CharAbilities.CreateUseWarcryToGenerateRageCompositeWithoutWeaponSwap(generateRageAbility)
                              //CharAbilities.CreateUseWarcryToGenerateRageComposite(generateRageAbility),
                              //CharAbilities.SwapBackToMainWeaponSet()
                              )));
 }
 public static Composite CreateScourgeArrowPfTree()
 {
     return(new Decorator(delegate
     {
         return WillBot.Plugin.TreeHelper.CanTickMap();
     },
                          new PrioritySelector(
                              CharAbilities.HandleScourgeArrow(),
                              CharAbilities.CreateUseBerserkViaTempChainsActivations(tempChainsBlashpemy),
                              CharAbilities.ActivateBuffIfNotPresent(bloodRageAbility, onlyActivateIfNearbyEnemies: true),
                              CharAbilities.ActivateBuffIfNotPresent(berserkAbility, onlyActivateIfNearbyEnemies: false),
                              CharAbilities.CreateUseGuardSkillComposite(steelSkinAbility, healthThreshold: 70)
                              //CharAbilities.CreateBerserkComposite()
                              // CharAbilities.CreateUseWarcryToGenerateRageCompositeWithoutWeaponSwap(generateRageAbility)
                              //CharAbilities.CreateUseWarcryToGenerateRageComposite(generateRageAbility),
                              //CharAbilities.SwapBackToMainWeaponSet()
                              )));
 }
        public static Composite CreateVortexCharAbilityTree()
        {
            return(new Decorator(delegate
            {
                return WillBot.Plugin.TreeHelper.CanTickMap();
            },
                                 new PrioritySelector(
                                     //CharAbilities.SmokeMineMacroComposite()
                                     //CharAbilities.CreateBerserkComposite()
                                     //CharAbilities.CreateUseFrostbiteComposite()
                                     //CharAbilities.CreateUseCurseComposite(frostBiteCurseAbility),
                                     //LevelGemsBehavior.LevelGems()
                                     //CharAbilities.CreateUseVortexComposite(),
                                     //CharAbilities.CreateUseEnduringCryComposite()
                                     //

                                     CharAbilities.CreateUseGuardSkillComposite(steelSkinAbility),
                                     CharAbilities.CreateUseCurseComposite(enfeebleCurseAbility),
                                     CharAbilities.CreateUseVortexComposite(),
                                     CharAbilities.CreateBerserkComposite()
                                     )));
        }