private void BtnAttackTargetDummyClick(object sender, EventArgs e) { if (ObjectManager.InGame) { Langs.Load(); if (ObjectManager.MyPlayer.IsValid && Langs.TrainingDummy(ObjectManager.MyPlayer.Target.Name)) { if (_killDummy == null || !_killDummy.IsAlive) { KeyHelper.LoadKeys(); BarMapper.MapBars(); if (CombatEngine.StartOk) { CombatEngine.BotStarted(); } else { Logging.Write(LogType.Warning, "CustomClass returned false on StartOk not starting"); return; } _killDummy = new Thread(KillTheDummy); _killDummy.Name = "KillDummy"; _killDummy.IsBackground = true; _killDummy.Start(); } BtnAttackTargetDummy.Enabled = false; } else { Logging.Write("Please target a Training dummy ingame"); } } }
private static void CheckBuffAndKeys(IEnumerable <Rule> rules) { foreach (Rule rule in rules) { if (rule.IsScript) { continue; } rule.BotStarting(); if (!rule.Action.DoesKeyExist) { Logging.Write(LogType.Warning, "Key: " + rule.Action.Name + " does not exist on your bars"); } foreach (AbstractCondition abstractCondition in rule.GetConditions) { if (abstractCondition is BuffCondition) { if (!String.IsNullOrEmpty(((BuffCondition)abstractCondition).GetBuffName())) { if (!BarMapper.DoesBuffExist(((BuffCondition)abstractCondition).GetBuffName())) { Logging.Write(LogType.Warning, "Buff: " + ((BuffCondition)abstractCondition).GetBuffName() + " does not exist in HasWellKnownBuff will not detect it correctly"); } } } } } }
public void CorrectMapping_ToBar() { //Arrange var options = Utils.GetOptions(nameof(CorrectMapping_ToBar)); //Act & Assert using (var assertContext = new CocktailMagicianContext(options)) { var barDTO = new BarDTO { Name = "Bilkova", CityId = 1, Address = "Shishman str.", Phone = "0888 888 444", AverageRating = 4, }; var sut = new BarMapper(); var result = sut.MapToBar(barDTO); Assert.IsInstanceOfType(result, typeof(Bar)); Assert.AreEqual(barDTO.Name, result.Name); Assert.AreEqual(barDTO.CityId, result.CityId); Assert.AreEqual(barDTO.Address, result.Address); Assert.AreEqual(barDTO.Phone, result.Phone); Assert.AreEqual(barDTO.AverageRating, result.AverageRating); } }
public void StartBotting() { if (!ValidateKeys.AutoLoot) { Logging.Write(LogType.Error, "Please enable auto loot"); return; } if (ValidateKeys.ClickToMove) { Logging.Write(LogType.Error, "Please disable click to move"); return; } BarMapper.MapBars(); KeyHelper.LoadKeys(); if (!ValidateKeys.Validate()) { Thread.Sleep(2000); } Langs.Load(); if (EngineHandler.EngineStart()) { LazySettings.SaveSettings(); if (CombatEngine.StartOk) { CombatEngine.BotStarted(); } else { Logging.Write(LogType.Warning, "CustomClass returned false on StartOk not starting"); return; } Logging.Debug("Relogger: " + ReloggerSettings.ReloggingEnabled); Logging.Debug("Engine: " + EngineHandler.Name); Logging.Write("Bot started"); Logging.Debug("CurrentFlyingProfile: " + FlyingSettings.Profile); Logging.Debug("CurrentGrindingProfile: " + GrindingSettings.Profile); UpdateText(StartStopEngine, "Stop botting"); ShouldRelog = ReloggerSettings.ReloggingEnabled; LazyForm.Engine = EngineHandler.Name; DisableItems(); Engine.StartEngine(EngineHandler); StopAfter.BotStarted(); PeriodicRelogger.BotStarted(); PluginManager.BotStart(); PluginManager.StartPulseThread(true); } else { Logging.Write(LogType.Warning, "Engine returned false on load"); } }
public override void DoWork() { Logging.Write("[Train]Found the trainer"); GrindingEngine.Navigator.Stop(); MoveHelper.MoveToLoc(_npc.Location, 5); DoTrain(); Logging.Write("Re-mapping the bars"); BarMapper.MapBars(); Logging.Write("[Train]Train done"); GrindingEngine.Navigator.Stop(); GrindingEngine.Navigation = new GrindingNavigation(GrindingEngine.CurrentProfile); Train.SetTrain(false); GrindingEngine.ShouldTrain = false; }
public override void Execute(int globalcooldown) { if (!this.DoesKeyExist) { return; } if (!KeyHelper.HasKey(this._name)) { this._spell = (BarSpell)null; } if (this._spell == null) { this._spell = BarMapper.GetSpellByName(this._name); this._spell.SetCooldown(globalcooldown); KeyHelper.AddKey(this._name, "", this._spell.Bar.ToString(), this._spell.Key.ToString()); } this._spell.CastSpell(); }
public override void Execute(int globalcooldown) { if (DoesKeyExist) { if (!KeyHelper.HasKey(_name)) { _spell = null; } //Load the spell and set the global cooldown if (_spell == null) { _spell = BarMapper.GetSpellByName(_name); _spell.SetCooldown(globalcooldown); KeyHelper.AddKey(_name, "", _spell.Bar.ToString(), _spell.Key.ToString()); } _spell.CastSpell(); } }
public void CorrectMapping_ToBarDTO() { //Arrange var options = Utils.GetOptions(nameof(CorrectMapping_ToBarDTO)); var bar = new Bar { Id = 3, Name = "The Beach", CityId = 2, City = new City { Id = 2, Name = "Kaspichan" }, Address = "Obikolna str.", Phone = "0888 777 444", AverageRating = 4.5, IsDeleted = false }; //Act & Assert using (var assertCocntext = new CocktailMagicianContext(options)) { var sut = new BarMapper(); var result = sut.MapToBarDTO(bar); Assert.IsInstanceOfType(result, typeof(BarDTO)); Assert.AreEqual(bar.Id, result.Id); Assert.AreEqual(bar.Name, result.Name); Assert.AreEqual(bar.CityId, result.CityId); Assert.AreEqual(bar.City.Name, result.CityName); Assert.AreEqual(bar.Address, result.Address); Assert.AreEqual(bar.Phone, result.Phone); Assert.AreEqual(bar.AverageRating, result.AverageRating); Assert.AreEqual(bar.IsDeleted, result.IsDeleted); Assert.AreEqual(bar.BarCocktails.Count, result.Cocktails.Count); } }
private void AZRUN() { BarMapper.MapBars(); KeyHelper.LoadKeys(); string BossName = "看门者克里克希尔"; List <string> EmName = new List <string>(); EmName.Add("看守者纳尔伊"); EmName.Add("看守者加什拉"); EmName.Add("看守者希尔希克"); List <int> MyBadBuff = new List <int>(); MyBadBuff.Add(52087); // 蛛网裹体 MyBadBuff.Add(52086); // 蛛网裹体 while (ObjectManager.MyPlayer.IsAlive) { // 循环开始 PUnit boss = new PUnit(0); Dictionary <string, PUnit> em = new Dictionary <string, PUnit>(); // 加buff if (!ObjectManager.MyPlayer.HasBuff("钢皮合剂")) { KeyHelper.SendLuaOverChat("/use 钢皮合剂"); } if (!ObjectManager.MyPlayer.HasBuff("坚韧")) { KeyHelper.SendLuaOverChat("/use 坚韧符文卷轴 II"); } // 找到怪的地址 int FoundCount = 0; em.Clear(); foreach (PUnit uu in ObjectManager.GetUnits) { if (uu.Name.Equals(BossName)) { boss = uu; FoundCount++; continue; } foreach (string ename in EmName) { if (uu.Name.Equals(ename)) { em.Add(ename, uu); FoundCount++; continue; } } } if (FoundCount < 4) { Logging.Write("找不到怪了"); return; } // 面对boss boss.Face(); // 开机能 if (!ObjectManager.MyPlayer.HasBuff("野性印记")) { BarMapper.CastSpell("野性印记"); } if (!ObjectManager.MyPlayer.HasBuff("猎豹形态")) { BarMapper.CastSpell("猎豹形态"); } Thread.Sleep(1000); // 定位一个 int killcount = 0; foreach (string ename in EmName) { PUnit emUnit = em[ename]; while (!emUnit.TargetGUID.Equals(ObjectManager.MyPlayer.GUID)) { KeyHelper.SendLuaOverChat("/target " + ename); BarMapper.CastSpell("精灵之火(野性)"); Thread.Sleep(100); } //Thread.Sleep(500); // 猛虎之怒 if (BarMapper.IsSpellReadyByName("猛虎之怒")) { BarMapper.CastSpell("猛虎之怒"); Thread.Sleep(10); } // 树皮术 if (BarMapper.IsSpellReadyByName("树皮术")) { BarMapper.CastSpell("树皮术"); Thread.Sleep(10); } // 等待怪过来 while (emUnit.Location.DistanceToSelf2D > 5) { if (killcount > 0) { BarMapper.CastSpell("横扫"); } } ; emUnit.Location.Face(); // 杀,直到怪死 int count = 0; Logging.Write("血量:" + emUnit.Health + " 怪物名称:" + emUnit.Name + " 是死是活:" + emUnit.IsAlive); int UHealth = 0; UHealth = emUnit.Health; while (UHealth == -1) { UHealth = emUnit.Health; } while (UHealth > 0) { Thread.Sleep(10); if (!ObjectManager.MyPlayer.IsCasting) { //调整朝向 if (!emUnit.Location.IsFacing(0.3f)) { emUnit.Location.Face(); } //Logging.Write("Count is " + count.ToString()); // 检查自己的buff while (ObjectManager.MyPlayer.HasBuff(MyBadBuff)) { } ; // 猛虎之怒 if (BarMapper.IsSpellReadyByName("猛虎之怒")) { BarMapper.CastSpell("猛虎之怒"); Thread.Sleep(10); } // 树皮术 if (BarMapper.IsSpellReadyByName("树皮术")) { BarMapper.CastSpell("树皮术"); Thread.Sleep(10); } // 凶猛撕咬--终结技 //if (count == 4 && BarMapper.IsSpellReadyByName("凶猛撕咬")) if (count > 4) { //BarMapper.CastSpell("凶猛撕咬"); KeyLowHelper.PressKey(MicrosoftVirtualKeys.LeftShift); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key1); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key1); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.LeftShift); Thread.Sleep(10); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key3); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key3); //Thread.Sleep(10); count = 0; } //// 裂伤 //if (BarMapper.IsSpellReadyByName("裂伤") && !emUnit.HasBuff("裂伤")) //{ // BarMapper.CastSpell("裂伤"); // Thread.Sleep(10); // count++; //} // 斜掠 if (BarMapper.IsSpellReadyByName("裂伤")) { //BarMapper.CastSpell("裂伤"); KeyLowHelper.PressKey(MicrosoftVirtualKeys.LeftShift); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key1); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key1); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.LeftShift); Thread.Sleep(10); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key2); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key2); count++; //Thread.Sleep(10); } Logging.Write("血量:" + emUnit.Health); } UHealth = emUnit.Health; while (UHealth == -1) { UHealth = emUnit.Health; if (UHealth == 0) { int HealthTry1 = emUnit.Health; int HealthTry2 = emUnit.Health; UHealth = (HealthTry1 >= HealthTry2 ? HealthTry1 : HealthTry2); } } if (ObjectManager.MyPlayer.IsDead) { return; } } killcount++; } while (ObjectManager.MyPlayer.HasBuff(MyBadBuff)) { } ; // 一直横扫,直到全死 //while (true) //{ // if (!ObjectManager.MyPlayer.HasBuff(MyBadBuff)) // { // if (BarMapper.IsSpellReadyByName("生存本能")) { BarMapper.CastSpell("生存本能"); } // if (ObjectManager.MyPlayer.IsDead) return; // break; // } //} //while (true) //{ // if (!ObjectManager.MyPlayer.HasBuff(MyBadBuff)) // { // if (BarMapper.IsSpellReadyByName("狂暴")) { BarMapper.CastSpell("狂暴"); } // if (ObjectManager.MyPlayer.IsDead) return; // break; // } //} KeyLowHelper.PressKey(MicrosoftVirtualKeys.LeftShift); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key1); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key1); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.LeftShift); Thread.Sleep(10); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key4); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key4); Thread.Sleep(10); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key5); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key5); //while (BarMapper.IsSpellReadyByName("狂暴")) { BarMapper.CastSpell("狂暴"); break; } // 加点血 while (ObjectManager.MyPlayer.Health < 30) { if (!ObjectManager.MyPlayer.HasBuff(MyBadBuff)) { if (BarMapper.IsSpellReadyByName("回春术")) { BarMapper.CastSpell("回春术"); break; } if (ObjectManager.MyPlayer.IsDead) { return; } } } while (ObjectManager.MyPlayer.Health < 30) { if (!ObjectManager.MyPlayer.HasBuff(MyBadBuff)) { if (BarMapper.IsSpellReadyByName("愈合")) { BarMapper.CastSpell("愈合"); break; } if (ObjectManager.MyPlayer.IsDead) { return; } } } while (!ObjectManager.MyPlayer.HasBuff("猎豹形态")) { if (!ObjectManager.MyPlayer.HasBuff(MyBadBuff)) { if (BarMapper.IsSpellReadyByName("猎豹形态")) { BarMapper.CastSpell("猎豹形态"); break; } if (ObjectManager.MyPlayer.IsDead) { return; } } } boss.Face(); while (true) { //ObjectManager.MyPlayer.IsInCombat Thread.Sleep(100); bool TargetME = false; PUnit emO = new PUnit(0); foreach (PUnit uu in ObjectManager.GetUnits) { if (uu.IsPlayer) { continue; } if (uu.Name.Equals(boss.Name)) { continue; } if (uu.TargetGUID.Equals(ObjectManager.MyPlayer.GUID)) { TargetME = true; emO = uu; break; } } if (!TargetME) { break; } emO.Face(); KeyLowHelper.PressKey(MicrosoftVirtualKeys.LeftShift); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key5); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key5); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.LeftShift); Thread.Sleep(10); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key2); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key2); Thread.Sleep(10); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key4); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key4); Thread.Sleep(10); KeyLowHelper.PressKey(MicrosoftVirtualKeys.LeftShift); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key2); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key2); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.LeftShift); Thread.Sleep(10); KeyLowHelper.PressKey(MicrosoftVirtualKeys.key5); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.key5); Thread.Sleep(10); //BarMapper.CastSpell("猛虎之怒"); //BarMapper.CastSpell("树皮术"); //BarMapper.CastSpell("横扫"); if (ObjectManager.MyPlayer.IsDead) { return; } } // 面对boss boss.Face(); // 召唤“打架赛车” KeyHelper.SendLuaOverChat("/use 蓝色打架赛车"); BarMapper.CastSpell("蓝色打架赛车"); Thread.Sleep(1000); PUnit djsc = new PUnit(0); bool FoundDJSC = false; while (!FoundDJSC) { foreach (PUnit uu in ObjectManager.GetUnits) { if (uu.Name.Contains("打架赛车")) { djsc = uu; FoundDJSC = true; } } if (ObjectManager.MyPlayer.IsDead) { return; } } Thread.Sleep(500); // 走到boss旁边,打架赛车Y不小于646 //while (djsc.Location.DistanceFromXY(boss.Location) > 6) string ddd = Convert.ToString(djsc.Location.Y); float PosY = djsc.Location.Y; while (PosY > 648 || PosY == 0) { KeyLowHelper.PressKey(MicrosoftVirtualKeys.Up); Thread.Sleep(100); PosY = djsc.Location.Y; ddd = ddd + Convert.ToString(PosY); if (ObjectManager.MyPlayer.IsDead) { return; } } KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.Up); Logging.Write(ddd); // 一直跳,直到boss消失 while (boss.Health > 0) { KeyLowHelper.PressKey(MicrosoftVirtualKeys.Space); Thread.Sleep(10); KeyLowHelper.ReleaseKey(MicrosoftVirtualKeys.Space); Thread.Sleep(500); if (ObjectManager.MyPlayer.IsDead) { return; } } while (ObjectManager.MyPlayer.IsInCombat) { } ; // 给自己加血 KeyHelper.SendLuaOverChat("/use 黄油面包卷"); Thread.Sleep(1000); while (ObjectManager.MyPlayer.HasBuff("进食") || ObjectManager.MyPlayer.Health < 100) { } ; while (ObjectManager.MyPlayer.Health < 100 && ObjectManager.MyPlayer.ManaPoints > 5590) { // 治疗之触 if (BarMapper.IsSpellReadyByName("治疗之触")) { BarMapper.CastSpell("治疗之触"); Thread.Sleep(100); } if (ObjectManager.MyPlayer.IsDead) { return; } } // 等待一段时间,直到boss重新出现 Thread.Sleep(1000); bool FoundBoss = false; while (!FoundBoss) { foreach (PUnit uu in ObjectManager.GetUnits) { if (uu.Name.Equals(BossName)) { FoundBoss = true; } } Thread.Sleep(200); if (ObjectManager.MyPlayer.IsDead) { return; } } // 猎豹形态 //BarMapper.CastSpell("猎豹形态"); //MessageBox.Show("OK"); // 每个小号跳一次 Process[] wcc = Process.GetProcessesByName("Wow"); foreach (Process proc in wcc) { KeyLowHelper.PressKey(proc.MainWindowHandle, MicrosoftVirtualKeys.Space); Thread.Sleep(10); KeyLowHelper.ReleaseKey(proc.MainWindowHandle, MicrosoftVirtualKeys.Space); Thread.Sleep(100); } while (ObjectManager.MyPlayer.Health < 100) { while (BarMapper.IsSpellReadyByName("生命之血")) { BarMapper.CastSpell("生命之血"); break; } if (ObjectManager.MyPlayer.ManaPoints > 5590) { // 治疗之触 if (BarMapper.IsSpellReadyByName("治疗之触")) { BarMapper.CastSpell("治疗之触"); Thread.Sleep(100); } } if (ObjectManager.MyPlayer.IsDead) { return; } } } }
public static List <AddToBehavior> Load() { var add = new List <AddToBehavior>(); //----------- Pull actions int spellId = 57330; string spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Pull, Spec.Normal, new Rule(spell, new ActionSpell(spell), 1))); spellId = 49576; // Death Grip spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Pull, Spec.Normal, new Rule(spell, new ActionSpell(spell), 2, new List <AbstractCondition> { new DistanceToTarget(ConditionEnum.MoreThan, 10) }))); spellId = 45477; // Icy Touch spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Pull, Spec.Normal, new Rule(spell, new ActionSpell(spell), 3))); string name = "Auto Attack"; add.Add(new AddToBehavior(name, Type.Pull, Spec.Normal, new Rule(name, new ActionSpell(name), 4))); //----------- Combat Actions spellId = 46584; // Raise Dead - For unholy spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree3, new Rule(spell, new ActionSpell(spell), 7, new List <AbstractCondition> { new PetCondition(PetConditionEnum.DoesNotHave) }))); spellId = 49016; // Unholy Frenzy - Unholy spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree3, new Rule(spell, new ActionSpell(spell), 1, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.MoreThan, 80), new CombatCountCondition( ConditionEnum.MoreThan, 1) }))); spellId = 49203; // Hungering Cold - Frost spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree2, new Rule(spell, new ActionSpell(spell), 4, new List <AbstractCondition> { new CombatCountCondition(ConditionEnum.MoreThan, 1) }))); spellId = 49222; // Bone Shield - Blood spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree1, new Rule(spell, new ActionSpell(spell), 2, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 75) }))); spellId = 55233; // Vampiric Blood - Blood spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree1, new Rule(spell, new ActionSpell(spell), 1, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 20) }))); spellId = 48982; // Rune Tap - Blood spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree1, new Rule(spell, new ActionSpell(spell), 3, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 75) }))); spellId = 49028; // Dancing Rune Weapon - Blood spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree1, new Rule(spell, new ActionSpell(spell), 4, new List <AbstractCondition> { new CombatCountCondition( ConditionEnum.MoreThan, 1) }))); spellId = 47568; // Empower Rune Weapon spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 5, new List <AbstractCondition> { new CombatCountCondition( ConditionEnum.MoreThan, 1), new RuneCondition( ConditionEnum.EqualTo, RuneEnum.Blood, 0), new RuneCondition( ConditionEnum.EqualTo, RuneEnum.Frost, 0), new RuneCondition( ConditionEnum.EqualTo, RuneEnum.Unholy, 0), } ))); spellId = 46584; // Raise Dead spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 6, new List <AbstractCondition> { new CombatCountCondition( ConditionEnum.MoreThan, 1), new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 40), }))); spellId = 48743; // Death Pact spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 8, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 22) }))); spellId = 42650; // Army of the Dead spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 8, new List <AbstractCondition> { new CombatCountCondition( ConditionEnum.MoreThan, 2), new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 30) }))); spellId = 48792; // Icebound Fortitude spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 9, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 40) }))); spellId = 57330; // Horn of Winter spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 10))); spellId = 47528; // Mind Freeze spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 11, new List <AbstractCondition> { new FunctionsCondition( ConditionTargetEnum.Target, FunctionsConditionEnum.Is, FunctionEnum.Casting) }))); spellId = 47476; // Strangulate spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 12, new List <AbstractCondition> { new FunctionsCondition( ConditionTargetEnum.Target, FunctionsConditionEnum.Is, FunctionEnum.Casting) }))); spellId = 48707; // Anti-Magic Shell spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 13, new List <AbstractCondition> { new FunctionsCondition( ConditionTargetEnum.Target, FunctionsConditionEnum.Is, FunctionEnum.Casting) }))); spellId = 56815; // Rune Strike spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 14))); spellId = 49143; // Frost Strike - Frost Spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree2, new Rule(spell, new ActionSpell(spell), 15))); spellId = 47541; // Death Coil spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 14))); spellId = 49998; // Death Strike spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 15, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 55) }))); spellId = 49020; // Obliterate spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 16, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Target, BuffConditionEnum.HasBuff, BuffValueEnum.Name, "Blood Plague"), new BuffCondition( ConditionTargetEnum.Target, BuffConditionEnum.HasBuff, BuffValueEnum.Name, "Frost Fever"), }))); spellId = 85948; // Festering Strike spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 14))); spellId = 49184; // Howling Blast - Frost spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree2, new Rule(spell, new ActionSpell(spell), 15, new List <AbstractCondition> { new CombatCountCondition( ConditionEnum.MoreThan, 1), }))); spellId = 45477; // Icy Touch spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 16, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Target, BuffConditionEnum. DoesNotHave, BuffValueEnum.Name, "Frost Fever"), }))); spellId = 55090; // Scourge Strike - Unholy spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree3, new Rule(spell, new ActionSpell(spell), 17, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Target, BuffConditionEnum.HasBuff, BuffValueEnum.Name, "Blood Plague"), new BuffCondition( ConditionTargetEnum.Target, BuffConditionEnum.HasBuff, BuffValueEnum.Name, "Frost Fever"), }))); spellId = 45462; // Plague Strike spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 18, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Target, BuffConditionEnum. DoesNotHave, BuffValueEnum.Name, "Blood Plague"), }))); spellId = 55050; // Heart Strike - Blood spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree1, new Rule(spell, new ActionSpell(spell), 19))); spellId = 45902; // Blood Strike spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 14))); //----------- Buff Actions spellId = 48263; // Blood Presence spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special, new Rule(spell, new ActionSpell(spell), 1, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum.DoesNotHave, BuffValueEnum.Id, "48263"), }))); spellId = 48266; // Frost Presence spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special, new Rule(spell, new ActionSpell(spell), 1, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum.DoesNotHave, BuffValueEnum.Id, "48266"), }))); spellId = 48265; // Unholy Presence spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special, new Rule(spell, new ActionSpell(spell), 1, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum.DoesNotHave, BuffValueEnum.Id, "48265"), }))); return(add); }
/// <summary> /// Returns a BarSpell /// </summary> /// <returns></returns> public BarSpell GetKey() { return(BarMapper.GetSpellByName(SpellName)); }
/// <summary> /// Execute the actions. /// </summary> public virtual void Execute() { BarMapper.CastSpell(SpellName); }
private static void LoadFirstTime() { Langs.Load(); KeyHelper.LoadKeys(); BarMapper.MapBars(); }
public static List <AddToBehavior> Load() { var add = new List <AddToBehavior>(); // Pull actions1 int spellId = 31935; // Avenger's Shield - Prot spec string spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Pull, Spec.Tree2, new Rule(spell, new ActionSpell(spell), 1, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Target, ConditionTypeEnum.Health, ConditionEnum.MoreThan, 0) }))); spellId = 20271; // Judgement spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Pull, Spec.Normal, new Rule(spell, new ActionSpell(spell), 2, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Target, ConditionTypeEnum.Health, ConditionEnum.MoreThan, 0) }))); const string name = "Auto Attack"; add.Add(new AddToBehavior(name, Type.Pull, Spec.Normal, new Rule(name, new ActionSpell(name), 3, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Target, ConditionTypeEnum.Health, ConditionEnum.MoreThan, 0) }))); // Combat Actions spellId = 633; // Lay on Hands spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 1, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 10), new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum. DoesNotHave, BuffValueEnum.Id, "25771") }))); spellId = 642; // Divine Shield spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 2, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 15), new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum. DoesNotHave, BuffValueEnum.Id, "25771") }))); spellId = 31850; // Ardent Defender - Prot spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree2, new Rule(spell, new ActionSpell(spell), 3, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 10) }))); spellId = 1022; // Hand of Protection spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 4, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 15), new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum. DoesNotHave, BuffValueEnum.Id, "25771") }))); spellId = 498; // Divine Protection spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 5, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 85) }))); spellId = 853; // Hammer of Justice spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 6, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 35) }))); spellId = 19750; // Flash of Light spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 7, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 25) }))); spellId = 82326; // Divine Light spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 8, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 35) }))); spellId = 635; // Holy Light spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 9, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 50) }))); spellId = 85673; // Word of Glory spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 10, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 55), new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.HolyPower, ConditionEnum.MoreThan, 1) }))); spellId = 86150; // Guardian of Ancient Kings spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 11, new List <AbstractCondition> { new CombatCountCondition( ConditionEnum.MoreThan, 1) }))); spellId = 85285; // Rebuke - Ret spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree3, new Rule(spell, new ActionSpell(spell), 12, new List <AbstractCondition> { new FunctionsCondition( ConditionTargetEnum.Target, FunctionsConditionEnum.Is, FunctionEnum.Casting) }))); //TODO /* * spellId = 20066; // Repentance - Ret spec * spell = BarMapper.GetNameFromSpell(spellId); * core.setAction(actName, MyCC.ActionType.Spell, spellId.ToString(), MyCC.ActionMoment.Combat, MyCC.Unit.An_add, 0, true); * core.addCondition(actName, MyCC.Unit.Target, MyCC.ActionCond.Creature_Type, "=", "Demon", "", MyCC.ActionMoment.Combat); * core.addCondition(actName, MyCC.Unit.Target, MyCC.ActionCond.Creature_Type, "=", "Dragon", "", MyCC.ActionMoment.Combat); * core.addCondition(actName, MyCC.Unit.Target, MyCC.ActionCond.Creature_Type, "=", "Giant", "", MyCC.ActionMoment.Combat); * core.addCondition(actName, MyCC.Unit.Target, MyCC.ActionCond.Creature_Type, "=", "Humanoid", "", MyCC.ActionMoment.Combat); * core.addCondition(actName, MyCC.Unit.Target, MyCC.ActionCond.Creature_Type, "=", "Undead", "", MyCC.ActionMoment.Combat); * core.setConfig(actName, MyCC.ActionMoment.Combat, MyCC.Spec.Spec3, true); */ spellId = 31884; // Avenging Wrath spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 13, new List <AbstractCondition> { new CombatCountCondition( ConditionEnum.MoreThan, 1) }))); spellId = 85696; // Zealotry - Ret spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree3, new Rule(spell, new ActionSpell(spell), 14, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.HolyPower, ConditionEnum.EqualTo, 3) }))); spellId = 26573; // Consecration spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 15, new List <AbstractCondition> { new CombatCountCondition( ConditionEnum.MoreThan, 2) }))); spellId = 53600; // Shield of the Righteous - Prot spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree2, new Rule(spell, new ActionSpell(spell), 16, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.HolyPower, ConditionEnum.EqualTo, 3) }))); spellId = 84963; // Inquisition spell = BarMapper.GetNameFromSpell(spellId); //TODO /*core.setAction(actName, MyCC.ActionType.Spell, spellId.ToString(), MyCC.ActionMoment.Combat, MyCC.Unit.Target, 0, true); * core.addCondition(actName, MyCC.Unit.Player, MyCC.ActionCond.Holy_Power, "=", "3", "", MyCC.ActionMoment.Combat); * core.addCondition(actName, MyCC.Unit.Player, MyCC.ActionCond.Aura, "=", "90174", "", MyCC.ActionMoment.Combat); * core.addCondition(actName, MyCC.Unit.Player, MyCC.ActionCond.Aura_Seconds_left, "<", "4", "Inquisition", MyCC.ActionMoment.Combat, true); * core.setConfig(actName, MyCC.ActionMoment.Combat, MyCC.Spec.General, true); */ spellId = 24275; // Hammer of Wrath spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 17, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.Health, ConditionEnum.LessThan, 25) }))); spellId = 879; // Exorcism spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 18, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum.HasBuff, BuffValueEnum.Id, "59578") }))); spellId = 85256; // Templar's Verdict - Ret spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 19, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Player, ConditionTypeEnum.HolyPower, ConditionEnum.MoreThan, 2) }))); spellId = 53595; // Hammer of the Righteous - Prot spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree2, new Rule(spell, new ActionSpell(spell), 20, new List <AbstractCondition> { new CombatCountCondition( ConditionEnum.MoreThan, 1) }))); spellId = 35395; // Crusader Strike spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 21, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Target, ConditionTypeEnum.Health, ConditionEnum.MoreThan, 0) }))); spellId = 20271; // Judgement spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 22, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Target, ConditionTypeEnum.Health, ConditionEnum.MoreThan, 0) }))); spellId = 31935; // Avenger's Shield - Prot spec spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Tree2, new Rule(spell, new ActionSpell(spell), 23, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Target, ConditionTypeEnum.Health, ConditionEnum.MoreThan, 0) }))); spellId = 2812; // Holy Wrath spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Combat, Spec.Normal, new Rule(spell, new ActionSpell(spell), 24, new List <AbstractCondition> { new HealthPowerCondition( ConditionTargetEnum.Target, ConditionTypeEnum.Health, ConditionEnum.MoreThan, 0) }))); // Buff Actions spellId = 20154; // Seal of Righteousness spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special, new Rule(spell, new ActionSpell(spell), 1, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum.DoesNotHave, BuffValueEnum.Name, "Seal of Righteousness") }))); spellId = 20165; // Seal of Insight spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special, new Rule(spell, new ActionSpell(spell), 2, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum.DoesNotHave, BuffValueEnum.Name, "Seal of Insight") }))); spellId = 31801; // Seal of Truth spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special, new Rule(spell, new ActionSpell(spell), 3, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum.DoesNotHave, BuffValueEnum.Name, "Seal of Truth") }))); spellId = 465; // Devotion Aura spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special2, new Rule(spell, new ActionSpell(spell), 4, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum. DoesNotHave, BuffValueEnum.Name, "Devotion Aura") }))); spellId = 7294; // Retribution Aura spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special2, new Rule(spell, new ActionSpell(spell), 5, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum. DoesNotHave, BuffValueEnum.Name, "Retribution Aura") }))); spellId = 19746; // Concentration Aura spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special2, new Rule(spell, new ActionSpell(spell), 6, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum. DoesNotHave, BuffValueEnum.Name, "Concentration Aura") }))); spellId = 32223; // Crusader Aura spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special2, new Rule(spell, new ActionSpell(spell), 7, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum. DoesNotHave, BuffValueEnum.Name, "Crusader Aura") }))); spellId = 20217; // Blessing of Kings spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special3, new Rule(spell, new ActionSpell(spell), 8, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum. DoesNotHave, BuffValueEnum.Name, "Blessing of Kings") }))); spellId = 19740; // Blessing of Might spell = BarMapper.GetNameFromSpell(spellId); add.Add(new AddToBehavior(spell, Type.Buff, Spec.Special3, new Rule(spell, new ActionSpell(spell), 9, new List <AbstractCondition> { new BuffCondition( ConditionTargetEnum.Player, BuffConditionEnum. DoesNotHave, BuffValueEnum.Name, "Blessing of Might") }))); return(add); }