Skip to content

Commit 66a4d05

Browse files
committed
beginning of the AI overhaul
currently include a tag game all other behaviors are disabled when she touches you she runs away if you touch her in a short time then nothing happens if you fail to catch her then she will wipe some of the board
1 parent 2f2d8bd commit 66a4d05

8 files changed

+310
-440
lines changed

Classes/AiHandler.cpp

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include "AiHandler.h"
2+
3+
AiHandler::AiHandler(std::vector<Player*>* players)
4+
{
5+
6+
sam = ServerSam::create(players);
7+
ptera = Pterodactyl::create();
8+
}
9+
10+
AiHandler::~AiHandler()
11+
{}
12+
13+
void AiHandler::runAI() {
14+
sam->runAI();
15+
}
16+
17+
ServerSam * AiHandler::getSam()
18+
{
19+
return sam;
20+
}
21+
22+
Pterodactyl * AiHandler::getPtera()
23+
{
24+
return ptera;
25+
}

Classes/AiHandler.h

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#ifndef AI_HANDLER_HPP
2+
#define AI_HANDLER_HPP
3+
4+
#include "ServerSam.h"
5+
#include "Pterodactyl.h"
6+
#include "cocos2d.h"
7+
#include "Player.h"
8+
#include <array>
9+
#include "Candy.h"
10+
#include "LevelManager.hpp"
11+
12+
class ServerSam;
13+
class Pterodactyl;
14+
15+
class AiHandler
16+
{
17+
public:
18+
19+
AiHandler(std::vector<Player*>* players);
20+
~AiHandler();
21+
22+
void runAI();
23+
24+
ServerSam* getSam();
25+
Pterodactyl* getPtera();
26+
27+
private:
28+
ServerSam* sam;
29+
Pterodactyl* ptera;
30+
};
31+
32+
#endif //AI_HANDLER_HPP

Classes/ServerDemoScene.cpp

+11-6
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,19 @@ bool ServerDemo::init()
7878
players.push_back(player3);
7979
players.push_back(player4);
8080

81-
serversam = ServerSam::create(this);
81+
Ai = new AiHandler(&players);
82+
83+
serversam = Ai->getSam();
8284
addChild(serversam, 0);
8385

84-
pterodactyl = Pterodactyl::create();
86+
pterodactyl = Ai->getPtera();
8587
addChild(pterodactyl, 0);
8688

8789
candy = Candy::create();
8890
addChild(candy, 0);
8991

9092
loadLevel(1);
9193

92-
serversam->linkPtera(pterodactyl);
93-
serversam->linkCandy(candy);
9494
serversam->attachLevel(&levelmanager);
9595

9696
std::ifstream is("config.json");
@@ -165,7 +165,11 @@ void ServerDemo::update(float dt)
165165
if (levelmanager.currentlevel != 1 && solved_timer_start == false)
166166
{
167167
serversam->setPriority(PLAYER_GRID, DRY_GRID, dried);
168-
serversam->runAI(&players);
168+
Ai->runAI();
169+
for (int i = 0; i < serversam->getServerMessage().size(); i++) {
170+
enqueueMessage(serversam->getServerMessage()[i]);
171+
sendmap = Ai->getSam()->sendMap();
172+
}
169173
}
170174

171175
//set local z-order
@@ -180,7 +184,7 @@ void ServerDemo::update(float dt)
180184
dryTiles();
181185

182186
//check if a player collides with sam/ptero and erase tiles
183-
checkEnemyCollision();
187+
//checkEnemyCollision();
184188

185189
//check is puzzle solved, then let players admire their finished puzzles for a few seconds
186190
checkSolved();
@@ -1456,6 +1460,7 @@ void ServerDemo::checkEnemyCollision(void)
14561460
}
14571461
}
14581462

1463+
14591464
void ServerDemo::dryTiles(void)
14601465
{
14611466
//if (dry_y == CURRENT_GRID[0].size() - 1 && dry_x == CURRENT_GRID.size() - 1) {

Classes/ServerDemoScene.h

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "ServerSam.h"
88
#include "Pterodactyl.h"
99
#include "Candy.h"
10+
#include "AiHandler.h"
1011
#include <cstdlib>
1112
#include <cstring>
1213
#include <iostream>
@@ -37,6 +38,7 @@
3738

3839
class TCPServer;
3940
class ServerSam;
41+
class AiHandler;
4042

4143
class ServerDemo : public cocos2d::Layer
4244
{
@@ -81,6 +83,7 @@ class ServerDemo : public cocos2d::Layer
8183
ServerSam* serversam;
8284
Pterodactyl* pterodactyl;
8385
Candy* candy;
86+
AiHandler* Ai;
8487

8588
std::vector<cocos2d::Sprite*> objects;
8689
std::vector<ServerMessage> servermessagequeue;

0 commit comments

Comments
 (0)