AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
spell_hun_tame_beast Class Reference
Inheritance diagram for spell_hun_tame_beast:
SpellScript _SpellScript

Private Member Functions

 PrepareSpellScript (spell_hun_tame_beast)
 
SpellCastResult CheckCast ()
 
void Register () override
 

Additional Inherited Members

- Public Member Functions inherited from SpellScript
bool _Validate (SpellInfo const *entry) override
 
bool _Load (Spell *spell)
 
void _InitHit ()
 
bool _IsEffectPrevented (SpellEffIndex effIndex)
 
bool _IsDefaultEffectPrevented (SpellEffIndex effIndex)
 
void _PrepareScriptCall (SpellScriptHookType hookType)
 
void _FinishScriptCall ()
 
bool IsInCheckCastHook () const
 
bool IsInTargetHook () const
 
bool IsInHitPhase () const
 
bool IsInEffectHook () const
 
Unit * GetCaster ()
 
GameObject * GetGObjCaster ()
 
Unit * GetOriginalCaster ()
 
SpellInfo const * GetSpellInfo ()
 
SpellValue const * GetSpellValue ()
 
WorldLocation const * GetExplTargetDest ()
 
void SetExplTargetDest (WorldLocation &loc)
 
WorldObject * GetExplTargetWorldObject ()
 
Unit * GetExplTargetUnit ()
 
GameObject * GetExplTargetGObj ()
 
Item * GetExplTargetItem ()
 
Unit * GetHitUnit ()
 
Creature * GetHitCreature ()
 
Player * GetHitPlayer ()
 
Item * GetHitItem ()
 
GameObject * GetHitGObj ()
 
WorldLocation * GetHitDest ()
 
int32 GetHitDamage ()
 
void SetHitDamage (int32 damage)
 
void PreventHitDamage ()
 
int32 GetHitHeal ()
 
void SetHitHeal (int32 heal)
 
void PreventHitHeal ()
 
Spell * GetSpell ()
 
Aura * GetHitAura ()
 
void PreventHitAura ()
 
void PreventHitEffect (SpellEffIndex effIndex)
 
void PreventHitDefaultEffect (SpellEffIndex effIndex)
 
int32 GetEffectValue () const
 
void SetEffectValue (int32 value)
 
Item * GetCastItem ()
 
void CreateItem (uint32 effIndex, uint32 itemId)
 
SpellInfo const * GetTriggeringSpell ()
 
void FinishCast (SpellCastResult result)
 
void Cancel ()
 
void SetCustomCastResultMessage (SpellCustomErrors result)
 
- Public Member Functions inherited from _SpellScript
 _SpellScript ()
 
virtual ~_SpellScript ()
 
virtual void _Register ()
 
virtual void _Unload ()
 
virtual void _Init (std::string const *scriptname, uint32 spellId)
 
std::string const * _GetScriptName () const
 
virtual bool Validate (SpellInfo const *)
 
virtual bool Load ()
 
virtual void Unload ()
 
- Static Public Member Functions inherited from _SpellScript
static bool ValidateSpellInfo (std::initializer_list< uint32 > spellIds)
 
template<class T >
static bool ValidateSpellInfo (T const &spellIds)
 
- Public Attributes inherited from SpellScript
HookList< CastHandler > BeforeCast
 
HookList< CastHandler > OnCast
 
HookList< CastHandler > AfterCast
 
HookList< CheckCastHandler > OnCheckCast
 
HookList< EffectHandler > OnEffectLaunch
 
HookList< EffectHandler > OnEffectLaunchTarget
 
HookList< EffectHandler > OnEffectHit
 
HookList< EffectHandler > OnEffectHitTarget
 
HookList< BeforeHitHandler > BeforeHit
 
HookList< HitHandler > OnHit
 
HookList< HitHandler > AfterHit
 
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
 
HookList< ObjectTargetSelectHandler > OnObjectTargetSelect
 
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
 
- Protected Attributes inherited from _SpellScript
uint8 m_currentScriptState
 
std::string const * m_scriptName
 
uint32 m_scriptSpellId
 

Detailed Description

Member Function Documentation

◆ CheckCast()

SpellCastResult spell_hun_tame_beast::CheckCast ( )
inlineprivate
1008 {
1009 Unit* caster = GetCaster();
1010 if (!caster->IsPlayer())
1012
1013 Player* player = GetCaster()->ToPlayer();
1014
1015 if (!GetExplTargetUnit())
1016 {
1019 }
1020
1021 if (Creature* target = GetExplTargetUnit()->ToCreature())
1022 {
1023 if (target->GetLevel() > player->GetLevel())
1024 {
1027 }
1028
1029 if (target->GetCreatureTemplate()->IsExotic() && !player->CanTameExoticPets())
1030 {
1033 }
1034
1035 if (!target->GetCreatureTemplate()->IsTameable(player->CanTameExoticPets()))
1036 {
1039 }
1040
1041 PetStable const* petStable = player->GetPetStable();
1042 if (petStable)
1043 {
1044 if (petStable->CurrentPet)
1046
1047 if (petStable->GetUnslottedHunterPet())
1048 {
1051 }
1052 }
1053
1054 if (player->GetCharmGUID())
1055 {
1058 }
1059
1060 if (target->GetOwnerGUID())
1061 {
1064 }
1065 }
1066 else
1067 {
1070 }
1071
1072 return SPELL_CAST_OK;
1073 }
@ PET_TAME_NOT_TAMEABLE
Definition SharedDefines.h:3936
@ PET_TAME_INVALID_CREATURE
Definition SharedDefines.h:3933
@ PET_TAME_TOO_HIGHLEVEL
Definition SharedDefines.h:3941
@ PET_TAME_CREATURE_ALREADY_OWNED
Definition SharedDefines.h:3935
@ PET_TAME_CANT_CONTROL_EXOTIC
Definition SharedDefines.h:3944
@ PET_TAME_TOO_MANY
Definition SharedDefines.h:3934
@ PET_TAME_ANOTHER_SUMMON_ACTIVE
Definition SharedDefines.h:3937
@ SPELL_FAILED_ALREADY_HAVE_SUMMON
Definition SharedDefines.h:944
@ SPELL_FAILED_DONT_REPORT
Definition SharedDefines.h:964
@ SPELL_CAST_OK
Definition SharedDefines.h:1126
Definition Creature.h:47
bool IsPlayer() const
Definition Object.h:207
Player * ToPlayer()
Definition Object.h:208
Definition PetDefines.h:212
PetInfo const * GetUnslottedHunterPet() const
Definition PetDefines.h:240
Optional< PetInfo > CurrentPet
Definition PetDefines.h:235
Definition Player.h:1086
bool CanTameExoticPets() const
Definition Player.h:2220
PetStable * GetPetStable()
Definition Player.h:1226
Unit * GetExplTargetUnit()
Definition SpellScript.cpp:438
Unit * GetCaster()
Definition SpellScript.cpp:401
Definition Unit.h:665
void SendTameFailure(uint8 result)
Definition Unit.cpp:15592
ObjectGuid GetCharmGUID() const
Definition Unit.h:722
uint8 GetLevel() const
Definition Unit.h:1109

References Player::CanTameExoticPets(), PetStable::CurrentPet, SpellScript::GetCaster(), Unit::GetCharmGUID(), SpellScript::GetExplTargetUnit(), Unit::GetLevel(), Player::GetPetStable(), PetStable::GetUnslottedHunterPet(), Object::IsPlayer(), PET_TAME_ANOTHER_SUMMON_ACTIVE, PET_TAME_CANT_CONTROL_EXOTIC, PET_TAME_CREATURE_ALREADY_OWNED, PET_TAME_INVALID_CREATURE, PET_TAME_NOT_TAMEABLE, PET_TAME_TOO_HIGHLEVEL, PET_TAME_TOO_MANY, Unit::SendTameFailure(), SPELL_CAST_OK, SPELL_FAILED_ALREADY_HAVE_SUMMON, SPELL_FAILED_DONT_REPORT, and Object::ToPlayer().

Referenced by Register().

◆ PrepareSpellScript()

spell_hun_tame_beast::PrepareSpellScript ( spell_hun_tame_beast  )
private

◆ Register()

void spell_hun_tame_beast::Register ( )
inlineoverrideprivatevirtual

Implements _SpellScript.

1076 {
1078 }
#define SpellCheckCastFn(F)
Definition SpellScript.h:329
HookList< CheckCastHandler > OnCheckCast
Definition SpellScript.h:328
SpellCastResult CheckCast()
Definition spell_hunter.cpp:1007

References CheckCast(), SpellScript::OnCheckCast, and SpellCheckCastFn.


The documentation for this class was generated from the following file: