private bool needRune()
 {
     return(MyHelpers.spellCharges(RuneofPower.Name) > 0 &&
            (MyHelpers.haveBuff(MemoryofLucidDreams.Name) || (MyHelpers.GetSpellCooldown(Combustion.Name) > 10 && MyHelpers.spellCharges(FireBlast.Name) == 0)) &&
            !MyHelpers.haveBuff(RuneofPower.Name) &&
            !MyHelpers.haveBuff(Combustion.Name) &&
            RuneofPower.IsSpellUsable &&
            ObjectManager.Me.SpeedMoving == 0 &&
            (MyHelpers.haveBuff(MemoryofLucidDreams.Name)
             ||
             ((MyHelpers.spellCharges(RuneofPower.Name) == 2) ||
              (MyHelpers.spellCharges(RuneofPower.Name) == 1 &&
               MyHelpers.GetSpellCooldownCharges(RuneofPower.Name) + 10 < MyHelpers.GetSpellCooldown(Combustion.Name)))));
 }
    public void Damage()
    {
        if (Meteor.IsSpellUsable &&
            MyHelpers.haveBuff(RuneofPower.Name) &&
            (MyHelpers.haveBuffStack("Blaster Master") == 3 || (!MyHelpers.haveBuff(Combustion.Name) || MyHelpers.spellCharges(FireBlast.Name) == 0)) &&
            MyHelpers.getTargetDistance() <= 40.0f
            )
        {
            MyHelpers.castSpell(Meteor.Name);
            ClickOnTerrain.Pulse(ObjectManager.Target.Position);

            return;
        }
        if (MyHelpers.haveBuff("Hot Streak!") && !buffTime)
        {
            while (MyHelpers.haveBuff(Combustion.Name))
            {
                if (MyHelpers.haveBuff("Hot Streak!"))
                {
                    Pyroblast.Launch();
                    Thread.Sleep(200);

                    canBlast = true;
                    continue;
                }

                else if (!ObjectManager.Me.IsCast && MyHelpers.spellCharges(FireBlast.Name) > 0 && canBlast && !MyHelpers.haveBuff("Hot Streak!"))
                {
                    canBlast = false;
                    MyHelpers.castSpell(FireBlast.Name);
                    continue;
                }
                else if (MyHelpers.itemIsUsable("Hyperthread Wristwraps") && MyHelpers.spellCharges(FireBlast.Name) == 0)
                {
                    ItemsManager.UseItem(ItemsManager.GetIdByName("Hyperthread Wristwraps"));
                }
                else if (Meteor.IsSpellUsable && MyHelpers.spellCharges(FireBlast.Name) == 0)
                {
                    MyHelpers.castSpell(Meteor.Name);
                    ClickOnTerrain.Pulse(ObjectManager.Target.Position);
                    continue;
                }
                else if (!ObjectManager.Me.IsCast && doDecast && Counterspell.IsSpellUsable && MyHelpers.spellCharges(FireBlast.Name) == 0)
                {
                    MyHelpers.castSpell(Counterspell.Name);
                    continue;
                }
                else if (MyHelpers.spellCharges(FireBlast.Name) == 0 &&
                         MyHelpers.GetSpellCooldownCharges(FireBlast.Name) > MyHelpers.castTime(Scorch.Name) * 2 &&
                         !MyHelpers.haveBuff("Hot Streak!"))
                {
                    canBlast = false;
                    MyHelpers.castSpell(Scorch.Name);
                    while (ObjectManager.Me.IsCast)
                    {
                        Thread.Sleep(50);
                    }

                    continue;
                }
                canBlast = true;
            }
            if (MyHelpers.haveBuff("Hot Streak!"))
            {
                MyHelpers.castSpell(Pyroblast.Name);
            }
            return;
        }
        if (MyHelpers.spellCharges(FireBlast.Name) > 0 && !buffTime && MyHelpers.haveBuff("Heating Up") && !MyHelpers.haveBuff(Combustion.Name))
        {
            MyHelpers.castSpell(FireBlast.Name);
            return;
        }

        if (!ObjectManager.Me.IsCast && doDecast && Counterspell.IsSpellUsable && MyHelpers.spellCharges(FireBlast.Name) < 3 &&
            (MyHelpers.haveBuff(Combustion.Name) || MyHelpers.GetSpellCooldown(Combustion.Name) > 25))
        {
            MyHelpers.castSpell(Counterspell.Name);
            return;
        }


        if (!MyHelpers.haveBuff("Hot Streak!") &&
            Scorch.IsSpellUsable &&
            !buffTime &&
            ((ObjectManager.Me.SpeedMoving > 0 || ObjectManager.Target.HealthPercent < 0.3) ||
             (MyHelpers.haveBuff(Combustion.Name) &&
              MyHelpers.spellCharges(FireBlast.Name) == 0 &&
              MyHelpers.GetSpellCooldownCharges(FireBlast.Name) > MyHelpers.castTime(Scorch.Name))

            ))
        {
            MyHelpers.castSpell(Scorch.Name);

            return;
        }


        if (!MyHelpers.haveBuff("Hot Streak!") && !buffTime && !MyHelpers.haveBuff(Combustion.Name))
        {
            MyHelpers.castSpell(Fireball.Name);
            return;
        }
    }