using System; using System.Collections.Generic; using LavishScriptAPI; namespace MRBot.IsxEq2.Events { /// /// This contains Event Handlers and Raisers for all EQ2Events /// public class EQ2Event { #region Constructor/Deconstructor /// /// Constructor. Attaches all events. /// public EQ2Event() { Attach("EQ2_ActorSpawned", OnActorSpawned); Attach("EQ2_ActorDespawned", OnActorDespawned); Attach("EQ2_CastingStarted", OnCastingStarted); Attach("EQ2_CastingEnded", OnCastingEnded); Attach("EQ2_ActorPowerChange", OnActorPowerChange); Attach("EQ2_ActorHealthChange", OnActorHealthChange); Attach("EQ2_ActorStanceChange", OnActorStanceChange); Attach("EQ2_ActorTargetChange", OnActorTargetChange); Attach("EQ2_OnHOWindowStateChange", OnHOWindowStateChanged); Attach("EQ2_onQuestOffered", OnQuestOffered); Attach("EQ2_ReplyDialogAppeared", OnReplyDialogAppeared); Attach("EQ2_ExamineItemWindowAppeared", OnExamineItemWindowAppeared); Attach("EQ2_onLootWindowAppeared", OnLootWindowAppeared); Attach("EQ2_onInventoryUpdate", OnInventoryUpdate); Attach("EQ2_onQuestUpdate", OnQuestOffered); Attach("EQ2_FinishedZoning", OnFinishedZoning); Attach("EQ2_StartedZoning", OnStartedZoning); Attach("EQ2_ExamineAchievement", OnExamineAchievement); Attach("EQ2_onTellIgnored", OnTellIgnored); Attach("EQ2_onIncomingChatText", OnIncomingChatText); Attach("EQ2_onSendMailComplete", OnSendMailComplete); Attach("EQ2_onChoiceWindowAppeared", OnChoiceWindowAppeared); Attach("EQ2_onAnnouncement", OnAnnouncement); Attach("EQ2_onIncomingText", OnIncomingText); Attach("EQ2_onRewardWindowAppeared", OnRewardWindowAppeared); Attach("EQ2_onMeAfflicted", OnMeAfflicted); Attach("EQ2_onGroupMemberAfflicted", OnGroupMemberAfflicted); Attach("EQ2_onRaidMemberAfflicted", OnRaidMemberAfflicted); } /// /// Deconstructor. Detaches all events. /// ~EQ2Event() { Detach("EQ2_ActorSpawned", OnActorSpawned); Detach("EQ2_ActorDespawned", OnActorDespawned); Detach("EQ2_CastingStarted", OnCastingStarted); Detach("EQ2_CastingEnded", OnCastingEnded); Detach("EQ2_ActorPowerChange", OnActorPowerChange); Detach("EQ2_ActorHealthChange", OnActorHealthChange); Detach("EQ2_ActorStanceChange", OnActorStanceChange); Detach("EQ2_ActorTargetChange", OnActorTargetChange); Detach("EQ2_OnHOWindowStateChange", OnHOWindowStateChanged); Detach("EQ2_onQuestOffered", OnQuestOffered); Detach("EQ2_ReplyDialogAppeared", OnReplyDialogAppeared); Detach("EQ2_ExamineItemWindowAppeared", OnExamineItemWindowAppeared); Detach("EQ2_onLootWindowAppeared", OnLootWindowAppeared); Detach("EQ2_onInventoryUpdate", OnInventoryUpdate); Detach("EQ2_onQuestUpdate", OnQuestUpdate); Detach("EQ2_FinishedZoning", OnFinishedZoning); Detach("EQ2_StartedZoning", OnStartedZoning); Detach("EQ2_ExamineAchievement", OnExamineAchievement); Detach("EQ2_onTellIgnored", OnTellIgnored); Detach("EQ2_onIncomingChatText", OnIncomingChatText); Detach("EQ2_onSendMailComplete", OnSendMailComplete); Detach("EQ2_onChoiceWindowAppeared", OnChoiceWindowAppeared); Detach("EQ2_onAnnouncement", OnAnnouncement); Detach("EQ2_onIncomingText", OnIncomingText); Detach("EQ2_onRewardWindowAppeared", OnRewardWindowAppeared); Detach("EQ2_onMeAfflicted", OnMeAfflicted); Detach("EQ2_onGroupMemberAfflicted", OnGroupMemberAfflicted); Detach("EQ2_onRaidMemberAfflicted", OnRaidMemberAfflicted); } #endregion #region Event Handlers and Raisers #region EQ2_ActorSpawned /// /// EQ2_ActorSpawned Event Handler /// public event EventHandler ActorSpawned; /// /// EQ2_Actor Spawned Event Raiser /// /// sender /// arguments protected virtual void OnActorSpawned(object sender, LSEventArgs e) { var temp = ActorSpawned; if (temp != null) temp(sender, new ActorSpawnedEventArgs(e.Args)); } /// /// EQ2_ActorSpawned Event Args /// public class ActorSpawnedEventArgs : LSEventArgs { internal ActorSpawnedEventArgs(params string[] args) : base(args) { } /// /// Actor ID /// public int ID { get { return Convert.ToInt32(Args[0]); } } /// /// Actor Name /// public string Name { get { return Args[1]; } } /// /// Actor Level /// public int Level { get { return Convert.ToInt32(Args[2]); } } /// /// Actor Type /// public string Type { get { return Args[3]; } } } #endregion #region EQ2ActorDespawned /// /// EQ2_ActorDespawned Event Handler /// public event EventHandler ActorDespawned; /// /// EQ2_ActorDespawned Event Raiser /// /// sender /// arguments protected virtual void OnActorDespawned(object sender, LSEventArgs e) { var temp = ActorDespawned; if (temp != null) temp(sender, new ActorDespawnedEventArgs(e.Args)); } /// /// EQ2_ActorDespawned Event Args /// public class ActorDespawnedEventArgs : LSEventArgs { internal ActorDespawnedEventArgs(params string[] args) : base(args) { } /// /// Actor ID /// public int ID { get { return Convert.ToInt32(Args[0]); } } /// /// Name /// public string Name { get { return Args[1]; } } } #endregion #region EQ2_CastingStarted /// /// EQ2_CastingStarted Event Handler /// public event EventHandler CastingStarted; /// /// EQ2_CastingStarted Event Raiser /// /// sender /// arguments protected virtual void OnCastingStarted(object sender, LSEventArgs e) { var temp = CastingStarted; if (temp != null) temp(sender, e); } #endregion #region EQ2_CastingEnded /// /// EQ2_CastingEnded Event Handler /// public event EventHandler CastingEnded; /// /// EQ2_CastingEnded Event Raiser /// /// sender /// arguments protected virtual void OnCastingEnded(object sender, LSEventArgs e) { var temp = CastingEnded; if (temp != null) temp(sender, e); } #endregion #region EQ2_ActorPowerChange /// /// EQ2_ActorPowerChange Event Handler. Requires ISXEQ2.EnableActorEvents(). /// Disabled by default. /// public event EventHandler ActorPowerChange; /// /// EQ2_ActorPowerChange Event Raiser /// /// sender /// arguments protected virtual void OnActorPowerChange(object sender, LSEventArgs e) { var temp = ActorPowerChange; if (temp != null) temp(sender, new ActorPowerChangeEventArgs(e.Args)); } /// /// EQ2_ActorPowerChange Event Args /// public class ActorPowerChangeEventArgs : LSEventArgs { internal ActorPowerChangeEventArgs(params string[] args) : base(args) { } /// /// Actor ID /// public int ID { get { return Convert.ToInt32(Args[0]); } } /// /// Actor Name /// public string Name { get { return Args[1]; } } /// /// Actor Type /// public string Type { get { return Args[2]; } } /// /// Actor Old Power /// public int OldPower { get { return Convert.ToInt32(Args[3]); } } /// /// Actor New Power /// public int NewPower { get { return Convert.ToInt32(Args[4]); } } /// /// Distance to Actor /// public float Distance { get { return Convert.ToSingle(Args[5]); } } /// /// Returns TRUE if the actor is in the characters group /// public bool IsInGroup { get { return Convert.ToBoolean(Args[6]); } } /// /// Returns TRUE if the actor is in the characters raid /// public bool IsInRaid { get { return Convert.ToBoolean(Args[7]); } } } #endregion #region EQ2_ActorHealthChange /// /// EQ2_ActorHealthChange Event Handler. Requires ISXEQ2.EnableActorEvents(). /// Disabled by default. /// public event EventHandler ActorHealthChange; /// /// EQ2_ActorHealthChange Event Raiser /// /// sender /// arguments protected virtual void OnActorHealthChange(object sender, LSEventArgs e) { var temp = ActorHealthChange; if (temp != null) temp(sender, new ActorHealthChangeEventArgs(e.Args)); } /// /// EQ2_ActorHealthChange Event Args /// public class ActorHealthChangeEventArgs : LSEventArgs { internal ActorHealthChangeEventArgs(params string[] args) : base(args) { } /// /// Actor ID /// public int ID { get { return Convert.ToInt32(Args[0]); } } /// /// Actor Name /// public string Name { get { return Args[1]; } } /// /// Actor Type /// public string Type { get { return Args[2]; } } /// /// Actor Old Power /// public int OldHealth { get { return Convert.ToInt32(Args[3]); } } /// /// Actor New Power /// public int NewHealth { get { return Convert.ToInt32(Args[4]); } } /// /// Distance to Actor /// public float Distance { get { return Convert.ToSingle(Args[5]); } } /// /// Returns TRUE if the actor is in the characters group /// public bool IsInGroup { get { return Convert.ToBoolean(Args[6]); } } /// /// Returns TRUE if the actor is in the characters raid /// public bool IsInRaid { get { return Convert.ToBoolean(Args[7]); } } } #endregion #region EQ2_ActorStanceChange /// /// EQ2_ActorStanceChange Event Handler. Requires ISXEQ2.EnableActorEvents(). /// Disabled by default. /// public event EventHandler ActorStanceChange; /// /// EQ2_ActorStanceChange Event Raiser /// /// sender /// arguments protected virtual void OnActorStanceChange(object sender, LSEventArgs e) { var temp = ActorStanceChange; if (temp != null) temp(sender, new ActorStanceChangeEventArgs(e.Args)); } /// /// EQ2_ActorStanceChange Event Args /// public class ActorStanceChangeEventArgs : LSEventArgs { internal ActorStanceChangeEventArgs(params string[] args) : base(args) { } /// /// Actor ID /// public int ID { get { return Convert.ToInt32(Args[0]); } } /// /// Actor Name /// public string Name { get { return Args[1]; } } /// /// Actor Type /// public string Type { get { return Args[2]; } } /// /// Actor Old Stance (IN_COMBAT, AT_PEACE, DEAD) /// public int OldStance { get { return Convert.ToInt32(Args[3]); } } /// /// Actor New Power (IN_COMBAT, AT_PEACE, DEAD) /// public int NewStance { get { return Convert.ToInt32(Args[4]); } } /// /// Target ID /// public int TargetID { get { return Convert.ToInt32(Args[5]); } } /// /// Distance to Actor /// public float Distance { get { return Convert.ToSingle(Args[6]); } } /// /// Returns TRUE if the actor is in the characters group /// public bool IsInGroup { get { return Convert.ToBoolean(Args[7]); } } /// /// Returns TRUE if the actor is in the characters raid /// public bool IsInRaid { get { return Convert.ToBoolean(Args[8]); } } } #endregion #region EQ2_ActorTargetChange /// /// EQ2_ActorTargetChange Event Handler. Requires ISXEQ2.EnableActorEvents(). /// Disabled by default. /// public event EventHandler ActorTargetChange; /// /// EQ2_ActorTargetChange Event Raiser /// /// sender /// arguments protected virtual void OnActorTargetChange(object sender, LSEventArgs e) { var temp = ActorTargetChange; if (temp != null) temp(sender, new ActorTargetChangeEventArgs(e.Args)); } /// /// EQ2_ActorTargetChange Event Args /// public class ActorTargetChangeEventArgs : LSEventArgs { internal ActorTargetChangeEventArgs(params string[] args) : base(args) { } /// /// Actor ID /// public int ID { get { return Convert.ToInt32(Args[0]); } } /// /// Actor Name /// public string Name { get { return Args[1]; } } /// /// Actor Type /// public string Type { get { return Args[2]; } } /// /// Actor Old Power /// public int OldTargetID { get { return Convert.ToInt32(Args[3]); } } /// /// Actor New Power /// public int NewTargetID { get { return Convert.ToInt32(Args[4]); } } /// /// Distance to Actor /// public float Distance { get { return Convert.ToSingle(Args[5]); } } /// /// Returns TRUE if the actor is in the characters group /// public bool IsInGroup { get { return Convert.ToBoolean(Args[6]); } } /// /// Returns TRUE if the actor is in the characters raid /// public bool IsInRaid { get { return Convert.ToBoolean(Args[7]); } } } #endregion #region EQ2_OnHOWindowStateChanged /// /// EQ2_OnHOWindowStateChanged Event Handler /// public event EventHandler HOWindowStateChanged; /// /// EQ2_OnHOWindowStateChanged Event Raiser /// /// /// protected virtual void OnHOWindowStateChanged(object sender, LSEventArgs e) { var temp = HOWindowStateChanged; if (temp != null) temp(sender, e); } #endregion #region EQ2_ExamineAchievement /// /// EQ2_ExamineAchievement Event Handler /// public event EventHandler ExamineAchievement; /// /// EQ2_ExamineAchievement Event Raiser /// /// sender /// arguments protected virtual void OnExamineAchievement(object sender, LSEventArgs e) { var temp = ExamineAchievement; if (temp != null) temp(sender, e); } /// /// EQ2_ExamineAchievement Event Args /// public class ExamineAchievementEventArgs : LSEventArgs { internal ExamineAchievementEventArgs(params string[] args) : base(args) { } /// /// Achievement Type /// public string Type { get { return Args[0]; } } /// /// Achievement ID /// public string ID { get { return Args[1]; } } } #endregion #region EQ2_onQuestOffered /// /// EQ2_onQuestOffered Event Handler /// public event EventHandler QuestOffered; /// /// EQ2_onQuestOffered Event Raiser /// /// sender /// arguments protected virtual void OnQuestOffered(object sender, LSEventArgs e) { var temp = QuestOffered; if (temp != null) temp(sender, new QuestOfferedEventArgs(e.Args)); } /// /// Event Agruments for EQ2_onQuestOffered /// public class QuestOfferedEventArgs : LSEventArgs { internal QuestOfferedEventArgs(params string[] args) : base(args) { } /// /// Quest Name /// public string Name { get { return Args[0]; } } /// /// Quest Description /// public string Description { get { return Args[1]; } } /// /// Quest Level /// public int Level { get { return Convert.ToInt32(Args[2]); } } /// /// Status Reward /// public int Status { get { return Convert.ToInt32(Args[3]); } } } #endregion #region EQ2_ReplyDialogAppeared /// /// EQ2_ReplyDialogAppeared Event Handler /// public event EventHandler ReplyDialogAppeared; /// /// EQ2_ReplyDialogAppeared Event Raiser /// /// sender /// arguments protected virtual void OnReplyDialogAppeared(object sender, LSEventArgs e) { var temp = ReplyDialogAppeared; if(temp != null) temp(sender, new ReplyDialogAppearedEventArgs(e.Args)); } /// /// EQ2_ReplyDialogAppeared Event Args /// public class ReplyDialogAppearedEventArgs : LSEventArgs { internal ReplyDialogAppearedEventArgs(params string[] args) : base(args) { } /// /// Window ID /// public int WindowID { get { return Convert.ToInt32(Args[0]); } } } #endregion #region EQ2_ExamineItemWindowAppeared /// /// EQ2_ExamineItemWindowAppeared Event Handler /// public event EventHandler ExamineItemWindowAppeared; /// /// EQ2_ExamineItemWindowAppeared Event Raiser /// /// sender /// arguments protected virtual void OnExamineItemWindowAppeared(object sender, LSEventArgs e) { var temp = ExamineItemWindowAppeared; if(temp != null) temp(sender, new ExamineItemWindowAppearedEventArgs(e.Args)); } /// /// EQ2_ExamineItemWindowAppeared Event Args /// public class ExamineItemWindowAppearedEventArgs : LSEventArgs { internal ExamineItemWindowAppearedEventArgs(params string[] args) : base(args) { } /// /// Item Name /// public string ItemName { get { return Args[0]; } } /// /// Window ID /// public int WindowID { get { return Convert.ToInt32(Args[1]); } } } #endregion #region EQ2_onLootWindowAppeared /// /// EQ2_onLootWindowAppeared Event Handler /// public event EventHandler LootWindowAppeared; /// /// EQ2_onLootWindowAppeared Event Raiser /// /// sender /// arguments protected virtual void OnLootWindowAppeared(object sender, LSEventArgs e) { var temp = LootWindowAppeared; if (temp != null) temp(sender, new LootWindowAppearedArgs(e.Args)); } /// /// Event Arguments for EQ2_onLootWindowAppeared /// public class LootWindowAppearedArgs : LSEventArgs { internal LootWindowAppearedArgs(params string[] args) : base(args) { } /// /// Loot Window ID /// public int LootWindowID { get { return Convert.ToInt32(Args[0]); } } } #endregion #region EQ2_onInventoryUpdate /// /// EQ2_onInventoryUpdate Event Handler /// public event EventHandler InventoryUpdate; /// /// EQ2_onInventoryUpdate Event Raiser /// /// sender /// arguments protected virtual void OnInventoryUpdate(object sender, LSEventArgs e) { var temp = InventoryUpdate; if (temp != null) temp(sender, e); } #endregion #region EQ2_onQuestUpdate /// /// EQ2_onQuestUpdate Event Handler /// public event EventHandler QuestUpdate; /// /// EQ2_onQuestUpdate Event Raiser /// /// sender /// arguments protected virtual void OnQuestUpdate(object sender, LSEventArgs e) { var temp = QuestUpdate; if (temp != null) temp(sender, new QuestUpdateEventArgs(e.Args)); } /// /// Event Arguments for EQ2_onQuestUpdate /// public class QuestUpdateEventArgs : LSEventArgs { internal QuestUpdateEventArgs(params string[] args) : base(args) { } /// /// Quest ID /// public int QuestID { get { return Convert.ToInt32(Args[0]); } } /// /// Quest Name /// public string QuestName { get { return Args[1]; } } /// /// Quest Current Zone /// public string QuestCurrentZone { get { return Args[2]; } } /// /// Quest Category /// public string QuestCategory { get { return Args[3]; } } /// /// Quest Description /// public string QuestDescription { get { return Args[4]; } } /// TODO:Troubleshoot QuestUpdateEventArgs ProgressText /// /// Quest Progess Text /// public string[] QuestProgressText { get { var list = new List(); for (var i = 5; i < Args.Length; i++) { list.Add(Args[i]); } return list.ToArray(); } } } #endregion #region EQ2_FinishedZoning /// /// EQ2_FinishedZoning Event Handler /// public event EventHandler FinishedZoning; /// /// EQ2_FinishedZoning Event Raiser /// /// sender /// arguments protected virtual void OnFinishedZoning(object sender, LSEventArgs e) { var temp = FinishedZoning; if(temp != null) temp(sender, new FinishedZoningEventArgs(e.Args)); } /// /// EQ2_FinishedZoning Event Args /// public class FinishedZoningEventArgs : LSEventArgs { internal FinishedZoningEventArgs(params string[] args) : base(args) { } /// /// Returns a string of the time in seconds required to zone /// public float TimeInSeconds { get { return Convert.ToSingle(Args[0]); } } } #endregion #region EQ2_StartedZoning /// /// EQ2_StartedZoning Event Handler /// public event EventHandler StartedZoning; /// /// EQ2_StartedZoning Event Raiser /// /// sender /// arguments protected virtual void OnStartedZoning(object sender, LSEventArgs e) { var temp = StartedZoning; if (temp != null) temp(sender, e); } #endregion #region EQ2_onTellIgnored /// /// EQ2_onTellIgnored Event Handler /// public event EventHandler TellIgnored; /// /// EQ2_onTellIgnored Event Raiser /// /// /// protected internal void OnTellIgnored(object sender, LSEventArgs e) { var temp = TellIgnored; if(temp != null) temp(sender, new TellIgnoredEventArgs(e.Args)); } /// /// EQ2_onTellIgnored Event Args /// public class TellIgnoredEventArgs : LSEventArgs { internal TellIgnoredEventArgs(params string[] args) : base(args) { } /// /// Message /// public string Message { get { return Args[0]; } } /// /// Speaker /// public string Speaker { get { return Args[1]; } } } #endregion #region EQ2_onIncomingChatText /// /// EQ2_onIncomingChatText Event Handler /// public event EventHandler IncomingChatText; /// /// EQ2_onIncomingChatText Event Raiser /// /// sender /// arguments protected virtual void OnIncomingChatText(object sender, LSEventArgs e) { var temp = IncomingChatText; if(temp != null) temp(sender, new IncomingChatTextEventArgs(e.Args)); } /// /// EQ2_onIncomingChatText /// public class IncomingChatTextEventArgs : LSEventArgs { internal IncomingChatTextEventArgs(params string[] args) : base(args) { } /// /// Chat Type /// public int ChatType { get { return Convert.ToInt32(Args[0]); } } /// /// Message /// public string Message { get { return Args[1]; } } /// /// Speaker /// public string Speaker { get { return Args[2]; } } /// /// Target /// public string Target { get { return Args[3]; } } /// /// Returns TRUE if the speaker is an NPC /// public bool SpeakerIsNPC { get { return Convert.ToBoolean(Args[4]); } } /// /// Channel Name /// public string ChannelName { get { return Args[5]; } } /// /// Speaker ID /// public int SpeakerID { get { return Convert.ToInt32(Args[6]); } } /// /// Target ID /// public int TargetID { get { return Convert.ToInt32(Args[7]); } } } #endregion #region EQ2_onSendMailComplete /// /// EQ2_onSendMailComplete Event Handler /// public event EventHandler SendMailComplete; /// /// EQ2_onSendMailComplete Event Raiser /// /// sender /// arguments protected virtual void OnSendMailComplete(object sender, LSEventArgs e) { var temp = SendMailComplete; if (temp != null) temp(sender, e); } #endregion #region EQ2_onChoiceWindowAppeared /// /// EQ2_onChoiceWindowAppeared Event Handler /// public event EventHandler ChoiceWindowAppeared; /// /// EQ2_onChoiceWindowAppeared Event Raiser /// /// sender /// arguments protected virtual void OnChoiceWindowAppeared(object sender, LSEventArgs e) { var temp = ChoiceWindowAppeared; if (temp != null) temp(sender, e); } #endregion #region EQ2_onAnnouncement /// /// EQ2_onAnnouncement Event Handler /// public event EventHandler Announcement; /// /// EQ2_onAnnouncement Event Raiser /// /// sender /// arguments protected virtual void OnAnnouncement(object sender, LSEventArgs e) { var temp = Announcement; if (temp != null) temp(sender, new AnnouncementEventArgs(e.Args)); } /// /// EQ2_onAnnouncement Event Args /// public class AnnouncementEventArgs : LSEventArgs { internal AnnouncementEventArgs(params string[] args) : base(args) { } /// /// Announcement Text /// public string Text { get { return Args[0]; } } /// /// Sound Type /// public string SoundType { get { return Args[1]; } } } #endregion #region EQ2_onIncomingText /// /// EQ2_onIncomingText Event Handler /// public event EventHandler IncomingText; /// /// EQ2_onIncomingText Event Raiser /// /// sender /// arguments protected virtual void OnIncomingText(object sender, LSEventArgs e) { var temp = IncomingText; if(temp != null) temp(sender, new IncomingTextEventArgs(e.Args)); } /// /// EQ2_onIncomingText Event Args /// public class IncomingTextEventArgs : LSEventArgs { internal IncomingTextEventArgs(params string[] args) : base(args) { } /// /// Text /// public string Text { get { return Args[0]; } } } #endregion #region EQ2_onRewardWindowAppeared /// /// EQ2_onRewardWindowAppeared Event Handler /// public event EventHandler RewardWindowAppeared; /// /// EQ2_onRewardWindowAppeared Event Raiser /// /// sender /// arguments protected virtual void OnRewardWindowAppeared(object sender, LSEventArgs e) { var temp = RewardWindowAppeared; if (temp != null) temp(sender, e); } #endregion #region EQ2_onMeAfflicted /// /// EQ2_onMeAfflicted Event Handler /// public event EventHandler MeAfflicted; /// /// EQ2_onMeAfflicted Event Raiser /// /// sender /// arguments protected virtual void OnMeAfflicted(object sender, LSEventArgs e) { var temp = MeAfflicted; if (temp != null) temp(sender, new MeAfflictedEventArgs(e.Args)); } /// /// EQ2_onMeAfflicted Event Args /// public class MeAfflictedEventArgs : LSEventArgs { internal MeAfflictedEventArgs(params string[] args) : base(args) { } /// /// Trauma Counter /// public int TraumaCounter { get { return Convert.ToInt32(Args[0]); } } /// /// Arcane Counter /// public int ArcaneCounter { get { return Convert.ToInt32(Args[1]); } } /// /// Noxious Counter /// public int NoxiousCounter { get { return Convert.ToInt32(Args[2]); } } /// /// Elemental Counter /// public int ElementalCounter { get { return Convert.ToInt32(Args[3]); } } /// /// Curse Counter /// public int CurseCounter { get { return Convert.ToInt32(Args[4]); } } } #endregion #region EQ2_onGroupMemberAfflicted /// /// EQ2_onGroupMemberAfflicted Event Handler /// public event EventHandler GroupMemberAfflicted; /// /// EQ2_onGroupMemberAfflicted Event Raiser /// /// sender /// arguments protected virtual void OnGroupMemberAfflicted(object sender, LSEventArgs e) { var temp = GroupMemberAfflicted; if (temp != null) temp(sender, new MemberAfflictedEventArgs(e.Args)); } /// /// EQ2_onGroupMemberAfflicted and EQ2_onRaidMemberAfflicted Event Args /// public class MemberAfflictedEventArgs : LSEventArgs { internal MemberAfflictedEventArgs(params string[] args) : base(args) { } /// /// Afflicted Actor ID /// public int ActorID { get { return Convert.ToInt32(Args[0]); } } /// /// Trauma Counter /// public int TraumaCounter { get { return Convert.ToInt32(Args[1]); } } /// /// Arcane Counter /// public int ArcaneCounter { get { return Convert.ToInt32(Args[2]); } } /// /// Noxious Counter /// public int NoxiousCounter { get { return Convert.ToInt32(Args[3]); } } /// /// Elemental Counter /// public int ElementalCounter { get { return Convert.ToInt32(Args[4]); } } /// /// Curse Counter /// public int CurseCounter { get { return Convert.ToInt32(Args[5]); } } } #endregion #region EQ2_onRaidMemberAfflicted /// /// EQ2_onRaidMemberAfflicted Event Handler /// public event EventHandler RaidMemberAfflicted; /// /// EQ2_onRaidMemberAfflicted Event Raiser /// /// sender /// arguments protected virtual void OnRaidMemberAfflicted(object sender, LSEventArgs e) { var temp = RaidMemberAfflicted; if (temp != null) temp(sender, new MemberAfflictedEventArgs(e.Args)); } #endregion #endregion #region Methods /// /// Attaches the specified event to the specified handler. /// /// event to attach /// handler private static void Attach(string eventToAttach, EventHandler handler) { LavishScript.Events.AttachEventTarget(LavishScript.Events.RegisterEvent(eventToAttach), handler); } /// /// Detaches the specified event from the specified handler. /// /// event to detach /// handler private static void Detach(string eventToDetach, EventHandler handler) { LavishScript.Events.DetachEventTarget(LavishScript.Events.RegisterEvent(eventToDetach), handler); } #endregion } }