SpellChainInfo.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using CommonAI.Zone.Instance;
  2. using CommonLang;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. namespace CommonAI.Zone.Helper
  8. {
  9. public class SpellChainLevelInfo
  10. {
  11. private int mSpellID;
  12. private int mChainLevel;
  13. private HashMap<uint, InstanceUnit> mChainList;
  14. private InstanceUnit mLastTarget;
  15. public int Level
  16. {
  17. get { return mChainLevel; }
  18. }
  19. public InstanceUnit LastTarget
  20. {
  21. get { return mLastTarget; }
  22. }
  23. internal SpellChainLevelInfo(LaunchSpell launch)
  24. {
  25. mSpellID = launch.SpellID;
  26. mChainLevel = launch.ChainLevel;
  27. mChainList = new HashMap<uint, InstanceUnit>(mChainLevel);
  28. }
  29. internal bool TryLaunch(int spellID)
  30. {
  31. if (spellID == mSpellID)
  32. {
  33. mChainLevel--;
  34. return (mChainLevel >= 0);
  35. }
  36. mSpellID = spellID;
  37. return true;
  38. }
  39. internal void AddTarget(InstanceUnit target)
  40. {
  41. mChainList.Put(target.ID, target);
  42. mLastTarget = target;
  43. }
  44. public bool ContainsTarget(InstanceUnit target)
  45. {
  46. return mChainList.ContainsKey(target.ID);
  47. }
  48. }
  49. }