#include "..\C-Engine\CHeader.hpp" #include "GUI.hpp" #include "iaghost1.hpp" void IA1::Start() { couldown=0; direction=0; directionuser=0; } void IA1::UpdateEverySecond() { if (couldown==5) { directionuser = rand_int(4) + 1; couldown=0; } couldown++; } void IA1::Initialisation(Script_GUI * v) { SGUI = v ; } void IA1::Update() { int hasard; if(SGUI->GetVulnerability() > 0)SetIt(1); else SetIt(0); //Intersection// if(!GetObject()->CollisionTag("Jail")) { if(!(!GetObject()->GetRigibody()->CollisionDecor(GetX(), GetY() + 1) && !GetObject()->GetRigibody()->CollisionDecor(GetX() , GetY() - 1) &&!GetObject()->GetRigibody()->CollisionDecor(GetX() + 1 , GetY()) && !GetObject()->GetRigibody()->CollisionDecor(GetX() - 1 , GetY()))) { switch(direction) { case 1: if(!GetObject()->GetRigibody()->CollisionDecor(GetX(), GetY() + 1) || !GetObject()->GetRigibody()->CollisionDecor(GetX() , GetY() - 1)) { hasard = rand_int(3) + 1; switch(hasard) { case 1: directionuser = 1;break; case 2: directionuser = 2;break; case 3: directionuser = 4;break; } } break; case 2: if(!GetObject()->GetRigibody()->CollisionDecor(GetX() + 1 , GetY()) || !GetObject()->GetRigibody()->CollisionDecor(GetX() - 1 , GetY())) { hasard = rand_int(3) + 1; switch(hasard) { case 1: directionuser = 2;break; case 2: directionuser = 1;break; case 3: directionuser = 3;break; } } break; case 3: if(!GetObject()->GetRigibody()->CollisionDecor(GetX(), GetY() + 1) || !GetObject()->GetRigibody()->CollisionDecor(GetX(), GetY() - 1)) { hasard = rand_int(3) + 1; switch(hasard) { case 1: directionuser = 3;break; case 2: directionuser = 2;break; case 3: directionuser = 4;break; } } break; case 4: if(!GetObject()->GetRigibody()->CollisionDecor(GetX() + 1 , GetY()) || !GetObject()->GetRigibody()->CollisionDecor(GetX() - 1 , GetY())) { hasard = rand_int(3) + 1; switch(hasard) { case 1: directionuser = 4;break; case 2: directionuser = 1;break; case 3: directionuser = 3;break; } } break; } } } else { if(GetObject()->GetRigibody()->CollisionDecor(GetX() , GetY()+1)) { Object * Jail = GetObject()->CollisionTagO("Jail"); if(Jail != NULL) { if(Jail->GetTransforms()->GetX() + 20 < GetX())directionuser = 4; else directionuser = 2; } } else directionuser = 1; } //***********Deplacement***********// if(!GetObject()->GetRigibody()->CollisionDecor( GetX() + (directionuser == 2) - (directionuser == 4) , GetY() + (directionuser == 1) - (directionuser == 3) ))direction = directionuser; switch(direction) { case 1: Move(0,1); break; case 2: Move(1,0); break; case 3: Move(0,-1); break; case 4: Move(-1,0); break; } //************// if(GetObject()->CollisionTag("TP1")) { GetObject()->GetTransforms()->SetXY(229,138); direction = 4; } if(GetObject()->CollisionTag("TP2")) { GetObject()->GetTransforms()->SetXY(2,138); direction = 2; } }