void CStatusEffectContainer::CheckEffects(uint32 tick)
{
	DSP_DEBUG_BREAK_IF(m_POwner == nullptr);

	if (!m_POwner->isDead())
	{
		if ((tick - m_EffectCheckTime) < 1000 )
		{
			return;
		}

		m_EffectCheckTime = tick;

		for (uint16 i = 0; i < m_StatusEffectList.size(); ++i)
		{
			CStatusEffect* PStatusEffect = m_StatusEffectList.at(i);

			if (PStatusEffect->GetTickTime() != 0 &&
				PStatusEffect->GetLastTick() + PStatusEffect->GetTickTime() <= tick)
			{
				PStatusEffect->SetLastTick(tick);
				luautils::OnEffectTick(m_POwner,PStatusEffect);
			}

			if (PStatusEffect->GetDuration() != 0 &&
				PStatusEffect->GetDuration() + PStatusEffect->GetStartTime() <= tick && i <m_StatusEffectList.size())
			{
				RemoveStatusEffect(i--);
			}
		}
    }
}
void CStatusEffectContainer::CheckEffects(time_point tick)
{
    DSP_DEBUG_BREAK_IF(m_POwner == nullptr);

    if (!m_POwner->isDead())
    {
        if ((tick - m_EffectCheckTime) < 1s && (tick - m_EffectCheckTime > 0s))
        {
            return;
        }

        m_POwner->PAI->EventHandler.triggerListener("EFFECT_TICK", m_POwner);
        m_EffectCheckTime = tick;

        for (uint16 i = 0; i < m_StatusEffectList.size(); ++i)
        {
            CStatusEffect* PStatusEffect = m_StatusEffectList.at(i);

            if (PStatusEffect->GetTickTime() != 0 &&
                PStatusEffect->GetLastTick() + std::chrono::milliseconds(PStatusEffect->GetTickTime()) <= tick)
            {
                PStatusEffect->SetLastTick(tick);
                luautils::OnEffectTick(m_POwner, PStatusEffect);
            }

            if (PStatusEffect->GetDuration() != 0 &&
                std::chrono::milliseconds(PStatusEffect->GetDuration()) + PStatusEffect->GetStartTime() <= tick && i < m_StatusEffectList.size())
            {
                RemoveStatusEffect(i--);
            }
        }
    }
}