18#ifndef CreatureData_h__
19#define CreatureData_h__
27#include <unordered_map>
280 std::string ToString()
const;
354 uint32 GetRandomValidModelId()
const;
355 uint32 GetFirstValidModelId()
const;
356 uint32 GetFirstInvisibleModel()
const;
357 uint32 GetFirstVisibleModel()
const;
383 return canTameExotic || !IsExotic();
386 void InitializeQueryData();
523 m_items.emplace_back(item, maxcount, ptime, ExtendedCost);
static const uint32 MAX_CREATURE_QUEST_ITEMS
static const uint32 CREATURE_REGEN_INTERVAL
@ CREATURE_FLAG_EXTRA_NO_BLOCK
@ CREATURE_FLAG_EXTRA_DB_ALLOWED
@ CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS
@ CREATURE_FLAG_EXTRA_UNUSED_22
@ CREATURE_FLAG_EXTRA_UNUSED_27
@ CREATURE_FLAG_EXTRA_NO_CRIT
@ CREATURE_FLAG_EXTRA_DUNGEON_BOSS
@ CREATURE_FLAG_EXTRA_TRIGGER
@ CREATURE_FLAG_EXTRA_UNUSED
@ CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING
@ CREATURE_FLAG_EXTRA_CANNOT_ENTER_COMBAT
@ CREATURE_FLAG_EXTRA_UNUSED_31
@ CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN
@ CREATURE_FLAG_EXTRA_NO_XP
@ CREATURE_FLAG_EXTRA_UNUSED_25
@ CREATURE_FLAG_EXTRA_INSTANCE_BIND
@ CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS
@ CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE
@ CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK
@ CREATURE_FLAG_EXTRA_NO_PARRY
@ CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH
@ CREATURE_FLAG_EXTRA_NO_TAUNT
@ CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ
@ CREATURE_FLAG_EXTRA_GHOST_VISIBILITY
@ CREATURE_FLAG_EXTRA_NO_SELL_VENDOR
@ CREATURE_FLAG_EXTRA_NO_SKILL_GAINS
@ CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK
@ CREATURE_FLAG_EXTRA_UNUSED_23
@ CREATURE_FLAG_EXTRA_CIVILIAN
@ CREATURE_FLAG_EXTRA_UNUSED_24
@ CREATURE_FLAG_EXTRA_GUARD
@ CREATURE_FLAG_EXTRA_ALL_DIMINISH
@ CREATURE_FLAG_EXTRA_UNUSED_26
@ CREATURE_FLAG_EXTRA_WORLDEVENT
@ CREATURE_STATIC_FLAG_PVP_ENABLING
@ CREATURE_STATIC_FLAG_IGNORE_COMBAT
@ CREATURE_STATIC_FLAG_AQUATIC
@ CREATURE_STATIC_FLAG_NO_SPELL_DEFENSE
@ CREATURE_STATIC_FLAG_BOSS_MOB
@ CREATURE_STATIC_FLAG_ONLY_ATTACK_PVP_ENABLING
@ CREATURE_STATIC_FLAG_CAN_WIELD_LOOT
@ CREATURE_STATIC_FLAG_VISIBLE_TO_GHOSTS
@ CREATURE_STATIC_FLAG_MOUNTABLE
@ CREATURE_STATIC_FLAG_COMBAT_PING
@ CREATURE_STATIC_FLAG_CREATOR_LOOT
@ CREATURE_STATIC_FLAG_CALLS_GUARDS
@ CREATURE_STATIC_FLAG_UNINTERACTIBLE
@ CREATURE_STATIC_FLAG_CAN_SWIM
@ CREATURE_STATIC_FLAG_MORE_AUDIBLE
@ CREATURE_STATIC_FLAG_DESPAWN_INSTANTLY
@ CREATURE_STATIC_FLAG_NO_XP
@ CREATURE_STATIC_FLAG_TAMEABLE
@ CREATURE_STATIC_FLAG_IMMUNE_TO_NPC
@ CREATURE_STATIC_FLAG_NO_MELEE_FLEE
@ CREATURE_STATIC_FLAG_UNKILLABLE
@ CREATURE_STATIC_FLAG_IMMUNE_TO_PC
@ CREATURE_STATIC_FLAG_NO_DEFENSE
@ CREATURE_STATIC_FLAG_SESSILE
@ CREATURE_STATIC_FLAG_CORPSE_RAID
@ CREATURE_STATIC_FLAG_NO_AUTOMATIC_REGEN
@ CREATURE_STATIC_FLAG_LARGE_AOI
@ CREATURE_STATIC_FLAG_DO_NOT_PLAY_WOUND_ANIM
@ CREATURE_STATIC_FLAG_NO_LOOT
@ CREATURE_STATIC_FLAG_NO_FACTION_TOOLTIP
@ CREATURE_STATIC_FLAG_FLOATING
@ CREATURE_STATIC_FLAG_AMPHIBIOUS
CreatureFlightMovementType
CreatureChaseMovementType
CreatureGroundMovementType
static const uint8 MAX_KILL_CREDIT
@ CREATURE_STATIC_FLAG_4_HIDE_IN_COMBAT_LOG
@ CREATURE_STATIC_FLAG_4_OBEYS_TAUNT_DIMINISHING_RETURNS
@ CREATURE_STATIC_FLAG_4_TREAT_AS_PLAYER_FOR_DIMINISHING_RETURNS
@ CREATURE_STATIC_FLAG_4_TREAT_AS_PLAYER_FOR_PVP_DEBUFF_DURATION
@ CREATURE_STATIC_FLAG_4_FORCE_GOSSIP
@ CREATURE_STATIC_FLAG_4_DO_NOT_TARGET_ON_INTERACTION
@ CREATURE_STATIC_FLAG_4_FLAT_HONOR_AWARD
@ CREATURE_STATIC_FLAG_4_DO_NOT_RENDER_OBJECT_NAME
@ CREATURE_STATIC_FLAG_4_DEALS_TRIPLE_DAMAGE_TO_PC_CONTROLLED_PETS
@ CREATURE_STATIC_FLAG_4_CANNOT_DAZE
@ CREATURE_STATIC_FLAG_4_ONLY_GENERATE_INITIAL_THREAT
@ CREATURE_STATIC_FLAG_4_NO_BIRTH_ANIM
@ CREATURE_STATIC_FLAG_4_PREFER_NPCS_WHEN_SEARCHING_FOR_ENEMIES
@ CREATURE_STATIC_FLAG_4_DONT_REPOSITION_IF_MELEE_TARGET_IS_TOO_CLOSE
@ CREATURE_STATIC_FLAG_4_SUPPRESS_INSTANCE_WIDE_RELEASE_IN_COMBAT
@ CREATURE_STATIC_FLAG_4_DO_NOT_PLAY_UNIT_EVENT_SOUNDS
@ CREATURE_STATIC_FLAG_4_5_MINUTE_LOOT_ROLL_TIMER
@ CREATURE_STATIC_FLAG_4_GIVE_QUEST_KILL_CREDIT_WHILE_OFFLINE
@ CREATURE_STATIC_FLAG_4_PREVENT_SWIM
@ CREATURE_STATIC_FLAG_4_DONT_REPOSITION_WITH_FRIENDS_IN_COMBAT
@ CREATURE_STATIC_FLAG_4_PET_OR_GUARDIAN_AI_DONT_GO_BEHIND_TARGET
@ CREATURE_STATIC_FLAG_4_NO_MELEE_APPROACH
@ CREATURE_STATIC_FLAG_4_DO_NOT_SHEATHE
@ CREATURE_STATIC_FLAG_4_NO_NPC_DAMAGE_BELOW_85PTC
@ CREATURE_STATIC_FLAG_4_ALLOW_NPC_COMBAT_WHILE_UNINTERACTIBLE
@ CREATURE_STATIC_FLAG_4_IGNORE_LOS_WHEN_CASTING_ON_ME
@ CREATURE_STATIC_FLAG_4_IGNORE_SPELL_MIN_RANGE_RESTRICTIONS
@ CREATURE_STATIC_FLAG_4_HAS_NO_SHADOW_BLOB
@ CREATURE_STATIC_FLAG_4_TREAT_AS_RAID_UNIT_FOR_HELPFUL_SPELLS
@ CREATURE_STATIC_FLAG_4_INTERACT_ONLY_WITH_CREATOR
@ CREATURE_STATIC_FLAG_4_QUEST_BOSS
@ CREATURE_STATIC_FLAG_4_UPDATE_CREATURE_RECORD_WHEN_INSTANCE_CHANGES_DIFFICULTY
CreatureRandomMovementType
static const uint32 CREATURE_NOPATH_EVADE_TIME
@ CREATURE_STATIC_FLAG_3_FACTION_LEADER
@ CREATURE_STATIC_FLAG_3_FOREVER_CORPSE_DURATION
@ CREATURE_STATIC_FLAG_3_AI_CAN_AUTO_LAND_IN_COMBAT
@ CREATURE_STATIC_FLAG_3_CHECKS_LIQUIDS
@ CREATURE_STATIC_FLAG_3_EXTENDED_CORPSE_DURATION
@ CREATURE_STATIC_FLAG_3_CAN_BE_MULTITAPPED
@ CREATURE_STATIC_FLAG_3_SKIN_WITH_ENGINEERING
@ CREATURE_STATIC_FLAG_3_LINK_ALL
@ CREATURE_STATIC_FLAG_3_NO_DAMAGE_HISTORY
@ CREATURE_STATIC_FLAG_3_IMMUNE_TO_PLAYER_BUFFS
@ CREATURE_STATIC_FLAG_3_PETS_ATTACK_WITH_3D_PATHING
@ CREATURE_STATIC_FLAG_3_USE_MODEL_COLLISION_SIZE
@ CREATURE_STATIC_FLAG_3_SPELL_CLICK_FOR_PARTY_ONLY
@ CREATURE_STATIC_FLAG_3_ATTACKER_IGNORES_FACING
@ CREATURE_STATIC_FLAG_3_TAMEABLE_EXOTIC
@ CREATURE_STATIC_FLAG_3_NO_AGGRO_ON_LEASH
@ CREATURE_STATIC_FLAG_3_INFINITE_AOI
@ CREATURE_STATIC_FLAG_3_DO_NOT_PLAY_MOUNTED_ANIMATIONS
@ CREATURE_STATIC_FLAG_3_NO_FRIENDLY_AREA_AURAS
@ CREATURE_STATIC_FLAG_3_ENEMY_CHECK_IGNORES_LOS
@ CREATURE_STATIC_FLAG_3_ALLOW_INTERACTION_WHILE_IN_COMBAT
@ CREATURE_STATIC_FLAG_3_DO_NOT_FADE_IN
@ CREATURE_STATIC_FLAG_3_MASK_UID
@ CREATURE_STATIC_FLAG_3_NO_NAME_PLATE
@ CREATURE_STATIC_FLAG_3_CANNOT_TURN
@ CREATURE_STATIC_FLAG_3_CANNOT_PENETRATE_WATER
@ CREATURE_STATIC_FLAG_3_AI_CAN_AUTO_TAKEOFF_IN_COMBAT
@ CREATURE_STATIC_FLAG_3_CANNOT_SWIM
@ CREATURE_STATIC_FLAG_3_GIGANTIC_AOI
@ CREATURE_STATIC_FLAG_3_NO_THREAT_FEEDBACK
@ CREATURE_STATIC_FLAG_3_DONT_PVP_ENABLE_OWNER
@ CREATURE_STATIC_FLAG_3_COLLIDE_WITH_MISSILES
@ CREATURE_STATIC_FLAG_2_IGNORE_FEIGN_DEATH
@ CREATURE_STATIC_FLAG_2_ALERT_CONTENT_TEAM_AT_90PTC_HP
@ CREATURE_STATIC_FLAG_2_RETURN_SOUL_SHARD_TO_MASTER_OF_PET
@ CREATURE_STATIC_FLAG_2_DOES_NOT_REDUCE_REPUTATION_FOR_RAIDS
@ CREATURE_STATIC_FLAG_2_CAN_SAFE_FALL
@ CREATURE_STATIC_FLAG_2_PVP_ENABLING_OOC
@ CREATURE_STATIC_FLAG_2_ACTION_TRIGGERS_WHILE_CHARMED
@ CREATURE_STATIC_FLAG_2_IGNORE_SANCTUARY
@ CREATURE_STATIC_FLAG_2_NO_WOUNDED_SLOWDOWN
@ CREATURE_STATIC_FLAG_2_SKIN_WITH_MINING
@ CREATURE_STATIC_FLAG_2_SERVER_ONLY
@ CREATURE_STATIC_FLAG_2_HIDE_BODY
@ CREATURE_STATIC_FLAG_2_NO_INTERRUPT_SCHOOL_COOLDOWN
@ CREATURE_STATIC_FLAG_2_SPAWN_DEFENSIVE
@ CREATURE_STATIC_FLAG_2_USE_CREATOR_BONUSES
@ CREATURE_STATIC_FLAG_2_IGNORE_MISDIRECTION
@ CREATURE_STATIC_FLAG_2_FORCE_PARTY_MEMBERS_INTO_COMBAT
@ CREATURE_STATIC_FLAG_2_NO_SKILL_GAINS
@ CREATURE_STATIC_FLAG_2_ALERT_CONTENT_TEAM_ON_DEATH
@ CREATURE_STATIC_FLAG_2_ALLOW_MOUNTED_COMBAT
@ CREATURE_STATIC_FLAG_2_RAID_LOCK_ON_DEATH
@ CREATURE_STATIC_FLAG_2_INTERACT_WHILE_DEAD
@ CREATURE_STATIC_FLAG_2_NO_OWNER_THREAT
@ CREATURE_STATIC_FLAG_2_SKIN_WITH_HERBALISM
@ CREATURE_STATIC_FLAG_2_CAN_ASSIST
@ CREATURE_STATIC_FLAG_2_NO_PET_BAR
@ CREATURE_STATIC_FLAG_2_NO_CRUSHING_BLOWS
@ CREATURE_STATIC_FLAG_2_FULL_SPELL_LIST
@ CREATURE_STATIC_FLAG_2_IGNORE_PATHING_FAILURE
@ CREATURE_STATIC_FLAG_2_SPELL_ATTACKABLE
@ CREATURE_STATIC_FLAG_2_NO_DEATH_MESSAGE
@ CREATURE_STATIC_FLAG_2_NO_PET_SCALING
static const uint32 MAX_CREATURE_SPELLS
static const uint32 PET_FOCUS_REGEN_INTERVAL
static const uint32 MAX_CREATURE_MODELS
@ CREATURE_TYPE_FLAG_SKIN_WITH_ENGINEERING
@ CREATURE_TYPE_FLAG_SKIN_WITH_HERBALISM
@ CREATURE_TYPE_FLAG_TAMEABLE
@ CREATURE_TYPE_FLAG_TAMEABLE_EXOTIC
@ CREATURE_TYPE_FLAG_SKIN_WITH_MINING
#define MAX_EQUIPMENT_ITEMS
std::vector< uint32 > auras
VisibilityDistanceType visibilityDistanceType
float GenerateBaseDamage(CreatureTemplate const *info) const
uint32 GenerateMana(CreatureTemplate const *info) const
uint32 GenerateHealth(CreatureTemplate const *info) const
uint32 GenerateArmor(CreatureTemplate const *info) const
std::vector< std::string > Title
std::vector< std::string > Name
uint32 modelid_other_gender
bool IsGroundAllowed() const
CreatureRandomMovementType Random
bool IsSwimAllowed() const
CreatureFlightMovementType Flight
CreatureChaseMovementType GetChase() const
uint32 GetInteractionPauseTimer() const
bool IsFlightAllowed() const
CreatureChaseMovementType Chase
CreatureGroundMovementType Ground
uint32 InteractionPauseTimer
CreatureRandomMovementType GetRandom() const
SkillType GetRequiredLootSkill() const
uint32 MechanicImmuneMask
uint32 SpellSchoolImmuneMask
CreatureMovementData Movement
bool IsTameable(bool canTameExotic) const
std::vector< VendorItem > m_items
uint32 GetItemCount() const
VendorItem const * GetItem(uint32 slot) const
void AddItem(uint32 item, int32 maxcount, uint32 ptime, uint32 ExtendedCost)
VendorItem const * FindItemCostPair(uint32 item_id, uint32 extendedCost) const
bool RemoveItem(uint32 item_id)
bool IsGoldRequired(ItemTemplate const *pProto) const
VendorItem(uint32 _item, int32 _maxcount, uint32 _incrtime, uint32 _ExtendedCost)