bool Projectile::handleMessage(const Telegram *telegram) { switch (telegram->message) { case kMessageReachPosition: reset(); return true; case kMessageCollide: BaseGameEntity *entity = GameModel::instance()->getEntityForID(telegram->sender); if (arc4random()%10 > 3) { return false; } if (entity->getEntityType() == kFighter && entity->getController() != m_eController) { MessageDispatcher::instance()->dispatchMessage(0, m_uID, entity->getID(), kMessageHit, (void *)&m_iDamage); reset(); return true; } return false; } return false; }