public static void HandleActivateUnitCast(WorldSession session, ClientActivateUnitCast unit) { WorldEntity entity = session.Player.GetVisible <WorldEntity>(unit.ActivateUnitId); if (entity == null) { throw new InvalidPacketValueException(); } // TODO: sanity check for range etc. entity.OnActivateCast(session.Player); }
public static void HandleActivateUnitCast(WorldSession session, ClientActivateUnitCast unit) { WorldEntity entity = session.Player.GetVisible <WorldEntity>(unit.ActivateUnitId); if (entity == null) { throw new InvalidPacketValueException(); } // TODO: sanity check for range etc. session.Player.QuestManager.ObjectiveUpdate(QuestObjectiveType.ActivateEntity, entity.CreatureId, 1u); entity.OnActivateCast(session.Player); }
public static void HandleActivateUnitCast(WorldSession session, ClientActivateUnitCast unit) { WorldEntity entity = session.Player.GetVisible <WorldEntity>(unit.ActivateUnitId); if (entity == null) { throw new InvalidPacketValueException(); } // TODO: sanity check for range etc. session.Player.QuestManager.ObjectiveUpdate(QuestObjectiveType.ActivateEntity, entity.CreatureId, 1u); foreach (uint targetGroupId in AssetManager.Instance.GetTargetGroupsForCreatureId(entity.CreatureId) ?? Enumerable.Empty <uint>()) { session.Player.QuestManager.ObjectiveUpdate(QuestObjectiveType.ActivateTargetGroup, targetGroupId, 1u); // Updates the objective, but seems to disable all the other targets. TODO: Investigate } entity.OnActivateCast(session.Player); }