Exemple #1
0
void BasicEnemy::fire(std::list<Missile*>& missiles) {
    if (!mCanSee) return;
    if (mCooldown > 0) return;

    mCooldown = COOLDOWN;

    sf::Vector2f pos;
    Missile* missile;

    pos = getTransform().transformPoint(30, 80);
    missile = new Missile(getScreen(), this);
    missile->setPosition(pos);
    missile->setRotation(180+getRotation());
    missile->damage = DAMAGE;
    missiles.push_back(missile);

    pos = getTransform().transformPoint(70, 80);
    missile = new Missile(getScreen(), this);
    missile->setPosition(pos);
    missile->setRotation(180+getRotation());
    missile->damage = DAMAGE;
    missiles.push_back(missile);

    mSFX.play();
}
Missile* UnitFactory::createMissile( const char * filename,
                                     int faction,
                                     const string &modifications,
                                     const float damage,
                                     float phasedamage,
                                     float time,
                                     float radialeffect,
                                     float radmult,
                                     float detonation_radius, ObjSerial netcreate )
{
//  double startime= queryTime();
    Missile * un =new GameMissile( filename,
                        faction,
                        modifications,
                        damage,
                        phasedamage,
                        time,
                        radialeffect,
                        radmult,
                        detonation_radius );
	if( netcreate) {
		KillDuplicateUnits( netcreate);
		un->SetSerial( netcreate);
	}
	return un;
//  double endtime= queryTime();
//  printf ("mcr %f ",endtime-startime);
}
Exemple #3
0
bool Ship::FireMissile(int idx, Ship *target)
{
	assert(target);

	const Equip::Type t = m_equipment.Get(Equip::SLOT_MISSILE, idx);
	if (t == Equip::NONE) {
		return false;
	}

	m_equipment.Set(Equip::SLOT_MISSILE, idx, Equip::NONE);
	CalcStats();

	matrix4x4d m;
	GetRotMatrix(m);
	vector3d dir = m*vector3d(0,0,-1);
	
	ShipType::Type mtype;
	switch (t) {
		case Equip::MISSILE_SMART: mtype = ShipType::MISSILE_SMART; break;
		case Equip::MISSILE_NAVAL: mtype = ShipType::MISSILE_NAVAL; break;
		case Equip::MISSILE_UNGUIDED: mtype = ShipType::MISSILE_UNGUIDED; break;
		default:
		case Equip::MISSILE_GUIDED: mtype = ShipType::MISSILE_GUIDED; break;
	}
	Missile *missile = new Missile(mtype, this, target);
	missile->SetRotMatrix(m);
	missile->SetFrame(GetFrame());
	// XXX DODGY! need to put it in a sensible location
	missile->SetPosition(GetPosition()+50.0*dir);
	missile->SetVelocity(GetVelocity());
	Space::AddBody(missile);
	return true;
}
Missile* UnitFactory::createMissile( const char *filename,
                                     int faction,
                                     const string &modifications,
                                     const float damage,
                                     float phasedamage,
                                     float time,
                                     float radialeffect,
                                     float radmult,
                                     float detonation_radius,
                                     ObjSerial netcreate )
{
    _Universe->netLock( true );
    Missile *un = new Missile( filename,
                               faction,
                               modifications,
                               damage,
                               phasedamage,
                               time,
                               radialeffect,
                               radmult,
                               detonation_radius );
    _Universe->netLock( false );
    if (netcreate)
        un->SetSerial( netcreate );
/*
 *               if (!_Universe->netLocked()) {
 *                       NetBuffer netbuf;
 *                       addMissileBuffer( netbuf, un );
 *                       endBuffer( netbuf );
 *                       VSServer->broadcast( netbuf, 0, _Universe->activeStarSystem()->GetZone(), CMD_ENTERCLIENT, true);
 *               }
 *               VSServer->invalidateSnapshot();
 */
    return un;
}
Missile* UnitFactory::createMissile( const char *filename,
                                     int faction,
                                     const string &modifications,
                                     const float damage,
                                     float phasedamage,
                                     float time,
                                     float radialeffect,
                                     float radmult,
                                     float detonation_radius,
                                     ObjSerial netcreate )
{
    Missile *un = new GameMissile( filename,
                                   faction,
                                   modifications,
                                   damage,
                                   phasedamage,
                                   time,
                                   radialeffect,
                                   radmult,
                                   detonation_radius );
    if (netcreate) {
        KillDuplicateUnits( netcreate );
        un->SetSerial( netcreate );
    }
    return un;
}
Exemple #6
0
bool Ship::FireMissile(int idx, Ship *target)
{
	assert(target);

	if (GetFlightState() != FLYING) return false;

	const Equip::Type t = m_equipment.Get(Equip::SLOT_MISSILE, idx);
	if (t == Equip::NONE) {
		return false;
	}

	m_equipment.Set(Equip::SLOT_MISSILE, idx, Equip::NONE);
	UpdateEquipStats();

	ShipType::Id mtype;
	switch (t) {
		case Equip::MISSILE_SMART: mtype = ShipType::MISSILE_SMART; break;
		case Equip::MISSILE_NAVAL: mtype = ShipType::MISSILE_NAVAL; break;
		case Equip::MISSILE_UNGUIDED: mtype = ShipType::MISSILE_UNGUIDED; break;
		default:
		case Equip::MISSILE_GUIDED: mtype = ShipType::MISSILE_GUIDED; break;
	}
	Missile *missile = new Missile(mtype, this, target);
	missile->SetOrient(GetOrient());
	missile->SetFrame(GetFrame());
	// XXX DODGY! need to put it in a sensible location
	vector3d dir = -GetOrient().VectorZ();
	missile->SetPosition(GetPosition()+50.0*dir);
	missile->SetVelocity(GetVelocity());
	Pi::game->GetSpace()->AddBody(missile);
	return true;
}
// Get the next free missile of type 'missileType'
Missile* SimpleStoresMgr::getSpecificMissile(const base::String* const missileType)
{
   Missile* msl = nullptr;
   if (missileType != nullptr) {

      base::PairStream* list = getWeapons();
      if (list != nullptr) {

         // Find the first free (inactive) missile of type weaponType
         base::List::Item* item = list->getFirstItem();
         while (item != nullptr && msl == nullptr) {
            base::Pair* pair = static_cast<base::Pair*>(item->getValue());
            Missile* p = dynamic_cast<Missile*>(pair->object());
            if (p != nullptr && p->isInactive()) {
               // Ok, we have a missile, but is it the type we want?
               if (*p->getType() == *missileType) {
                  p->ref();
                  msl = p;
               }
            }
            item = item->getNext();
         }

         list->unref();
      }

   }
   return msl;
}
Exemple #8
0
void testApp::mouseReleased(int x, int y, int button){

	ofVec2f target = ofVec2f(x,y);

	if(state==START_SCREEN){

		ofRectangle startb = ofRectangle(START_BUTTON_POS);
		if( startb.inside(x, y)){
			currentLevel = 0;
			nextLevel();
			return;
		}else{

			lines[currentLine].push_back( ofVec2f(x ,y ));
		}
	}

	if(state==PLAYING){
		Silo * silo = bestSiloForTarget( target );

		if (silo != NULL){
			Missile *m = silo->launchMissile();
			if(m != NULL){
				launch.play();
				m->startGood( target );
				playerMissiles.push_back(m);
			}else{
				empty.play();
			}
		}else{
			empty.play();
		}
	}
}
Exemple #9
0
void testApp::nextLevel(){

	currentLevel++;
	startup.play();
	e.stopPostExplosionSmoke();
	state = PLAYING;
	levelTime = LEVEL_TIME;
	playerMissiles.clear();
	badMissiles.clear();
	
	for(int i = 0; i < NUM_BAD_MISSILES + 4 * currentLevel; i++){
		Missile *m = new Missile();
		m->startBad();
		badMissiles.push_back(m);
	}

	for(int i = 0; i < silos.size(); i++){
		silos[i]->revive();
		silos[i]->resetMissiles();
	}

	for(int i = 0; i < cities.size(); i++){
		cities[i].revive();
	}
}
Missile* GameObjectFactory::createMissile(Leukocyte* from, Leukocyte* to)
{
    Missile* missile = Missile::createWithFrom(from, to);
    missile->setPosition(from->getPosition());
    
    return missile;
}
void runTerrainDestructionDemo()
{
	isRunning = true;
	EngineInterface::createEngine("Data/Scripts/config.lua");
	EngineInterface::addRenderTask("renderSprites");
	EngineInterface::addUpdateTask("performFrustumCulling");
	EngineInterface::addGameLoopTask("updateTerrain",updateTerrain);

	EngineInterface::connectKeyboardAction(Escape,exitTerrainDestructionDemo);
	EngineInterface::connectMouseAction(LeftButton,fireMissile);

	FlightCamera* camera = new FlightCamera(Vector3D(0.0f,2000.0f,0.0f),Vector3D(0.0f,0.0f,-1.0f));
	EngineInterface::connectKeyboardAction(W,boost::bind(&FlightCamera::moveCameraForward,camera));
	EngineInterface::connectMouseMoveAction(boost::bind(&FlightCamera::changeViewTarget,camera,_1,_2));
	EngineInterface::addSceneCamera(camera);

	SceneEntity* terrain = new SceneEntity("Terrain","Terrain","Terrain");
	terrain->initializeSceneEntity();
	terrain->setEntityPosition(-128.0f*50.0f,0.0f,-128.0f*50.0f);
	EngineInterface::addIndependentToScene(terrain);

	SceneEntity* skyDome = new SceneEntity("Sky","SkyDome","SkyDome");
	skyDome->initializeSceneEntity();
	skyDome->setEntityOrientation(-90.0f,0.0f,0.0f);
	skyDome->setEntityScale(10000.0f,10000.0f,10000.0f);
	EngineInterface::addIndependentToScene(skyDome);
	
	SceneEntity* flight = new SceneEntity("F16","F16","F16");
	flight->initializeSceneEntity();
	flight->setEntityScale(0.1f,0.1f,0.1f);
	flight->setEntityPosition(0.0f,1600.0f,-10.0f);
	flight->setEntityOrientation(0.0f,180.0f,180.0f);
	flight->setFunctionUpdating(updateFlight);
	flight->entityPhysics.velocity.set(20.0f,20.0f,20.0f);
	flight->entityPhysics.isKinematic = true;
	EngineInterface::addEntityToScene(flight);
	
	Missile* missile = new Missile("Missile","Missile","Missile");
	missile->initializeSceneEntity();
	missile->setEntityScale(20.0f,20.0f,20.0f);
	missile->setExtendingUpdating();
	missile->entityPhysics.isKinematic = true;
	missile->entityPhysics.velocity.set(200.0f,200.0f,200.0f);
	EngineInterface::addEntityToScene(missile);
	
	EngineInterface::initializeFont("Font",32);
	EngineInterface::addSprite("AyumiLogo",Vector3D(-500.0f,-500.0f,0.0f),Vector3D(256.0f,47.0f,0.0f));
	EngineInterface::addSprite("Crosshair",Vector3D(0.0f,0.0f,0.0f),Vector3D(64.0f,64.0f,0.0f));

	EngineInterface::addDynamicActor(flight,BOX,CollisionFilter::AIRCRAFT,CollisionFilter::TERRAIN);
	EngineInterface::addDynamicActor(missile,BOX,CollisionFilter::MISSILE,CollisionFilter::TERRAIN);
	EngineInterface::addCollisionCallback("F16","Terrain",flightCollision);
	EngineInterface::addCollisionCallback("Missile","Terrain",missileCollision);
	destruction = EngineInterface::createDestructibleTerrain(terrain,"Data/Mesh/terrainDemo.raw",Vector4D(256.0,50.0,50.0,1500.0),CollisionFilter::TERRAIN,CollisionFilter::MISSILE | CollisionFilter::AIRCRAFT);

	EngineInterface::runGameLoop(&isRunning);
	EngineInterface::releaseDestructibleTerrain(destruction);
	EngineInterface::releaseEngine();	
}
bool MonsterDevil::onContactBegin(cocos2d::PhysicsContact& contact)
{
	auto bodyA = contact.getShapeA()->getBody();
	auto bodyB = contact.getShapeB()->getBody();
	auto componentA = (BaseComponent*)bodyA->getNode();
	auto componentB = (BaseComponent*)bodyB->getNode();
	BaseComponent* enemyComponent;
	bool isComponentA = true;


	//어떤것 끼리 부딪혔는지는 안가르쳐주기 때문에
	//여기서 어느쪽이 monsterDevil인지 밝혀낸다.
	if (componentA->getType() == getType())
	{
		enemyComponent = componentB;
		isComponentA = true;
	}
	else
	{
		enemyComponent = componentA;
		isComponentA = false;
	}


	//FLOOR 충돌 무시 
	if (enemyComponent->getType() == OT_FLOOR)
	{
		return false;
	}

	//미사일이랑 충돌 처리
	if (enemyComponent->getPhysicsBody()->getCategoryBitmask() == PHYC_MISSILE)
	{
		Missile* missile = static_cast<Missile*>(enemyComponent);

		//수류탄은 뎀 안 입음
		if (missile->getType() == OT_MISSILE_GRENADE)
		{
			return false;
		}

		//몹이 쏜 건 안 맞음.
		if (!missile->isPlayerMissile())
		{
			return false;
		}

		float damage = missile->getDamage();

		m_Info.m_CurrentHp -= damage * 100 / (100 + m_Info.m_DefensivePower);

		//사망
		if (m_Info.m_CurrentHp <= 0)
		{
			m_IsDead = true;
		}
	}
	return true;
}
Exemple #13
0
 void Enemy::fire(float delta) {
     Missile* m;
     glm::vec3 forward = glm::normalize(glm::mat3_cast(getRotation()) * glm::vec3(0, 0, 1));
     glm::vec3 position = getPosition() + 2.0f * forward;
     m = new Missile(position, 2.0f * forward);
     m->setRotation(getRotation());
     m->rotate(glm::vec3(1, 0, 0), 3.1415920f / 2.0f);
     Game::getGame().addMissile(m);
 }
void MissileMovementLoop::update(float delta){
Missile* parent = (Missile*)getOwner();
if(parent==NULL)
{
    return;
}else{
    auto moveDown = MoveTo::create(missileFlyDuration, Point(0,parent->getPosition().x));
    parent->runAction(moveDown);
}
}
Exemple #15
0
//Check if the Marauder should shoot. Create and initialize a missile and push it to missiles vector.
void Marauder::shoot(sf::RenderWindow &window, Player &player, vector <Enemy *> &enemies, vector <Bullet *> &bullets, vector <Missile *> &missiles) {

	int random = rand() % 500 + 1;
	if (random == 1) {
		Missile* missile = new Missile(this->getPosition());
		missile->velocity = (sf::Vector2f(5, 5));
		missile->damage = (this->damage);
		missile->calculateRotation(window, player);
		missiles.push_back(missile);
	}

}
void fireMissile()
{
	Missile* missile = static_cast<Missile*>(EngineInterface::getEntity("Missile"));
	EngineInterface::playSoundEffect("Laser");
	Vector3D missilePosition = EngineInterface::getEntity("F16")->entityState.position;
	missilePosition -= EngineInterface::getCamera()->getViewDirection() * 55.0f;	
	missile->setEntityPosition(missilePosition[0],missilePosition[1],missilePosition[2]);
	missile->entityState.orientation = EngineInterface::getCamera()->getOrientation().inverse();
	missile->moveDirection = EngineInterface::getCamera()->getViewDirection();
	missile->isFired = true;
	missile->entityState.isVisible = true;
}
Exemple #17
0
/*
 * Method: AIKamikaze
 *
 * Crash into the target ship.
 *
 * > missile:AIKamikaze(target)
 *
 * Parameters:
 *
 *   target - the <Ship> to destroy
 *
 * Returns:
 *   true if the command could be enacted, false otherwise
 *
 * Availability:
 *
 *  Gen 2017
 *
 * Status:
 *
 *  experimental
 */
static int l_missile_ai_kamikaze(lua_State *l)
{
	Missile *m = LuaObject<Missile>::GetFromLua(1);
	Ship *target = LuaObject<Ship>::GetFromLua(2);
	if (target != nullptr) {
		m->AIKamikaze(target);
		lua_pushboolean(l, true);
	} else {
		lua_pushboolean(l, false);
	}
	return 1;
}
Exemple #18
0
Missile * Ship::SpawnMissile(ShipType::Id missile_type, int power) {
	if (GetFlightState() != FLYING)
		return 0;

	Missile *missile = new Missile(missile_type, this, power);
	missile->SetOrient(GetOrient());
	missile->SetFrame(GetFrame());
	// XXX DODGY! need to put it in a sensible location
	vector3d dir = -GetOrient().VectorZ();
	missile->SetPosition(GetPosition()+50.0*dir);
	missile->SetVelocity(GetVelocity());
	Pi::game->GetSpace()->AddBody(missile);
	return missile;
}
Exemple #19
0
Missile * Ship::SpawnMissile(ShipType::Id missile_type, int power) {
	if (GetFlightState() != FLYING)
		return 0;

	Missile *missile = new Missile(missile_type, this, power);
	missile->SetOrient(GetOrient());
	missile->SetFrame(GetFrame());
	const vector3d pos = GetOrient() * vector3d(0, GetAabb().min.y - 10, GetAabb().min.z);
	const vector3d vel = -40.0 * GetOrient().VectorZ();
	missile->SetPosition(GetPosition()+pos);
	missile->SetVelocity(GetVelocity()+vel);
	Pi::game->GetSpace()->AddBody(missile);
	return missile;
}
void startGame(Missile missile, Enemy enemy){
	cout<< "do you want to launch a missile?(y/n)"<<endl;
	char check;
	cin>>check;
	while(check!='n'){
	if(check=='y'){
		
	    askWhereX(missile.getPosition());
		askWhereY(0);
		checkIfEnemyThere(missile.getPosition(), enemy);
		
		cout<<"Would you like to launch another?"<<endl;
		cin>>check;
	}else{
Exemple #21
0
Missile* Missile::create(BeamType t)
{
    Missile *pRet = new(std::nothrow) Missile(t);
    if (pRet && pRet->init())
    {
        pRet->autorelease();
        return pRet;
    }
    else
    {
        delete pRet;
        pRet = NULL;
        return NULL;
    }
}
Exemple #22
0
void MissileHandlePierce(Missile &missile, const Vec2i &pos)
{
	CUnit *unit = UnitOnMapTile(pos, -1);
	if (unit && unit->IsAliveOnMap()
		&& (missile.Type->FriendlyFire || unit->IsEnemy(*missile.SourceUnit->Player))) {
		missile.MissileHit(unit);
	}
}
Exemple #23
0
void Player::updateMissile()
{ 
	std::set<Missile*>::iterator i = mMissile.begin();
	while( i != mMissile.end() )
	{
		Missile* missile = *i;

		//if (missile->getMissilePhysics()->isCollided() && !missile->isExploded())
		//{
		//	missile->makeExplode();
		//}

		missile->update();

		if ( missile->getMissilePhysics()->isCollided() ||  missile->isMissileTick() ) 
		{
			i = mMissile.erase(i);

			mPhysicsWorld->removeObject(missile->getMissilePhysics());
			missile->getSceneNode()->removeAndDestroyAllChildren();
			mSceneMgr->destroySceneNode(missile->getSceneNode());

			delete missile;
		}
		else
		{
			i++;
		}
	}
}
Exemple #24
0
bool Ship::hit(Missile &m) {
  if(type==DESTROYED||
     (type==PLAYER && m.type==Missile::Type::PLAYER) ||
     (type==ENEMY && m.type==Missile::Type::ENEMY)) return false;

  Rectangle r(x-1,y+1,2,3);

  if(r.isInside(m.getX(),m.getY())){
      m.type=Missile::Type::VOID;
      if(type==ENEMY) type=DESTROYED;
      return true;
    } else {
      return false;
    }
    
    

}
Exemple #25
0
void Engine::paintGL() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    glTranslatef(0.0f, 2.0f, -15.0f);
    glRotatef(xAngle, 1.0f, 0.0f, 0.0f);
    glRotatef(yAngle, 0.0f, 1.0f, 0.0f);
    glScalef(scale, scale, scale);
    drawSea(SEA_SIZE);

    glColor3f(1,0,0);
    this->renderText(-23, 2, -15.0f, QString("Player 1"));
    this->renderText(-24, 1.1f, -15.0f, getHitpoints(&player1));

    glColor3f(0,0,1);
    this->renderText(19, 2, -15.0f, QString("Player 2"));
    this->renderText(20, 1.1f, -15.0f, getHitpoints(&player2));

    glColor3f(1,1,0);
    this->renderText(-0.5d, 1.0d, 1.0d, pauseText);

    glColor3f(0,1,0);
    this->renderText(-2.5d, 1.0d, -1.0d, checkForWinner());
    this->renderText(-4.5d, 1.0d, 1.0d, newGameText);

    glPushMatrix();
    glTranslatef(player1.xPos, 0, player1.zPos);
    glRotatef(player1.yAngle, 0, 1, 0);
    player1.draw(1, 0, 0);
    glPopMatrix();

    glPushMatrix();
    glTranslatef(player2.xPos, 0, player2.zPos);
    glRotatef(player2.yAngle, 0, 1, 0);
    player2.draw(0, 0, 1);
    glPopMatrix();

    Missile* m;
    foreach(m, missilesList) {
        glPushMatrix();
        glTranslatef(m->x, 0.4, m->z);
        glRotatef(m->angle, 0, 1, 0);
        m->draw();
        glPopMatrix();
    }
int main(void){
	Missile missile;
	Enemy enemy;
	Vector2 TempVect;
	TempVect.x=0;
	TempVect.y=0;
	
	missile.setPosition(TempVect);
	
	
	
	
	
	
	startGame(missile, enemy);

	cin.get();
	return 0;
}
Exemple #27
0
void
RobotGame::updateWithMessage (void)
{
    char *block = messageData.data();

    while (missiles.removeFirst())
	;

    for (int i = 0; i < robots.count(); ++i)
	block = robots.at(i)->updateWithBlock(block);

    while (block < messageData.data() + messageData.size())
    {
	Missile *missile = new Missile(*this, block);

	block = missile->updateWithBlock(block);
	missiles.append(missile);
    }

    thePlayField->repaint(FALSE);
}
Exemple #28
0
bool RushPig::onContactBegin(cocos2d::PhysicsContact& contact)
{
	auto bodyA = contact.getShapeA()->getBody();
	auto bodyB = contact.getShapeB()->getBody();
	auto componentA = (BaseComponent*)bodyA->getNode();
	auto componentB = (BaseComponent*)bodyB->getNode();
	BaseComponent* enemyComponent;
	bool isComponentA = true;

	if (componentA->getType() == getType())
	{
		enemyComponent = componentB;
		isComponentA = true;
	}
	else
	{
		enemyComponent = componentA;
		isComponentA = false;
	}

	//미사일이랑 충돌 처리
	if (enemyComponent->getPhysicsBody()->getCategoryBitmask() == PHYC_MISSILE)
	{
		Missile* missile = static_cast<Missile*>(enemyComponent);

		float damage = missile->getDamage();

		m_Info.m_CurrentHp -= damage * 100 / (100 + m_Info.m_DefensivePower);

		cocos2d::log("HP : %d / %d", m_Info.m_CurrentHp, m_Info.m_MaxHp);
		//사망
		if (m_Info.m_CurrentHp <= 0)
		{
			m_IsDead = true;
		}
	}
	return true;
}
Exemple #29
0
Missile* SimpleStoresMgr::getNextMissileImp()
{
   Missile* msl = 0;

   Basic::PairStream* list = getWeapons();
   if (list != 0) {

      Basic::List::Item* item = list->getFirstItem();
      while (item != 0 && msl == 0) {
         Basic::Pair* pair = (Basic::Pair*) item->getValue();
         Missile* p = dynamic_cast<Missile*>( pair->object() );
         if (p != 0) {
            if (p->isInactive() || p->isReleaseHold()) {
               msl = (Missile*) p->getPointer();
            }
         }
         item = item->getNext();
      }
      list->unref();
   }

   return msl;
}
Exemple #30
0
void	play(int i, Window& win)
{
	nodelay(stdscr, TRUE);
	i = get_difficult(i);
	Player		p(win);
	EnnemyHorde n = EnnemyHorde(i, "^v^");
	Missile miss = Missile(10, "|");
	Rocket rock = Rocket(2, "[]");
	n.randomPOP(win);
	int	input = 0;
	p.setScoreZero();
	while (input != KEY_ECHAP && p.getHP() > 0)
	{
		clear();
		miss.print_score(win);
		win.takeSize();
		win.printBorder();
		input = getch();
		miss.activate(p.getX(), p.getY(), input);
		rock.activate(p.getX(), p.getY(), input);
		miss.checkDamages(n.getHorde(), n.getNumber(), win);
		rock.checkDamages(n.getHorde(), n.getNumber(), win);
		p.checkEnemies(n.getHorde(), n.getNumber(), win);
		p.print_life(win);
		miss.print_chargeur(win);
		rock.print_chargeur(win);
		if (p.getHP() > 0)
		{
			n.printit(win);
			miss.move(win);
			rock.move(win);
			miss.printit(win);
			rock.printit(win);
			p.printit(win);
			p.inputDirection(input);
			wrefresh(win.getWin());
			p.move(win);
			p.printit(win);
			n.move(win);
		}
		while(getch() != ERR);
		usleep(60000);
	}
	if (p.getHP() <= 0)
	{
		clear();
		print_die(win, p);
	}
	 if (p.getScore() > hight_score)
		 hight_score = p.getScore();

}