All pastes #523466 Raw Edit

Unnamed

public text v1 · immutable
#523466 ·published 2007-05-30 20:07 UTC
rendered paste body
    public partial class PRModule : IPlugin // will obviously change
    {
        //my delcares
        bool NeedArcInt;
        bool NeedArmorSpell;
        bool NeedDampen;
        string WhichArmorSpell;
        string WhichManaGem;
        bool UseFireWard;
        bool UseFrostWard;
        public enum RoutineStates
        {
            CombatPrep,			//Speaks for itself
            Pulling,			//Speaks for itself
            Combat              //The actual killing
        }
        public enum CombatPrepStates		//apparently checking health is not needed
        {
            CheckingBuffs,			//I'm going to have this here anyway because of waltz's current buff implementation
            Buffing,			//May just make this part of the CheckingBuffs.
            CheckingManaGem,		//Speaks for itself
            PreCombatWards			//I'll implement it if I have to. Do any pre-combat fire/frost wards on fire/frost damage dealers
        }
        public enum PullingStates
        {
            Advancing,			//Get close if the mob wandered out of range for some reason. If it did, your pull range is probably too high
            Casting				//the actual pulling
        }
        public enum SingleTargetCombat
        {
            Nuking,				//our good 'ole spec-optimized nukes.
            PreFlee,			//Mana-shield, snares, etc, while running from mobs
            SwapToDoubleTargetCombat	//Escalate to doubletarget combat if a mob aggros, essentially just start the CC
        }
        public enum DoubleTargetCombat
        {
            Nuking,				//Will be same as singletarget nuking, because it's really the same
            CrowdControl,			//Snare mobs if possible, get away, sheep lower priority mob
            SwapToMultiTargetCobmat,	//Switch to multi target combat if needed, not sure how well it'd work mostly because there's a good chance you'll be lowhp with adds. Flee?
            PreFlee				//same as above
        }
        public enum MultiTargetCombat
        {
            AoENuking,			//Fancy blizzarding, blast waving, etc. should really be a frostie for this...
            EmergencyCrowdControl,		//snares and flares to get away if needed, probably be merged with preflee
            PreFlee				//same as above
        }
        public enum BuffStates			//kinda like sub-substates for buffing. It'll do my own downtime if I need to.
        {
            CheckMana,			//.....
            CheckBuffs,			//I repeat, .....
            CastBuffs			//Spec-optimized buffing.
        }
        private RoutineStates CombatPrep()
        {
            if (!Requiem.Character.IsInCombat && Requiem.Character.ManaPercent <= 75)
            {
                ManaUp();
            }
            
        }

        private CombatPrepStates CheckingBuffs()
        {
            if (!Requiem.Character.Buff("Arcane Intellect"))
            {
                NeedArcInt = true;
            }
            if (!Requiem.Character.Buff("Ice Armor") && !Requiem.Character.Buff("Frost Armor") && !Requiem.Character.Buff("Molten Armor"))
            {
                NeedArmorSpell = true;
                //
                //Here would be where we decide what armor I should use
                //unfortunately Requiem seems to be missing something for "do I have spell X"
                //
            }
            //here's where I'd check for whether or not we need dampen magic
            //problem is, I don't know how to check if target has a mana bar.
            //I'll have to eventually learn how to get the wowevents and filter through for "hits you for X fire damage"
            // and so on
        }
        private CombatPrepStates Buffing()
        {
            if (NeedArcInt)
            {
                Requiem.Character.Cast("Arcane Intellect", Requiem.Character.GUID);
            }
            if (NeedArmorSpell)
            {
                //Again, this is dependant on being able to decide which armor, which needs an "if spell exists"
            }
            if (NeedDampen)
            {
                Requiem.Character.Cast("Dampen Magaic", Requiem.Character.GUID);
            }
        }
        private CombatPrepStates CheckingManaGem()
        {
            if (WhichManaGem == null) //I'm seriously gonna have to grab the ISXWoW dll and use it
            {
                WhichManaGem = x;   //this really needs isxwow.dll
            }
        }
        private CombatPrepStates PreCombatWards()
        {
            if (UseFireWard)
            {
                Requiem.Character.Cast("Fire Ward", Requiem.Character.GUID);
            }
            if (UseFrostWard)
            {
                Requiem.Character.Cast("Frost Ward", Requiem.Character.GUID);
            }
        }
        private RoutineStates Pulling()
        {

        }
        private RoutineStates Combat()
        {

        }
        private void ManaUp()
        {
            if (!Requiem.Inventory.ItemCount(Requiem.Inventory.BestDrink) < 6)
            {
                Requiem.Character.Cast("Conjure Water");
                return;
            }
            Requiem.Inventory.Use(Requiem.Inventory.BestDrink);
        }
        // This function is called every frame.
        public void Pulse()
        {

        }

        // This function is executed when the plugin is loaded.
        public void OnLoad()
        {

        }

        // This function is executed when the plugin is unloaded.
        public void OnUnload()
        {

        }
    }