spriestdev
New Member
- Joined
- Sep 19, 2011
- Messages
- 236
- Reaction score
- 11
Hey all,
So I'm having a pretty curious problem here. I'm currently trying to split my CC to support Warlocks as well and running into some odd behavior. It starts and runs fine as a Warlock, however when I try to run it on my Priest I get a "given key is not present in dictionary" error calling a hard stop. I'm assuming this is a look-up against SpellManager.spell["some warlock spell"].
So I've traced this back to the Combat behavior composite here:
Now, I've stared at this code for quite some time and I'm pretty certain that my logic is correct. While debugging this, I've found that if I change AfflictionWarlock.Combat() on the final node there to Shadowpriest.Combat() then everything works and starts normally on my Priest.
I guess I'm just a bit confused on why it's making a call there at all because it should never get anywhere close to that.
Any help or words of wisdom would be greatly appreciated.
So I'm having a pretty curious problem here. I'm currently trying to split my CC to support Warlocks as well and running into some odd behavior. It starts and runs fine as a Warlock, however when I try to run it on my Priest I get a "given key is not present in dictionary" error calling a hard stop. I'm assuming this is a look-up against SpellManager.spell["some warlock spell"].
So I've traced this back to the Combat behavior composite here:
Code:
public static LocalPlayer Me { get { return StyxWoW.Me; } }
// The talent spec detection is basically copied and pasted from Singular.
public static Altarboy.TalentSpec ActiveSpec;
private static Composite CreateCombatBehaviour()
{
return new Switch<WoWClass>(ret => Me.Class,
new ActionAlwaysFail(),
new SwitchArgument<WoWClass>(WoWClass.Priest,
new Switch<TalentSpec>( ret => ActiveSpec,
new ActionAlwaysFail(),
new SwitchArgument<TalentSpec>(TalentSpec.DisciplinePriest,
DisciplinePriest.Combat()
),
new SwitchArgument<TalentSpec>(TalentSpec.DisciplineHealingPriest,
DisciplinePriest.Combat()
),
new SwitchArgument<TalentSpec>(TalentSpec.Lowbie,
LowLevelPriest.Combat()
),
new SwitchArgument<TalentSpec>(TalentSpec.ShadowPriest,
Shadowpriest.Combat()
)
)),
new SwitchArgument<WoWClass>(WoWClass.Warlock,
new Switch<TalentSpec>(ret => ActiveSpec,
new ActionAlwaysFail(),
new SwitchArgument<TalentSpec>(TalentSpec.AfflictionWarlock,
AfflictionWarlock.Combat()
)
))
);
}
Now, I've stared at this code for quite some time and I'm pretty certain that my logic is correct. While debugging this, I've found that if I change AfflictionWarlock.Combat() on the final node there to Shadowpriest.Combat() then everything works and starts normally on my Priest.
I guess I'm just a bit confused on why it's making a call there at all because it should never get anywhere close to that.
Any help or words of wisdom would be greatly appreciated.