Core/GameObjects: Implement more gameobject gameevent uses

This commit is contained in:
Shauren
2022-06-18 19:08:44 +02:00
committed by Ovahlord
parent 2b7b0b0db1
commit 79aa6e2456
2 changed files with 10 additions and 0 deletions

View File

@@ -1643,6 +1643,8 @@ void GameObject::Use(Unit* user)
itr->second = player->GetGUID(); //this slot in now used by player
player->TeleportTo(GetMapId(), x_lowest, y_lowest, GetPositionZ(), GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT | TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET);
player->SetStandState(UNIT_STAND_STATE_SIT_LOW_CHAIR+info->chair.height);
if (info->chair.triggeredEvent)
GameEvents::Trigger(info->chair.triggeredEvent, player, this);
return;
}
}
@@ -2055,6 +2057,9 @@ void GameObject::Use(Unit* user)
bg->EventPlayerClickedOnFlag(player, this);
break;
}
if (info->flagdrop.eventID)
GameEvents::Trigger(info->flagdrop.eventID, player, this);
}
//this cause to call return, all flags must be deleted here!!
spellId = 0;
@@ -2321,6 +2326,10 @@ void GameObject::ModifyHealth(int32 change, Unit* attackerOrHealer /*= nullptr*/
player->SendDirectMessage(&data);
}
if (change < 0 && GetGOInfo()->building.damagedEvent)
GameEvents::Trigger(GetGOInfo()->building.damagedEvent, attackerOrHealer, this);
GameObjectDestructibleState newState = GetDestructibleState();
if (!m_goValue.Building.Health)

View File

@@ -583,6 +583,7 @@ struct GameObjectTemplate
{
case GAMEOBJECT_TYPE_GOOBER: return goober.eventId;
case GAMEOBJECT_TYPE_CHEST: return chest.eventId;
case GAMEOBJECT_TYPE_CHAIR: return chair.triggeredEvent;
case GAMEOBJECT_TYPE_CAMERA: return camera.eventID;
default: return 0;
}