ArrowMaid::ArrowMaid(PaintStruct* paintStruct,QWidget *parent) : CardAndSkill(paintStruct,parent) { ask = false; dialog = new NewDialog(windowX); dialog->init(3);//贯穿射击,精准射击 for(int i = 0;i < 2;i++) { for(int j = 0;j < 2;j++) { if(i != j) { connect(dialog->skillGroup[i],SIGNAL(changeClicked()),dialog->skillGroup[j],SLOT(cancelX())); } } connect(this,SIGNAL(mouseClick(int,int)),dialog->skillGroup[i],SLOT(isThisClicked(int,int))); connect(dialog->skillGroup[i],SIGNAL(changeClicked()),ensure,SLOT(recoverClick())); connect(dialog->skillGroup[i],SIGNAL(notClicked()),ensure,SLOT(cancelClick())); } kiraTrap = new PicButton(62,362,559,100,42,false); snipe = new PicButton(64,465,559,100,42,false); connect(this,SIGNAL(mouseClick(int,int)),kiraTrap,SLOT(isThisClicked(int,int))); connect(this,SIGNAL(mouseClick(int,int)),snipe,SLOT(isThisClicked(int,int))); connect(kiraTrap,SIGNAL(changeClicked()),snipe,SLOT(cancelX())); connect(snipe,SIGNAL(changeClicked()),kiraTrap,SLOT(cancelX())); connect(kiraTrap,SIGNAL(changeClicked()),this,SLOT(kiraTrapRes())); connect(snipe,SIGNAL(changeClicked()),this,SLOT(snipeRes())); connect(kiraTrap,SIGNAL(notClicked()),this,SLOT(skillClear())); connect(snipe,SIGNAL(notClicked()),this,SLOT(skillClear())); }
void mouseMotion(int x, int y){ double oX, oY; recoverClick(x,y, oX, oY); if (valid_clicked){ clicked->move(oX, oY, -z_distance); } glutPostRedisplay(); }
void mouse(int button, int state, int x, int y) { double coordX, coordY; recoverClick(x,y, coordX, coordY); if (button == GLUT_LEFT_BUTTON) { // when left mouse button is down, move left if (state == GLUT_DOWN) { Graphics::show_splash_ = false; //glDeleteTextures(1, &Graphics::splash_); //Graphics::splash_loaded_ = false; if (Graphics::move_list_.size() > 0) { std::list<Moveable *>::iterator it; it = Graphics::move_list_.begin(); while (it != Graphics::move_list_.end()) { if ((*it)->check_clicked(coordX, coordY, -z_distance)){ // Found the right object under the cursor valid_clicked = true; clicked = *it; clicked->prepare_move(coordX, coordY, -z_distance); clicked->move(coordX, coordY, -z_distance); break; } ++it; } } } else { // Object is no longer clicked if (valid_clicked) clicked->unclicked(); valid_clicked = false; clicked = NULL; } } else if (button == GLUT_RIGHT_BUTTON) { // when right mouse button down, move right if (state == GLUT_DOWN) { if (Graphics::move_list_.size() > 0) { std::list<Moveable *>::iterator it; it = Graphics::move_list_.begin(); while (it != Graphics::move_list_.end()) { if ((*it)->check_clicked(coordX, coordY, -z_distance)){ (*it)->right_clicked(); break; } ++it; } } } } else { } glutPostRedisplay(); }
SwordMaster::SwordMaster(PaintStruct* paintStruct,QWidget *parent) : CardAndSkill(paintStruct,parent) { ask = false; dialog = new NewDialog(windowX); dialog->init(1);//连续技,疾风技,烈风技,剑影 for(int i = 0;i < 4;i++) { for(int j = 0;j < 4;j++) { if(i != j) { connect(dialog->skillGroup[i],SIGNAL(changeClicked()),dialog->skillGroup[j],SLOT(cancelX())); } } connect(this,SIGNAL(mouseClick(int,int)),dialog->skillGroup[i],SLOT(isThisClicked(int,int))); connect(dialog->skillGroup[i],SIGNAL(changeClicked()),ensure,SLOT(recoverClick())); connect(dialog->skillGroup[i],SIGNAL(notClicked()),ensure,SLOT(cancelClick())); } }
void ArrowMaid::changeSelfMode(int mode) { for(int i = 0;i < cardNum;i++) { for(int j = 0;j < cardNum;j++) { if(i != j) { connect(cardButton[i],SIGNAL(changeClicked()),cardButton[j],SLOT(cancelX())); } } for(int j = 0;j < 6;j++) { if(paintStructX->gameCharacter[5]->color != paintStructX->gameCharacter[j]->color) { connect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); connect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } } } for(int i = 0;i < 6;i++) { connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),ensure,SLOT(recoverClick())); connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(notClicked()),ensure,SLOT(cancelClick())); for(int j = 0;j < 6;j ++) { if(i != j) { connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelX())); } } } cancel->canBeClicked = true; switch(mode) { case 6://闪光陷阱响应阶段 { cancel->canBeClicked = false; //system("pause"); //system("pause"); for(int i = 0;i < cardNum;i++) { if(cardList->getSkillTwo(card[i]) == 31) { cardButton[i]->canBeClicked = true; } } //disconnect(ensure,SIGNAL(changeClicked()),this,SLOT(selfReset())); break; } case 4://贯穿射击响应阶段 { for(int i = 0;i < cardNum;i++) { if(cardList->getType(card[i]) == magic) { cardButton[i]->canBeClicked = true; connect(cardButton[i],SIGNAL(changeClicked()),ensure,SLOT(recoverClick())); connect(cardButton[i],SIGNAL(notClicked()),ensure,SLOT(cancelClick())); } } for(int i = 0;i < cardNum;i++) { for(int j = 0;j < 6;j++) { if(paintStructX->gameCharacter[5]->color != paintStructX->gameCharacter[j]->color) { disconnect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); disconnect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } } } break; } case 5://精准射击响应阶段 { emit resetSignal(); disconnect(ensure,SIGNAL(changeClicked()),this,SLOT(selfReset())); break; } case 7://狙击 { cancel->canBeClicked = false; for(int i = 0;i < 6;i++) { paintStructX->gameCharacter[i]->characterPic->canBeClicked = true; //disconnect(ensure,SIGNAL(changeClicked()),this,SLOT(selfReset())); } break; } } }
void PureMaid::changeSelfMode(int mode) { for(int i = 0;i < cardNum;i++) { for(int j = 0;j < cardNum;j++) { if(i != j) { connect(cardButton[i],SIGNAL(changeClicked()),cardButton[j],SLOT(cancelX())); } } for(int j = 0;j < 6;j++) { if(paintStructX->gameCharacter[5]->color != paintStructX->gameCharacter[j]->color) { connect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); connect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } } } for(int i = 0;i < 6;i++) { connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),ensure,SLOT(recoverClick())); connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(notClicked()),ensure,SLOT(cancelClick())); for(int j = 0;j < 6;j ++) { if(i != j) { connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelX())); } } } cancel->canBeClicked = true; switch(mode) { case 4://治疗术响应阶段 { cancel->canBeClicked = false; //system("pause"); //system("pause"); for(int i = 0;i < cardNum;i++) { if(cardList->getSkillOne(card[i]) == 61) { cardButton[i]->canBeClicked = true; } } for(int i = 0;i < cardNum;i++) { for(int j = 0;j < 6;j++) { if(paintStructX->gameCharacter[5]->color != paintStructX->gameCharacter[j]->color) { disconnect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); disconnect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } connect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); connect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } } //disconnect(ensure,SIGNAL(changeClicked()),this,SLOT(selfReset())); break; } case 5://治愈之光响应阶段 { cancel->canBeClicked = false; for(int i = 0;i < 6;i++) { disconnect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),ensure,SLOT(recoverClick())); disconnect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(notClicked()),ensure,SLOT(cancelClick())); for(int j = 0;j < 6;j ++) { if(i != j) { disconnect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelX())); } } } for(int i = 0;i < cardNum;i++) { if(cardList->getSkillOne(card[i]) == 62) { cardButton[i]->canBeClicked = true; } } for(int i = 0;i < 6;i++) { connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),this,SLOT(countPlus())); connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(notClicked()),this,SLOT(countMinus())); } for(int i = 0;i < cardNum;i++) { for(int j = 0;j < 6;j++) { if(paintStructX->gameCharacter[5]->color != paintStructX->gameCharacter[j]->color) { disconnect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); disconnect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } connect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); connect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } } break; } case 7://圣疗响应阶段 { //system("pause"); cancel->canBeClicked = false; for(int i = 0;i < 6;i++) { paintStructX->gameCharacter[i]->characterPic->canBeClicked = true; } connect(ensure,SIGNAL(changeClicked()),this,SLOT(pureCurePlus())); //system("pause"); disconnect(ensure,SIGNAL(changeClicked()),this,SLOT(reset())); frame = true; //system("pause"); break; } case 8://冰霜祷言响应阶段 { cancel->canBeClicked = false; for(int i = 0;i < 6;i++) { paintStructX->gameCharacter[i]->characterPic->canBeClicked = true; } break; } } }
void ElementMaster::changeSelfMode(int mode) { for(int i = 0;i < cardNum;i++) { for(int j = 0;j < cardNum;j++) { if(i != j) { connect(cardButton[i],SIGNAL(changeClicked()),cardButton[j],SLOT(cancelX())); } } for(int j = 0;j < 6;j++) { if(paintStructX->gameCharacter[5]->color != paintStructX->gameCharacter[j]->color) { connect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); connect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } } } for(int i = 0;i < 6;i++) { connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),ensure,SLOT(recoverClick())); connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(notClicked()),ensure,SLOT(cancelClick())); for(int j = 0;j < 6;j ++) { if(i != j) { connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelX())); } } } cancel->canBeClicked = true; switch(mode) { case 4://元素点燃响应阶段 { cancel->canBeClicked = false; for(int i = 0;i < 6;i++) { paintStructX->gameCharacter[i]->characterPic->canBeClicked = true; } break; } case 5://元素法术响应阶段 { cancel->canBeClicked = false; for(int i = 0;i < cardNum;i++) { if(cardList->getSkillTwo(card[i])/10 == 11) { cardButton[i]->canBeClicked = true; } } for(int i = 0;i < cardNum;i++) { for(int j = 0;j < cardNum;j++) { if(i != j) { disconnect(cardButton[i],SIGNAL(changeClicked()),cardButton[j],SLOT(cancelX())); } } connect(cardButton[i],SIGNAL(changeClicked()),this,SLOT(countPlus())); connect(cardButton[i],SIGNAL(notClicked()),this,SLOT(countMinus())); for(int j = 0;j < 6;j++) { if(paintStructX->gameCharacter[5]->color != paintStructX->gameCharacter[j]->color) { disconnect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); disconnect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } } } break; } case 6://月光响应阶段 { cancel->canBeClicked = false; for(int i = 0;i < 6;i++) { paintStructX->gameCharacter[i]->characterPic->canBeClicked = true; } break; } } }
void SwordMaster::changeSelfMode(int mode) { for(int i = 0;i < cardNum;i++) { for(int j = 0;j < cardNum;j++) { if(i != j) { connect(cardButton[i],SIGNAL(changeClicked()),cardButton[j],SLOT(cancelX())); } } for(int j = 0;j < 6;j++) { if(paintStructX->gameCharacter[5]->color != paintStructX->gameCharacter[j]->color) { connect(cardButton[i],SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(recoverClick())); connect(cardButton[i],SIGNAL(notClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelClick())); } } } for(int i = 0;i < 6;i++) { connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),ensure,SLOT(recoverClick())); connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(notClicked()),ensure,SLOT(cancelClick())); for(int j = 0;j < 6;j ++) { if(i != j) { connect(paintStructX->gameCharacter[i]->characterPic,SIGNAL(changeClicked()),paintStructX->gameCharacter[j]->characterPic,SLOT(cancelX())); } } } cancel->canBeClicked = true; switch(mode) { case 4://连续技能响应阶段 { for(int i = 0;i < cardNum;i++) { if(cardList->getName(card[i]) == windAttack) { cardButton[i]->canBeClicked = true; } } disconnect(ensure,SIGNAL(changeClicked()),this,SLOT(selfReset())); //system("pause"); break; } case 6://疾风技能响应阶段 case 7://剑影响应阶段 { for(int i = 0;i < cardNum;i++) { if(cardList->getType(card[i]) == attack) { cardButton[i]->canBeClicked = true; } } //system("pause"); disconnect(ensure,SIGNAL(changeClicked()),this,SLOT(selfReset())); break; } case 5://烈风技能响应阶段 { emit resetSignal(); disconnect(ensure,SIGNAL(changeClicked()),this,SLOT(selfReset())); break; } } }