void UIShipData::update(HumanGameView* hgv) { // Adjust for prettiness setCharacterSize(static_cast<double>(hgv->getMapTileSize()) * 0.75); // Grab convenience pointer to ship const Ship* ship = hgv->getGameLogic()->getShip(); setRum(ship->getRum()); setGold(ship->getGold()); setSupply(ship->getMaxRum()); updateText(); }
bool UserCharacter::handleMessage(const Telegram& msg) { int damage = 0; //first see if the current goal accepts the message if (getBrain()->handleMessage(msg)) return true; //handle any messages not handles by the goals switch (msg.msg) { case MSG_GET_DAMAGED: if(isAlive()) { damage = dereferenceToType<int>(msg.extra_info); //the extra info field of the telegram carries the amount of damage // 아직 유저가 죽는것 안함. reduceHealth(dereferenceToType<int>(msg.extra_info)); AbstCharacter* attacker = (AbstCharacter*)EntityMgr.getEntityFromID(msg.sender); getSensoryMemory()->updateWithDamageSource(attacker, damage); //if this bot is now dead let the shooter know if (!isAlive()) { int gold_worth = getGoldWorth(); Dispatcher.dispatchMsg( SEND_MSG_IMMEDIATELY, getId(), msg.sender, MSG_GIVE_GOLD, (void*)&gold_worth); // 내 가치를 죽인애한테 gold로 준다. Dispatcher.dispatchMsg( SEND_MSG_IMMEDIATELY, getId(), msg.sender, MSG_YOU_GOT_ME, NULL); // 내 가치를 죽인애한테 gold로 준다. for (auto iter = std::begin(_game_world->getUserCharacters()); iter != std::end(_game_world->getUserCharacters()); iter++) { if (getTeam() != iter->second->getTeam()) { //int damage = _owner_skill->getDamage() + _shooter->getMDamage(); int exp = getExpWorth(); //send a message to the bot to let it know it's been hit, and who the //shot came from. Dispatcher.dispatchMsg( SEND_MSG_IMMEDIATELY, getId(), iter->second->getId(), MSG_GIVE_EXP, (void*)&exp); } } } // hit animation float noise_x = util::genRand(0, 30) - 15; float noise_y = util::genRand(0, 30) - 15; _game_world->getAnimationQ() .push(std::make_tuple("damage", _pos.x + noise_x, _pos.y + noise_y)); } return true; case MSG_GIVE_GOLD: setGold(getGold() + dereferenceToType<int>(msg.extra_info)); return true; case MSG_GIVE_EXP: setExp(getExp() + dereferenceToType<int>(msg.extra_info)); if (getExp() >= _level_up_need_exp) // level up { setLevel(getLevel() + 1); setExp(getExp() - _level_up_need_exp); levelUp(); } return true; case MSG_YOU_GOT_ME: // 내가 누굴 죽였다고 메시지를 받음 setScore(getScore() + 1); //the bot this bot has just killed should be removed as the target _target_system->clearTarget(); return true; case MSG_GUN_SHOT_SOUND: //add the source of this sound to the bot's percepts getSensoryMemory()->updateWithSoundSource((AbstCharacter*)msg.extra_info); return true; case MSG_USER_HAS_REMOVED_BOT: { AbstCharacter* pRemovedBot = (AbstCharacter*)msg.extra_info; getSensoryMemory()->removeBotFromMemory(pRemovedBot); //if the removed bot is the target, make sure the target is cleared if (pRemovedBot == getTargetSys()->getTarget()) { getTargetSys()->clearTarget(); } return true; } case MSG_GAME_OVER: GameServerManager::getInstance().sendAll( PacketFactory::getInstance().createPacketGameOver(_client_name, _team)); return true; default: return false; } }
UEditorWindow::UEditorWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::EditWindowClass), _confirmCloseMessageBox(0), _redoAction(0), _undoAction(0), _spaceNoteGeneration(false) { this->setFocusPolicy(Qt::StrongFocus); _startTime=0; _playViolon = false; _currentFile = NULL; _isPlaying=false; setAcceptDrops(true); USetting::Instance.init(); #ifdef QT_MODULE_NETWORK UCheckUpdate * check = new UCheckUpdate(QUrl(URL_VERSION)); connect(check,SIGNAL(connected()),this,SLOT(onConnected())); #endif setupAudio(); setupUi(); _currentFile = new UFile(this);// "songs/arkol - vingt ans/Arkol - vingt ans.txt"); fileConnect(); this->showSentenceWidget->setHScroll(0); connect(ui->vScroll,SIGNAL(valueChanged(int)),this,SLOT(onUpdateVScrollAndScale(int))); connect(ui->vSlider,SIGNAL(valueChanged(int)),this,SLOT(onUpdateVScrollAndScale(int))); connect(ui->vScroll,SIGNAL(sliderPressed()),this,SLOT(onUpdateVScrollAndScale())); connect(ui->vSlider,SIGNAL(sliderPressed()),this,SLOT(onUpdateVScrollAndScale())); //connect(ui->vScroll,SIGNAL(actionTriggered(int)),this,SLOT(changeVScroll(int))); connect(_hScroll,SIGNAL(valueChanged(int)),this,SLOT(changeHScroll(int))); //connect(ui->hSlider,SIGNAL(valueChanged(int)),this,SLOT(changeHSlider(int))); connect(_hScroll,SIGNAL(sliderPressed()),this,SLOT(changeHScroll())); //connect(ui->hSlider,SIGNAL(sliderPressed()),this,SLOT(changeHSlider())); connect(_hScroll,SIGNAL(pageStepChanged(int)),this,SLOT(changeHSlider(int))); connect(ui->actionOpen,SIGNAL(triggered()),this,SLOT(openFile())); connect(ui->actionEditHeaders,SIGNAL(triggered()),this,SLOT(editHeader())); connect(ui->actionApplyOffset,SIGNAL(triggered()),this,SLOT(openTiming())); connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(about())); connect(playAction, SIGNAL(triggered()), this, SLOT(tooglePlay())); connect(pauseAction, SIGNAL(triggered()), this, SLOT(tooglePlay())); connect(recordAction, SIGNAL(triggered()), this, SLOT(toggleRecord())); connect(showSentenceWidget,SIGNAL(haveToStop()), this, SLOT(tooglePlay())); connect(this->ui->offsetSpinBox, SIGNAL(valueChanged(int)), showSentenceWidget, SLOT(setPreviousDisplayed(int))); this->ui->offsetSpinBox->setValue(2); connect(ui->actionSetNormalNote,SIGNAL(triggered()),showSentenceWidget, SLOT(setNormal())); connect(ui->actionSetFreeNote,SIGNAL(triggered()),showSentenceWidget, SLOT(setFree())); connect(ui->actionSetGoldNote,SIGNAL(triggered()),showSentenceWidget, SLOT(setGold())); connect(ui->actionMergeNotes,SIGNAL(triggered()),showSentenceWidget, SLOT(fusion())); connect(ui->actionSplitNote,SIGNAL(triggered()),showSentenceWidget, SLOT(split())); connect(ui->actionAddNote,SIGNAL(triggered()),showSentenceWidget, SLOT(nextClickAddNote())); connect(ui->actionAddSeparator,SIGNAL(triggered()),showSentenceWidget, SLOT(nextClickAddSeparator())); connect(ui->actionSave,SIGNAL(triggered()),this,SLOT(save())); connect(ui->actionSaveAs,SIGNAL(triggered()),this,SLOT(saveAs())); connect(ui->actionNew,SIGNAL(triggered()),this,SLOT(newSong())); connect(ui->actionQuit,SIGNAL(triggered()),this,SLOT(close())); connect(&UInputManager::Instance,SIGNAL(spacePressEvent(void)),this,SLOT(tooglePlay())); connect(_wydget_timeline, SIGNAL(gapModified(double)),this, SLOT(gapModified(double))); connect(ui->actionDeleteNote,SIGNAL(triggered()),showSentenceWidget,SLOT(deleteNotes())); connect(ui->actionPreferences,SIGNAL(triggered()),&USetting::Instance,SLOT(showDialog())); connect(ui->actionMorphe,SIGNAL(triggered()),showSentenceWidget,SLOT(calquer())); connect(ui->actionLockTimings,SIGNAL(toggled(bool)),showSentenceWidget,SLOT(lockTime(bool))); connect(ui->actionCenter,SIGNAL(triggered()),this,SLOT(centerView())); connect(ui->actionHelp,SIGNAL(triggered()),this,SLOT(displayHelpScreen())); connect(ui->actionSendFeedback,SIGNAL(triggered()),this,SLOT(displayFeedback())); onUpdateVScrollAndScale(); changeHScroll(0); // _currentFile = new UFile(this); this->showSentenceWidget->setLyrics(_currentFile->lyrics); _wydget_lyrics->setWidgetWords(showSentenceWidget); _undoAction = _currentFile->lyrics->history().createUndoAction(this->ui->menuEdit, tr("Annuler ")); _undoAction->setShortcut(QKeySequence::Undo); _undoAction->setIcon(QIcon(":/images/undo.png")); this->ui->menuEdit->addAction(_undoAction); this->ui->toolBar->insertAction(this->ui->actionSetNormalNote, _undoAction); _redoAction = _currentFile->lyrics->history().createRedoAction(this->ui->menuEdit, tr("Refaire ")); _redoAction->setShortcut(QKeySequence::Redo); _redoAction->setIcon(QIcon(":/images/redo.png")); this->ui->menuEdit->addAction(_redoAction); this->ui->toolBar->insertAction(this->ui->actionSetNormalNote, _redoAction); readLastFile(); connect(ui->actionRecentFiles,SIGNAL(triggered()),this,SLOT(openLastFile())); readSettings(); _spaceNote = new Recorder(this->showSentenceWidget); _autoSaveTimer = new QTimer(this); connect(_autoSaveTimer, SIGNAL(timeout()), this, SLOT(autoSave())); adaptNewFile(); }