#include "AmTemplateSkillVolume.h"
#include "MissionComponent.h"

void AmTemplateSkillVolume::OnSkillEventFired(Entity* self, Entity* caster, const std::string& message) 
{
    if (message != "NinjagoSpinAttackEvent")
    {
        return;
    }

    auto* missionComponent = caster->GetComponent<MissionComponent>();

    const auto missionIDsVariable = GeneralUtils::UTF16ToWTF8(self->GetVar<std::u16string>(u"missions"));
    const auto missionIDs = GeneralUtils::SplitString(missionIDsVariable, '_');

    for (const auto& missionIDStr : missionIDs)
    {
        int32_t missionID = 0;

        if (!GeneralUtils::TryParse(missionIDStr, missionID))
        {
            continue;
        }

        missionComponent->ForceProgressTaskType(missionID, 1, 1, false);
    }
}