コード例 #1
0
ファイル: interface.cpp プロジェクト: xabufr/monopoly
void Interface::liberer(GuiItem* g)
{
    Joueur *joueur = ((Interface*)g->GetData("this"))->m_plateau->getPlateau()->getJoueurTour();
    joueur->cartesLiberte().back()->utiliser();
}
コード例 #2
0
ファイル: interface.cpp プロジェクト: xabufr/monopoly
void Interface::update()
{
    int x, y;
    x=y=0;
    m_button_achat->SetVisible(false);
    m_button_hypothequer->SetVisible(false);
    m_button_deshypothequer->SetVisible(false);
    m_button_construire->SetVisible(false);
    m_button_detruire->SetVisible(false);
    m_button_liberer->SetVisible(false);
    m_button_caution->SetVisible(false);
    Joueur *joueur = m_plateau->getPlateau()->getJoueurTour();

	m_infoCase->SetText(joueur->nom()+" est sur : " + joueur->estSur()->nom()+"\n"+joueur->estSur()->description());

    if (dynamic_cast<CasePropriete*>(joueur->estSur()) && !((CasePropriete*)(joueur->estSur()))->estAchete()
        && joueur->argent() > ((CasePropriete*)(joueur->estSur()))->prixAchat())
        m_button_achat->SetVisible(true);

    if (joueur->estEnPrison() && joueur->cartesLiberte().size() != 0)
       m_button_liberer->SetVisible(true);

    if (joueur->estEnPrison() && joueur->getToursPrison() != 0)
        m_button_caution->SetVisible(true);

    for (CasePropriete *m_case : joueur->proprietes())
    {
        if (!m_case->estEnHypotheque())
            m_button_hypothequer->SetVisible(true);
        if (m_case->estEnHypotheque())
            m_button_deshypothequer->SetVisible(true);
        if (m_case->peutConstruire() && joueur->argent() > ((CasePropriete*)(joueur->estSur()))->prixAchat())
            m_button_construire->SetVisible(true);
        if (m_case->peutDetruire())
            m_button_detruire->SetVisible(true);
    }
	Carte* carte = joueur->lastCarte();
	joueur->setLastCarte(nullptr);

	if(carte && !dynamic_cast<Payer_ou_tirer*>(carte))
		m_lastInfos = joueur->nom()+":\nCarte " + carte->paquet()->nom() + "\n" + carte->description();

	if (dynamic_cast<Payer_ou_tirer*>(carte))
    {
        new MessageBox("Carte "+carte->paquet()->nom(), carte->description(), m_plateau->getPlateau(), dynamic_cast<Payer_ou_tirer*>(carte), m_button_des);
        m_button_des->SetVisible(false);
    }

    if (m_window_hypothequer && m_window_deshypothequer && m_window_construire && m_window_detruire)
    {
        if (m_window_hypothequer->IsVisible() || m_window_deshypothequer->IsVisible() || m_window_construire->IsVisible() || m_window_detruire->IsVisible())
            m_button_des->SetVisible(false);
    }
    else
        m_button_des->SetVisible(true);

    if (!m_window_hypothequer)
    {
        m_window_hypothequer = m_engine->GetGuiManager()->GetRootNode()->AddWindow();
        m_window_hypothequer->SetCharacterSizeTitle(22);
        m_window_hypothequer->SetWindowTitle("Hypotéquer");
        m_window_hypothequer->SetColorShape(sf::Color(255, 255, 255));
        m_window_hypothequer->SetColorOutlineShape(sf::Color(255, 0, 0));
        m_window_hypothequer->SetColorContener(sf::Color(255, 255, 255));
        m_window_hypothequer->SetColorOutlineContener(sf::Color(255, 0, 0));
        m_window_hypothequer->SetClosable(true);
        m_window_hypothequer->CloseItem()->SetData("this", this);
        m_window_hypothequer->CloseItem()->SetCallBack("onClosed", Interface::closeHypotheque);
        m_window_hypothequer->SetVisible(false);
    }

    if(!m_window_deshypothequer)
    {
        m_window_deshypothequer = m_engine->GetGuiManager()->GetRootNode()->AddWindow();
        m_window_deshypothequer->SetCharacterSizeTitle(22);
        m_window_deshypothequer->SetWindowTitle("Deshypothéquer");
        m_window_deshypothequer->SetColorShape(sf::Color(255, 255, 255));
        m_window_deshypothequer->SetColorOutlineShape(sf::Color(255, 0, 0));
        m_window_deshypothequer->SetColorContener(sf::Color(255, 255, 255));
        m_window_deshypothequer->SetColorOutlineContener(sf::Color(255, 0, 0));
        m_window_deshypothequer->SetClosable(true);
        m_window_deshypothequer->CloseItem()->SetData("this", this);
        m_window_deshypothequer->CloseItem()->SetCallBack("onClosed", Interface::closeDeshypotheque);
        m_window_deshypothequer->SetVisible(false);
    }

    if(!m_window_construire)
    {
        m_window_construire = m_engine->GetGuiManager()->GetRootNode()->AddWindow();
        m_window_construire->SetCharacterSizeTitle(22);
        m_window_construire->SetWindowTitle("Construire");
        m_window_construire->SetColorShape(sf::Color(255, 255, 255));
        m_window_construire->SetColorOutlineShape(sf::Color(255, 0, 0));
        m_window_construire->SetColorContener(sf::Color(255, 255, 255));
        m_window_construire->SetColorOutlineContener(sf::Color(255, 0, 0));
        m_window_construire->SetClosable(true);
        m_window_construire->CloseItem()->SetData("this", this);
        m_window_construire->CloseItem()->SetCallBack("onClosed", Interface::closeConstruire);
        m_window_construire->SetVisible(false);
    }

    if(!m_window_detruire)
    {
        m_window_detruire = m_engine->GetGuiManager()->GetRootNode()->AddWindow();
        m_window_detruire->SetCharacterSizeTitle(22);
        m_window_detruire->SetWindowTitle("Détruire");
        m_window_detruire->SetColorShape(sf::Color(255, 255, 255));
        m_window_detruire->SetColorOutlineShape(sf::Color(255, 0, 0));
        m_window_detruire->SetColorContener(sf::Color(255, 255, 255));
        m_window_detruire->SetColorOutlineContener(sf::Color(255, 0, 0));
        m_window_detruire->SetClosable(true);
        m_window_detruire->CloseItem()->SetData("this", this);
        m_window_detruire->CloseItem()->SetCallBack("onClosed", Interface::closeDetruire);
        m_window_detruire->SetVisible(false);
    }
	m_info->SetText(m_lastInfos);
}