//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; }
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; }