示例#1
0
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;
}