Refactor and combat changes

This commit is contained in:
wincent
2024-06-02 09:53:56 +02:00
parent 0bf5ee02e4
commit d5b2278dc5
43 changed files with 27298 additions and 386 deletions

View File

@@ -38,6 +38,12 @@
#include "CDObjectSkillsTable.h"
#include "CDSkillBehaviorTable.h"
Observable<InventoryComponent*, Item*> InventoryComponent::OnItemCreated;
Observable<InventoryComponent*, Item*> InventoryComponent::OnItemDestroyed;
Observable<InventoryComponent*, Item*> InventoryComponent::OnItemEquipped;
Observable<InventoryComponent*, Item*> InventoryComponent::OnItemUnequipped;
Observable<InventoryComponent*, Item*> InventoryComponent::OnItemLoaded;
InventoryComponent::InventoryComponent(Entity* parent) : Component(parent) {
this->m_Dirty = true;
this->m_Equipped = {};
@@ -287,6 +293,8 @@ void InventoryComponent::AddItem(
}
auto* item = new Item(lot, inventory, slot, size, {}, parent, showFlyingLoot, isModMoveAndEquip, subKey, false, lootSourceType);
OnItemCreated(this, item);
isModMoveAndEquip = false;
}
@@ -571,6 +579,8 @@ void InventoryComponent::LoadXml(const tinyxml2::XMLDocument& document) {
}
itemElement = itemElement->NextSiblingElement();
OnItemLoaded(this, item);
}
bag = bag->NextSiblingElement();
@@ -849,6 +859,8 @@ void InventoryComponent::EquipItem(Item* item, const bool skipChecks) {
EquipScripts(item);
OnItemEquipped(this, item);
Game::entityManager->SerializeEntity(m_Parent);
}
@@ -879,6 +891,8 @@ void InventoryComponent::UnEquipItem(Item* item) {
UnequipScripts(item);
OnItemUnequipped(this, item);
Game::entityManager->SerializeEntity(m_Parent);
// Trigger property event