Beispiel #1
0
void Game::CheckInputEvents(int i)
{
	float temp;
	switch (i)
	{
	case 0:
		temp = player[PLAYER_ONE]->m_Y - ScreenHeight / 160;
		if (temp > ScreenHeight / 50)
		{
			player[PLAYER_ONE]->m_Y = temp;
		}
		break;
	case 1:
		temp = player[PLAYER_ONE]->m_Y + ScreenHeight / 160;
		if (temp < player[PLAYER_TWO]->m_Y)
		{
			player[PLAYER_ONE]->m_Y = temp;
		}
		break;
	case 2:
		Punch(PLAYER_ONE, 0.1f);
		break;
	case 3:
		Kick(PLAYER_ONE, 0.1f);
		break;
	case 4:
		//hadoken
		break;
	case 5:
		//Block
		break;
	default:
		break;
	}
}
// -----------------------------------------------------------------------------
// Purpose:
// -----------------------------------------------------------------------------
void CTFHammerfists::SecondaryAttack()
{
	if ( !CanAttack() )
		return;

	m_iWeaponMode = TF_WEAPON_SECONDARY_MODE;

	Punch();
}
// -----------------------------------------------------------------------------
// Purpose:
// -----------------------------------------------------------------------------
void CTFHammerfists::PrimaryAttack( void )
{
	if ( !CanAttack() )
		return;

	m_iWeaponMode = TF_WEAPON_PRIMARY_MODE;

	Punch();
}
QImage PunchFilter::apply(const QImage &image, const QRect& clipRect /*= QRect()*/ ) const
{
    QImage out;
    QImage::Format fmt = image.format();
    Punch(image, &out, clipRect);
    if (out.format() != fmt) {
        out = out.convertToFormat(fmt);
    }
    return out;
}
Beispiel #5
0
func Timer()
{
	var pDead2, pNewTarget;
	if(!pTarget)
	{
	for(var pDead in FindObjects(Find_Action("Dead"), Find_Distance(100)))
	{
		if(GetPhase(pDead) < 4)
			if(PathFree(GetX(), GetY(), pDead->GetX(), pDead->GetY()))
			{
				pDead2 = pDead;
				break;
			}
	}
	pDead = pDead2;
	if(pDead)
	{
		for(pNewTarget in FindObjects(Find_OCF(OCF_Alive), Find_Distance(100), Find_Hostile(GetOwner(pDead))))
		{
			if(PathFree(GetX(), GetY(), pNewTarget->GetX(), pNewTarget->GetY()))
			{
				iTimer = 0;
				pTarget = pNewTarget;
			}
		}
	}
	}
	if(pTarget)
	{
		iTimer++;
		if(iTimer%10 != 0) return;
		if(iTimer > 100) pTarget = 0;
		else if(!PathFree(GetX(), GetY(), pTarget->GetX(), pTarget->GetY()) && !pTarget->Contained()) pTarget = 0;
		if(!pTarget) return;
		Message("Töte niemanden an diesem heiligen Ort!", this);
		DrawLightning(GetX(),GetY(),pTarget->GetX(), pTarget->GetY());
		Punch(pTarget, 5);
	}
}
Beispiel #6
0
/*
 * The constructor, caller only has control over the name of the character
 */
Protagonist::Protagonist(string name) {
	level = 10;
	attack = 30;
	defense = 30;
	health = 200;
	energy = 200;
	isDead = false;
	this->name = name;
	characterType = NORMAL;

	Ability Punch(0, 10, "punch", NORMAL);
	Ability Waterbomb(30, 50, "waterbomb", WATER);
	Ability Treehammer(40, 60, "treehammer", GRASS);
	Ability Inferno(50, 70, "inferno", FIRE);
	Ability Sunder(80, 100, "sunder", NORMAL);

	abilities.push_back(Punch);
	abilities.push_back(Waterbomb);
	abilities.push_back(Treehammer);
	abilities.push_back(Inferno);
	abilities.push_back(Sunder);
}
Beispiel #7
0
void Game::CheckAINextMove()
{
	//  if we should left dash

	int distance = player[PLAYER_TWO]->m_Y - player[PLAYER_ONE]->m_Y;
	if (!(player[PLAYER_TWO]->getPrevHit()))
	{
		// check if we should kick
		if (distance == 0)
		{
			if (player[PLAYER_ONE]->m_Y > ScreenHeight / 15)
			{
				Kick(PLAYER_TWO, 1.0f);
				player[PLAYER_TWO]->setPrevMovement(2);
			}
			// check if we should punch
			else
			{
				Punch(PLAYER_TWO, 1.0f);
				player[PLAYER_TWO]->setPrevMovement(3);
			}
		}
		else
		{
			//check if we should dash left
			if (player[PLAYER_ONE]->getPrevMovement() != 4)
			{
				if (ScreenHeight / 6 < distance)
				{
					float temp = CheckPlayer1Collision((float)(player[PLAYER_TWO]->m_Y - (ScreenHeight / 15)));
					Dash(PLAYER_TWO, temp);
					player[PLAYER_TWO]->setPrevMovement(0);
				}
				else if (projectiles[PLAYER_ONE].size() > 0)
				{
					MakeHadoken(PLAYER_TWO);
					player[PLAYER_TWO]->setPrevMovement(4);
				}
				// check if we should move left
				else
				{
					float temp = CheckPlayer1Collision(player[PLAYER_TWO]->m_Y - (ScreenHeight / 160));
					player[PLAYER_TWO]->m_Y = temp;
					player[PLAYER_TWO]->setPrevMovement(0);
				}
			}
			else
			{
				if (projectiles[PLAYER_ONE].size() > 0)
				{
					if (projectiles[PLAYER_ONE].at(0)->m_Y - player[PLAYER_TWO]->m_Y < ScreenHeight / 10)
					{
						Block(PLAYER_TWO);
						player[PLAYER_TWO]->setPrevMovement(5);
					}
				}
			}
		}
	}
	else
	{
		// check if we should right dash
		if (player[PLAYER_TWO]->getPrevHit())
		{
			player[PLAYER_TWO]->setPrevMovement(1);
		}
		// check if we should move right
		else if (0)
		{
			player[PLAYER_TWO]->setPrevMovement(1);
		}
	}
	player[PLAYER_TWO]->setPrevHit(false);
}
static void ATARI2(void){

int STAGED=((wnow.YLOC+8-7)/16+1)+scr;
int STAGEE=((wnow.YLOC+8+7.99)/16+1)+scr;

//int STAGEE=((wnow.YLOC+8)/16+1)+scr;

int a=((wnow.XLOC+8-6)/16+1);
int b=((wnow.XLOC+8+5.99)/16+1);

int MIDLEFT=0;
int MIDRIGHT=0;

int TOPLEFT=0;
int TOPRIGHT=0;
int BOTTOMLEFT=0;
int BOTTOMRIGHT=0;
double XMERI=0;
double YMERI=0;

int he1=((wnow.XLOC+8+8)/16);
int he2=((wnow.YLOC+8+8)/16);
int he3=((wnow.XLOC+8-6)/16+1);

int he42=((wnow.YLOC+8-7)/16+1);

int he5=((wnow.XLOC+8+6-16)/16+1);
int he6=((wnow.XLOC+8)/16+1);
int he7=(((wnow.YLOC+8)/16+1)+scr);
int he8=((wnow.YLOC+8+8)/16+1);
//int he9=((wnow.XLOC+8+5.99)/16+1);
int he10=((wnow.YLOC+8+8-16)/16+1);

int he32=((wnow.XLOC+8-5)/16+1);
int he92=((wnow.XLOC+8+4.99)/16+1);

	if (wnow.HASIGO == 0){
		TOPLEFT=tuka(wyomidata.mapd[a-1][STAGED-1]);
		TOPRIGHT=tuka(wyomidata.mapd[b-1][STAGED-1]);
		BOTTOMLEFT=tuka(wyomidata.mapd[a-1][STAGEE-1]);
		BOTTOMRIGHT=tuka(wyomidata.mapd[b-1][STAGEE-1]);
	}
	else {
		TOPLEFT=tuka2(wyomidata.mapd[a-1][STAGED-1]);
		TOPRIGHT=tuka2(wyomidata.mapd[b-1][STAGED-1]);
		BOTTOMLEFT=tuka2(wyomidata.mapd[a-1][STAGEE-1]);
		BOTTOMRIGHT=tuka2(wyomidata.mapd[b-1][STAGEE-1]);
	
	}
	
	
	
	if (wnow.HASIGO == 0 && wyomidata.mapd[a-1][STAGED-1]=='U'){MIDLEFT=1;}
	if (wnow.HASIGO == 0 && wyomidata.mapd[b-1][STAGED-1]=='U'){MIDRIGHT=1;}
	
	if (TOPLEFT+TOPRIGHT+MIDLEFT+MIDRIGHT==1){
		if (MIDLEFT==1){
			XMERI=(wnow.XLOC+8-6-(16*he1))/(wnow.XKANSEI+0.0001);
			YMERI=(wnow.YLOC+8-7-(16*he2))/(wnow.YKANSEI+0.0001);
			if (wnow.YKANSEI<0){
				if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){
				}
				else {
					if (kmsearch(wnow.XLOC-1,(wnow.YLOC+6-15))=='U'){
					Punch(wnow.XLOC-1,wnow.YLOC+6);
					wnow.YLOC=16*he42+7-8;
					wnow.YKANSEI=0;
					}
				}
			}	
		}
		else if(MIDRIGHT==1){
			XMERI=(wnow.XLOC+8+6-(16*he1))/(wnow.XKANSEI+0.0001);
			YMERI=(wnow.YLOC+8-7-(16*he2))/(wnow.YKANSEI+0.0001);
			if (wnow.YKANSEI<0){
				if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){
				}
				else {
					if (kmsearch(wnow.XLOC+17,(wnow.YLOC+6-15))=='U'){
					Punch(wnow.XLOC+17,wnow.YLOC+6);
					wnow.YLOC=16*he42+7-8;
					wnow.YKANSEI=0;
					}
				}
			}	
		}
	}
	else {
		if (TOPLEFT+TOPRIGHT+MIDLEFT+MIDRIGHT==2){
			if (wnow.YKANSEI<0){
				if (kmsearch(wnow.XLOC+8,wnow.YLOC+8-16) != 'D'){
					if (kmsearch(wnow.XLOC+8,(wnow.YLOC+8-15))=='U'){
					Punch(wnow.XLOC+8,wnow.YLOC+8);
					wnow.YLOC=16*he42+7-8;
					wnow.YKANSEI=0;
					}
				}
				else{
					wnow.YLOC=wnow.YLOC-5-8;
				}
			}
		}
	}
	
	if (TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT==1)	{
		if (TOPLEFT==1){
			XMERI=(wnow.XLOC+8-6-(16*he1))/(wnow.XKANSEI+0.0001);
			YMERI=(wnow.YLOC+8-7-(16*he2))/(wnow.YKANSEI+0.0001);
			if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){
				wnow.XLOC=16*he3+6-8;
				wnow.XKANSEI=0;
			}
			else {
				Punch(wnow.XLOC-1,wnow.YLOC+6);
				wnow.YLOC=16*he42+7-8;
				wnow.YKANSEI=0;
			}
		}
		else if(TOPRIGHT==1){
			XMERI=(wnow.XLOC+8+6-(16*he1))/(wnow.XKANSEI+0.0001);
			YMERI=(wnow.YLOC+8-7-(16*he2))/(wnow.YKANSEI+0.0001);
			if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){
				wnow.XLOC=16*he5-6-8;
				wnow.XKANSEI=0;
			}
			else {
				Punch(wnow.XLOC+17,wnow.YLOC+6);
				wnow.YLOC=16*he42+7-8;
				wnow.YKANSEI=0;
			}
		}
		else if(BOTTOMLEFT==1){
			XMERI=(wnow.XLOC+8-6-(16*he1))/(wnow.XKANSEI+0.0001);
			YMERI=(wnow.YLOC+8+8-(16*he2))/(wnow.YKANSEI+0.0001);
			if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){
				wnow.XLOC=16*he3+6-8;
				wnow.XKANSEI=0;
			}
		}
		else if(BOTTOMRIGHT==1){
			XMERI=(wnow.XLOC+8+6-(16*he1))/(wnow.XKANSEI+0.0001);
			YMERI=(wnow.YLOC+8+8-(16*he2))/(wnow.YKANSEI+0.0001);
			if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){
				wnow.XLOC=16*he5-6-8;
				wnow.XKANSEI=0;
			}
		}
	}
	else if (TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT==0 || TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT==4){}
	else{
		if (TOPLEFT+BOTTOMLEFT==2){
			wnow.XLOC=16*he3+6-8;
			wnow.XKANSEI=0;
		}
		if (TOPRIGHT+BOTTOMRIGHT==2){
			wnow.XLOC=16*he5-6-8;
			wnow.XKANSEI=0;
		}
		if (TOPLEFT+TOPRIGHT==2){
			if (kmsearch(wnow.XLOC+8,wnow.YLOC+8-16) != 'D'){
				Punch(wnow.XLOC+8,wnow.YLOC+8);
				wnow.YLOC=16*he42+7-8;
				wnow.YKANSEI=0;
			}
			else{
				wnow.YLOC=wnow.YLOC-5-8;
			}
		}
		if (TOPLEFT+BOTTOMRIGHT==TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT || TOPRIGHT+BOTTOMLEFT==TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT){
			if (wnow.XKANSEI>0){wnow.XLOC=(16*he5)-6-8;}
			else if (wnow.XKANSEI<0){wnow.XLOC=(16*he3)+6-8;}
			wnow.XKANSEI=0;
			if (wnow.YKANSEI<0){wnow.YLOC=(16*he42)+7-8;}
			wnow.YKANSEI=0;
		}
	}	
	
	if (INIT(wnow.XLOC+8,wnow.YLOC+8,'G')==TRUE){wnow.JIMEN=TRUE;}
	else if (kmsearch(wnow.XLOC+8,wnow.YLOC+8)=='R'){
		tuikapaint(he6,he7,'S');
		wnow.KAGI=TRUE;
	}
	else if (INIT(wnow.XLOC+8,wnow.YLOC+8,'T')==TRUE){
		if (wnow.KAGI==TRUE){
			ketumatu=1;
			GAMEN=END;
		}
	}
	else if (INIT(wnow.XLOC+8,wnow.YLOC+8,'C')==TRUE){
		ketumatu=1;
		GAMEN=END;
	}
	else if (INIT(wnow.XLOC+8,wnow.YLOC+8,'W')==TRUE){
		wdeady.sp=-16;
		wdeady.g=1.6;
		wdeady.nowt=wnow.YLOC;
		GAMEN=END;
		wdeady.kaiten=0;
		ketumatu=0;
		wdeady.deadcount=1;
	}
	else if (INIT(wnow.XLOC+8,wnow.YLOC+8,'X')==TRUE){
		wdeady.sp=12;
		wdeady.g=0;
		wdeady.nowt=wnow.YLOC;
		GAMEN=END;
		wdeady.kaiten=0;
		ketumatu=0;
		wdeady.deadcount=1;
	}
	
	he32=((wnow.XLOC+8-5)/16+1);
	he92=((wnow.XLOC+8+4.99)/16+1);
	he8=((wnow.YLOC+8+8)/16+1);
			
	if (wnow.HASIGO==0){
		if (TOPLEFT==1){BOTTOMLEFT=0;}
		else if (BOTTOMLEFT==1){BOTTOMLEFT=tuka(wyomidata.mapd[he32-1][he8+scr-1]);}
		if (TOPRIGHT==1){BOTTOMRIGHT=0;}
		else if (BOTTOMRIGHT==1){BOTTOMRIGHT=tuka(wyomidata.mapd[he92-1][he8+scr-1]);}
	}
	else if (wnow.HASIGO==1){
		if (TOPLEFT==1){BOTTOMLEFT=0;}
		else if (BOTTOMLEFT==1){BOTTOMLEFT=tuka2(wyomidata.mapd[he32-1][he8+scr-1]);}
		if (TOPRIGHT==1){BOTTOMRIGHT=0;}
		else if (BOTTOMRIGHT==1){BOTTOMRIGHT=tuka2(wyomidata.mapd[he92-1][he8+scr-1]);}
	}
	
	if (BOTTOMLEFT+BOTTOMRIGHT>=1 && BOTTOMLEFT+BOTTOMRIGHT<=4){
		wnow.JIMEN=ZIM;
		wnow.YLOC=16*he10-8-8;
		wnow.YKANSEI=0;
	}
	else {wnow.JIMEN=SORA;}

	if (wnow.NUPDW!=1 && (wnow.YLOC-(wnow.MAPSCROLL % 16))<0){
		wnow.YLOC=(wnow.MAPSCROLL % 16);
		wnow.YKANSEI=0;
	
	}
	
	
}