亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ai.cpp

?? 打飛機的過關游戲(linux)
?? CPP
字號:
#include "ai.h"

/*
Some very simple artificial intelligence routines for the aliens.
Shouldn't really be called AI since they just do things at random.
Aliens are assigned various AI types and this routine makes use of them.
Levels of aggression, defence and evasion are all here.
*/

void setEnemyAI(object *theEnemy)
{
	// Make friendly craft generally concentrate on smaller fighters
	if ((theEnemy->flags & FL_FRIEND) && (theEnemy->target == &enemy[WC_BOSS]))
	{
		if ((rand() % 5) == 0)
		{
			theEnemy->target = theEnemy;
			theEnemy->thinktime = 0;
			return;
		}
	}

	int i = rand() % 10;
	float tx = theEnemy->target->x;
	float ty = theEnemy->target->y;

	int chase = 0; // Chance in 10 of chasing player
	int area = 0; // Chance in 10 of moving to an area around the player
	int stop = 0; // Chance in 10 of hanging back
	int point = 0; // Size of area alien will move into

	switch (theEnemy->AIType)
	{
		case AI_NORMAL:
			chase = 3;
			point = 6;
			stop = 9;
			area = 250;
			break;
		case AI_OFFENSIVE:
			chase = 7;
			point = 8;
			stop = 9;
			area = 50;
			break;
		case AI_DEFENSIVE:
			chase = 2;
			point = 6;
			stop = 8;
			area = 300;
			break;
		case AI_EVASIVE:
			chase = 1;
			point = 8;
			stop = 9;
			area = 600;
			break;
		case AI_WANDER:
			chase = -1;
			point = 0;
			stop = 10;
			area = 1200;
			break;
	}

	if (i <= chase)
	{
		// Chase the target
		theEnemy->dx = ((theEnemy->x - tx) / ((300 / theEnemy->speed)  + rand() % 100));
		theEnemy->dy = ((theEnemy->y - ty) / ((300 / theEnemy->speed)  + rand() % 100));
		return;
	}
	else if ((i >= point) && (i <= stop))
	{
		// Fly to a random point around the target
		tx += (rand() % area - (rand() % area * 2));
		ty += (rand() % area - (rand() % area * 2));
		theEnemy->dx = ((theEnemy->x - tx) / ((300 / theEnemy->speed)  + rand() % 100));
		theEnemy->dy = ((theEnemy->y - ty) / ((300 / theEnemy->speed)  + rand() % 100));
		return;
	}
	else
	{
		// Hang back
		theEnemy->dx = 0;
		theEnemy->dy = 0;
		return;
	}
}

void setKlineAttackMethod(object *theEnemy)
{
	theEnemy->maxShield -= 500;
	if (theEnemy->maxShield == 0)
		theEnemy->flags -= FL_CANNOTDIE;

	if (theEnemy->maxShield == 1000)
	{
		setRadioMessage(FACE_KLINE, "Very good, Bainfield. Now let's get a little more serious...", 1);
		theEnemy->weaponType[0] = W_SPREADSHOT;
		theEnemy->chance[1] = 40;
	}
	else if (theEnemy->maxShield == 500)
	{
		setRadioMessage(FACE_KLINE, "Your ability to stay alive irritates me!! Try dodging some of these!!", 1);
		theEnemy->weaponType[0] = W_DIRSHOCKMISSILE;
		theEnemy->weaponType[1] = W_DIRSHOCKMISSILE;
		theEnemy->chance[0] = 2;
		theEnemy->chance[1] = 2;
		theEnemy->flags += FL_AIMS;
	}
	else if (theEnemy->maxShield == 0)
	{
		setRadioMessage(FACE_KLINE, "ENOUGH!! THIS ENDS NOW!!!", 1);
		theEnemy->weaponType[0] = W_AIMED_SHOT;
		theEnemy->weaponType[1] = W_MICRO_HOMING_MISSILES;
		theEnemy->flags += FL_CANCLOAK;
		theEnemy->chance[0] = 100;
		theEnemy->chance[1] = 2;
	}

	theEnemy->shield = 500;
}

/*
This AI is exclusively for Kline.
*/
void setKlineAI(object *theEnemy)
{
	// Weapon type change
	if ((rand() % 3) == 0)
	{
		if (currentGame.area != 26)
		{
			if (theEnemy->flags & FL_AIMS)
				theEnemy->flags -= FL_AIMS;

			switch(rand() % 2)
			{
				case 0:
					theEnemy->weaponType[0] = W_TRIPLE_SHOT;
					break;
				case 1:
					theEnemy->weaponType[0] = W_AIMED_SHOT;
					theEnemy->flags += FL_AIMS;
					break;
			}
		}
	}

	if (theEnemy->flags & FL_CIRCLES)
		theEnemy->flags -= FL_CIRCLES;
	if (theEnemy->flags & FL_CONTINUOUS_FIRE)
		theEnemy->flags -= FL_CONTINUOUS_FIRE;
	if (theEnemy->flags & FL_DROPMINES)
		theEnemy->flags -= FL_DROPMINES;

	switch(rand() % 10)
	{
		case 0:
			if ((theEnemy->weaponType[0] != W_DIRSHOCKMISSILE) && (theEnemy->weaponType[1] != W_MICRO_HOMING_MISSILES))
				theEnemy->flags += FL_CONTINUOUS_FIRE;
			theEnemy->dx = ((theEnemy->x - theEnemy->target->x) / ((300 / theEnemy->speed)  + rand() % 100));
			theEnemy->dy = ((theEnemy->y - theEnemy->target->y) / ((300 / theEnemy->speed)  + rand() % 100));
			break;
		case 1:
		case 2:
			// Kline only attacks then he is ready!
			if ((!(theEnemy->flags & FL_NOFIRE)) && (currentGame.area == 11))
				theEnemy->flags += FL_DROPMINES;
			break;
		case 3:
		case 4:
			theEnemy->flags += FL_CIRCLES;
			break;
		default:
			setEnemyAI(theEnemy);
			break;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美少妇bbb| 久久欧美一区二区| 欧美一卡在线观看| 精品久久国产字幕高潮| 亚洲精品在线观看视频| 亚洲色图丝袜美腿| 亚洲成人av电影| 国产精品88888| 欧美专区在线观看一区| 亚洲精品一线二线三线| 亚洲色图都市小说| 激情都市一区二区| 欧美综合天天夜夜久久| 欧美做爰猛烈大尺度电影无法无天| 日韩欧美www| 亚洲免费成人av| 午夜亚洲国产au精品一区二区| 国内外成人在线| 欧美性欧美巨大黑白大战| 国产亚洲制服色| 同产精品九九九| 白白色 亚洲乱淫| 91精品国产综合久久精品app | 亚洲一二三四区| 久久精品国产第一区二区三区| 国产一区二区三区免费看| 欧美午夜精品电影| 国产精品女主播在线观看| 麻豆视频观看网址久久| 色婷婷综合久久久久中文一区二区| 亚洲精品在线免费播放| 久久99久久久久久久久久久| 91精品国产欧美一区二区成人| 亚洲综合偷拍欧美一区色| 色综合一个色综合亚洲| 亚洲狠狠丁香婷婷综合久久久| 色婷婷精品大在线视频 | 日韩精品一区二区三区蜜臀| 免费成人在线播放| 欧美tickling挠脚心丨vk| 蜜桃久久精品一区二区| 欧美成人vr18sexvr| 国产一区二区主播在线| 国产日韩欧美在线一区| 成人蜜臀av电影| 亚洲男人的天堂在线观看| 色婷婷亚洲精品| 亚洲成人资源在线| 精品女同一区二区| 国产精品123区| 自拍偷拍国产亚洲| 欧美日韩一二三| 激情文学综合插| 国产精品久久影院| 欧美日韩专区在线| 国内不卡的二区三区中文字幕 | 国产精品久久一级| 在线免费观看一区| 久久99精品久久久久久国产越南| 欧美激情一区二区三区不卡| www.亚洲免费av| 亚洲va国产天堂va久久en| 欧美婷婷六月丁香综合色| 免费成人av在线| 国产精品视频一二| 色婷婷久久久久swag精品 | 亚洲图片欧美色图| 91精品国产综合久久精品性色| 欧美aaa在线| 国产精品丝袜久久久久久app| a美女胸又www黄视频久久| 亚洲综合视频在线观看| 91精品国产色综合久久久蜜香臀| 日韩国产成人精品| 久久久不卡影院| 国产在线精品一区二区夜色| 国产精品伦理一区二区| 色94色欧美sute亚洲线路一久| 日韩成人午夜电影| 国产视频亚洲色图| 欧美喷水一区二区| 国产精品系列在线观看| 亚洲福利一二三区| 精品国产第一区二区三区观看体验| jlzzjlzz国产精品久久| 亚洲大片精品永久免费| 中文字幕巨乱亚洲| 884aa四虎影成人精品一区| av电影天堂一区二区在线观看| 亚洲午夜免费福利视频| 中文字幕欧美激情| 欧美日本在线观看| 在线免费亚洲电影| 国产乱理伦片在线观看夜一区| 婷婷开心激情综合| 欧美激情一区在线| 精品久久久网站| 欧美中文字幕不卡| 91丨九色丨蝌蚪丨老版| 毛片不卡一区二区| 亚洲激情av在线| 国产午夜精品一区二区| 欧美精品第一页| 色屁屁一区二区| 国产一区欧美一区| 日韩精品一二三四| 亚洲一区二区三区中文字幕在线| 久久精品视频网| 日本伦理一区二区| 91蜜桃传媒精品久久久一区二区| 五月综合激情网| 亚洲成人精品影院| 亚洲男人的天堂在线aⅴ视频| 国产精品亲子伦对白| 欧美v日韩v国产v| 5月丁香婷婷综合| 91国内精品野花午夜精品| 色欧美日韩亚洲| 成人动漫视频在线| 成人午夜看片网址| 久久99九九99精品| 丁香网亚洲国际| 久久99精品国产.久久久久久| 全国精品久久少妇| 天天色综合成人网| 久草精品在线观看| 日本成人中文字幕| 国产高清不卡一区二区| 狠狠色丁香婷婷综合久久片| 精品亚洲aⅴ乱码一区二区三区| 亚洲v中文字幕| 九九国产精品视频| 日韩激情视频网站| 韩国精品在线观看| 国产精品自拍av| 国产91精品露脸国语对白| 97久久精品人人澡人人爽| 99久久国产综合精品麻豆| 欧美少妇xxx| 欧美一区二区三区小说| 久久久久久久久久久黄色| 国产日韩精品一区二区三区| 日韩理论片中文av| 亚洲另类春色国产| 久久99热99| 国产风韵犹存在线视精品| 日本久久一区二区| 欧美影院一区二区三区| 精品久久久久久综合日本欧美| 欧美mv和日韩mv的网站| 亚洲欧美日韩系列| 亚洲与欧洲av电影| 国产一区二区免费看| 国产一区二区在线电影| 在线看国产一区| 4438x成人网最大色成网站| 中文字幕第一区第二区| 1024国产精品| 黄网站免费久久| 色网站国产精品| 欧美精品一区二区精品网| 日韩欧美国产午夜精品| 亚洲欧美日韩一区二区| 亚洲精品videosex极品| 国产福利一区在线| av在线一区二区| 日韩手机在线导航| 玉米视频成人免费看| 精品一区二区在线视频| 欧美三级蜜桃2在线观看| 欧美电视剧免费观看| 亚洲国产成人高清精品| 九一九一国产精品| 欧美日韩亚洲另类| 日本一区二区三区高清不卡| 麻豆精品新av中文字幕| 成人综合婷婷国产精品久久蜜臀| 日韩欧美国产一区二区在线播放| 国产三级一区二区三区| 精品一区在线看| 91麻豆福利精品推荐| 国产精品国产三级国产普通话蜜臀| 亚洲高清免费视频| www.视频一区| 亚洲国产精品传媒在线观看| 热久久国产精品| 91麻豆精品国产91久久久久久| 国产精品美日韩| 国产精品一区二区久久精品爱涩| 欧美在线短视频| 亚洲综合区在线| 国产传媒日韩欧美成人| 国产亚洲精品bt天堂精选| 午夜精品福利一区二区三区蜜桃| 在线一区二区三区做爰视频网站| 欧美一级艳片视频免费观看| 午夜精品在线视频一区| 97se亚洲国产综合自在线不卡| 精品国产一二三区| 黄一区二区三区|