Spawn the physical house structure GameObject when a player buys a plot,
using the DB2 PlotGameObjectID at the plot's HousePosition. Persist
player-chosen house positions to the database so they survive relogs.
Fix the SetHousePosition handler to actually store and apply the position
instead of being a no-op.
Spawn placed decor items as visible GameObjects with the FHousingDecor_C
entity fragment (InitHousingDecorData), following the cornerstone pattern.
Hook decor GO spawn/move/despawn into the Place/Move/Remove handlers so
furniture appears and updates in real time.
Fix outdoor decor budget enforcement: decor with roomGuid=0 now routes
to the exterior budget instead of always counting as interior.
Fix edit mode response wire format to match Fixture/Room pattern
(uint32 Result + Bit Active).
Set default _houseType to 32 (sniff-verified) instead of 0.
- Fix type effectiveness matrix (9/10 rows had wrong strong/weak, 0.67->0.66)
- Fix state machine enum to match client (add CREATED_FAILED, FINAL_ROUND)
- Add PetBattleEffectFlags (miss/crit/heal/immune/strong/weak) and populate them
- Add post-battle health sync back to journal with 50% auto-heal
- Add missing effect types (REPLACE_PET, OVERRIDE_ABILITY, WORLD_STATE_UPDATE)
- Implement GetTrapStatus() with full validation (species, health, journal)
- Add PetBattlePetStatusFlags and compute from pet state
- Add PetBattleInputFlags (ability/swap locked, waiting for pet)
- Add ability lockdown tracking alongside cooldowns
- Add critical hit system (5% base, 1.5x multiplier) via DamageResult struct
- Expand PetBattleRequestFailReason to 24 values matching client
- Add max game length warning (5 min before timeout)
- Implement NPC trainer battles (LoadNPCTeams from world DB, CreateNPCBattle,
InitNPCBattle, GenerateNPCTeamInput with enhanced AI)
- Add battle_pet_npc_team SQL schema
- Complete PvP flow: full validation, accept/decline, proper queue status codes
- Add PvP forfeit penalty (Pet Battle Deserter debuff)
- Add SMSG_BATTLE_PETS_HEALED and SMSG_BATTLE_PET_TRAP_LEVEL packets
- Register CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY handler
- Add boss pet handling (damage cap at 35% max HP, not capturable)
- Add aura state flags (JUST_APPLIED on creation, INFINITE for permanent)
- Add achievement criteria (WinPetBattle, LosePetBattle, capture)
Two fixes to enable Cornerstone click interaction:
1. Send SMSG_HOUSING_GET_CURRENT_HOUSE_INFO_RESPONSE proactively in
HousingMap::AddPlayerToMap() so the client can call
SetViewingNeighborhood() and populate its global housing context.
Without this, GetCornerstoneNeighborhoodInfo() returns empty data
and the Cornerstone purchase UI cannot display.
2. Add SQL migration for AreaTrigger entry 37358 (housing plot AT)
with ScriptName='at_housing_plot', Shape=Sphere, radius=40 yards.
Without this in the database, CreateStaticAreaTrigger() silently
fails and SMSG_NEIGHBORHOOD_PLAYER_ENTER_PLOT never fires.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
Adds exteriorLocked, houseSize, and houseType columns to existing
character_housing tables via ALTER TABLE (the schema file was updated
in the prior commit but existing databases need this migration).
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
Creature templates, spawns, models, gameobject templates, spawns,
gossip menus, vendor inventories, quest data, and trainer spells
for the Alliance housing neighborhood (The Aerie).
Column names adapted to current TrinityCore creature_template schema
(type/family/Classification, 64-bit npcflag).
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
EnchantGemDatabase now loads entirely from DB2 stores (SpellItemEnchantment,
GemProperties, ChrSpecialization) at startup, scoring each enchant/gem against
spec role and primary stat priorities. Removes all hardcoded SQL data and drops
the now-unnecessary playerbot_enchant_recommendations and
playerbot_gem_recommendations tables. Also replaces hardcoded skill IDs in
GuildTaskManager with SharedDefines enums.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>