Ejemplo n.º 1
0
//Print specific Commercial Ship info
void Commercial::printInfo() const
{
	cout << "\n\n--------------------------------------------------------------------------------" << endl;
	cout << "Information about the commercial ship C" << to_string(getID())[1] << to_string(getID())[2] << " at the map point [" << getX() << "," << getY() << "] :" << endl;
	cout << "\tCurrent Endurance : " << getCurEndur() << endl;
	cout << "\tTreasure Reserve : " << getTreasFund() << endl;
	cout << "\tSpeed : " << getSpeed() << endl;
	cout << "\tPositions moved since the beginning : " << getMoves() << endl;
	cout << "\tTreasure gained from port visits  since the beginning : " << getTreasPort() << endl;
	cout << "\tDamage taken since the beginning : " << getDamageTaken() << endl;
	cout << "--------------------------------------------------------------------------------\n\n" << endl;
}
Ejemplo n.º 2
0
Archivo: being.cpp Proyecto: Ablu/mana
void Being::showName()
{
    delete mDispName;
    mDispName = 0;
    std::string mDisplayName(mName);

    Being* player =  static_cast<Being*>(this);
    if (player)
    {
        if (config.getBoolValue("showgender"))
        {
            if (getGender() == GENDER_FEMALE)
                mDisplayName += " \u2640";
            else if (getGender() == GENDER_MALE)
                mDisplayName += " \u2642";
        }

        // Display the IP when under tmw-Athena (GM only).
        if (Net::getNetworkType() == ServerInfo::TMWATHENA && local_player
        && local_player->getShowIp() && player->getIp())
        {
            mDisplayName += strprintf(" %s", ipToString(player->getIp()));
        }
    }

    if (getType() == MONSTER)
    {
        if (config.getBoolValue("showMonstersTakedDamage"))
        {
            mDisplayName += ", " + toString(getDamageTaken());
        }
    }

    gcn::Font *font = 0;
    if (local_player && local_player->getTarget() == this
        && getType() != MONSTER)
    {
        font = boldFont;
    }

    mDispName = new FlashText(mDisplayName, getPixelX(), getPixelY(),
                              gcn::Graphics::CENTER, mNameColor, font);

    updateCoords();
}
void ShieldDiceDragHandler::dragStarted(ActionDiceDragData* data,
                                        GameplayLayer* layer,
                                        DockableContainer* dockableContainer) {
  Vector<Node*> targetNodes;
  for (auto node : layer->getChildren()) {
    if (IS(node, ActionDiceSprite)) {
      auto diceSprite = (ActionDiceSprite*) node;
      auto dice = diceSprite->getDice();
      
      if (DiceUtil::isSwordDice(dice)) {
        targetNodes.pushBack(node);
      }
    }
  }
  
  auto game = Game::getInstance();
  if (game->getDamageTaken() > 0) {
    auto scene = (GameplayScene*) layer->getScene();
    auto dungeonLayer = scene->getDungeonLayer();
    
    auto character = game->getPlayer()->getCharacter();
    auto characterSprite = character->getSprite();
    
    auto position = characterSprite->getPosition() -
        Vec2(TILE_DIMENSION / 2, TILE_DIMENSION / 2) +
        characterSprite->getParent()->getPosition() +
        dungeonLayer->getParent()->getPosition();
    characterSprite->setPosition(position);
    
    characterSprite->retain();
    characterSprite->removeFromParent();
    layer->addChild(characterSprite);
    characterSprite->release();
    
    targetNodes.pushBack(characterSprite);
  }
  
  OverlayUtil::addOverlay(targetNodes, layer);
}
void ShieldDiceDragHandler::dragMoved(ActionDiceDragData* data,
                                      GameplayLayer* layer,
                                      DockableContainer* dockableContainer) {
  auto touch = data->getTouch();
  
  for (auto node : layer->getChildren()) {
    if (IS(node, ActionDiceSprite)) {
      auto diceSprite = (ActionDiceSprite*) node;
      auto dice = diceSprite->getDice();
      
      if (DiceUtil::isSwordDice(dice)) {
        HighlightUtil::highlighNode(node, touch);
      }
    }
  }
  
  auto game = Game::getInstance();
  if (game->getDamageTaken() > 0) {
    auto characterSprite = game->getPlayer()->getCharacter()->getSprite();
    HighlightUtil::highlighNode(characterSprite, touch);
  }
  
}
bool ShieldDiceDragHandler::dragEnded(ActionDiceDragData* data,
                                      GameplayLayer* layer,
                                      DockableContainer* dockableContainer) {
  auto docked = false;
  
  auto sprite = data->getSprite();
  auto touch = data->getTouch();
  
  for (auto node : layer->getChildren()) {
    if (IS(node, ActionDiceSprite)) {
      auto diceSprite = (ActionDiceSprite*) node;
      auto dice = diceSprite->getDice();
      
      if (DiceUtil::isSwordDice(dice)) {
        auto rect = node->getBoundingBox();
        
        if (rect.containsPoint(touch->getLocation())) {
          node->setColor(Color3B::WHITE);
          
          auto swordAndShield = DiceFace::create(IMG_DICE_ACTION_SWORD_AND_SHIELD);
          dice->setSelectedFace(swordAndShield, false);
          
          docked = true;
          break;
        }
      }
    }
  }
  
  auto game = Game::getInstance();
  if (game->getDamageTaken() > 0) {
    auto character = game->getPlayer()->getCharacter();
    auto characterSprite = character->getSprite();
    
    auto rect = characterSprite->getBoundingBox();
    if (rect.containsPoint(touch->getLocation())) {
      auto turn = game->getTurn();
      if (IS(turn, PlayerTurn)) {
        auto playerTurn = (PlayerTurn*) turn;
        playerTurn->protectDamage(1);
      }
      docked = true;
    }
    
    auto scene = (GameplayScene*) layer->getScene();
    auto dungeonLayer = scene->getDungeonLayer();
    
    auto dungeonRoom = dungeonLayer->getRoomSpriteForCharacterCoordinate();
    
    characterSprite->setLocalZOrder(CHARACTER_DICE_Z_ORDER);
    characterSprite->setColor(Color3B::WHITE);
    
    auto position = characterSprite->getPosition() +
        Vec2(TILE_DIMENSION / 2, TILE_DIMENSION / 2) -
        dungeonRoom->getPosition() -
        dungeonLayer->getParent()->getPosition();
    characterSprite->setPosition(position);
    
    characterSprite->retain();
    characterSprite->removeFromParent();
    dungeonRoom->addChild(characterSprite);
    characterSprite->release();
  }
  
  if (docked) {
    layer->dockActionDice(sprite);
  }
  
  return docked;
}