示例#1
0
void  Bomb::DestructibleBox::EventTreatment()
{
  if (this->_events.size())
  {
    Event::DamageEvent  *dam = static_cast<Event::DamageEvent *>(this->_events.front());
    this->_events.pop_front();

    if (dam && dam->id == this->GetId())
    {
      LifeComponent *life = static_cast<LifeComponent *>(this->GetComponent(Life_c));
      if (life)
      {
        life->Damage(dam->damage);
        if (life->GetLife() <= 0)
          G_EvDispatcher->SendEvent(new Event::ScoreEvent(Event::KillTargetScoring, dam->sender, this->GetId()), Event::COMMON);
      }
    }
    delete dam;
  }
}