summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/creature.cpp15
-rw-r--r--src/list.cpp16
2 files changed, 16 insertions, 15 deletions
diff --git a/src/creature.cpp b/src/creature.cpp
index 24508bf..3ae02ce 100644
--- a/src/creature.cpp
+++ b/src/creature.cpp
@@ -13,14 +13,12 @@ Creature::Creature(Window m, std::string s)
type = 1;
hasTarget = false;
- wandering = false;
able = true;
- n=0;
}
void Creature::Behavior()
{
- //health-=1;
+ health-=1;
this->Priority();
@@ -29,11 +27,10 @@ void Creature::Behavior()
void Creature::Priority()
{
- for(vector <Entity*>::iterator it = N.begin(); it!=N.end(); it++){
- if((*it)->getType() == 2){
+ for(list <Entity*>::iterator it = N.begin(); it!=N.end(); it++){
+ if((*it)->getType() == 2){
if(!hasTarget){
target = *it;
- wandering = false;
hasTarget = true;
}
else
@@ -44,14 +41,18 @@ void Creature::Priority()
void Creature::Action()
{
+ //cout << "My coords:" << L.x << "," << L.y << endl;
+ cout << "Mytcoords:" << target->getLocation().x << "," << target->getLocation().y << endl << endl;
if(hasTarget){
if(Distance(L,target->getLocation())<5){
target->eat();
health+=1000;
}
- if(target->getAmount()==0)
+ if(target->getAmount()==0){
hasTarget = false;
+ cout << "done\n";
+ }
}
//Makes moves towards target coordinates
diff --git a/src/list.cpp b/src/list.cpp
index ff9722f..5d8ae35 100644
--- a/src/list.cpp
+++ b/src/list.cpp
@@ -21,10 +21,10 @@ List::List(Window m)
void List::Place()
{
- for(vector<Creature>::iterator it = C.begin(); it!=C.end(); it++)
+ for(list<Creature>::iterator it = C.begin(); it!=C.end(); it++)
it->Place();
- for(vector<Resource>::iterator it = R.begin(); it!=R.end(); it++){
+ for(list<Resource>::iterator it = R.begin(); it!=R.end(); it++){
if(it->getAmount()<=0)
R.erase(it--);
else
@@ -34,9 +34,9 @@ void List::Place()
void List::Behavior()
{
- for(vector<Creature>::iterator it = C.begin(); it!=C.end(); it++){
+ for(list<Creature>::iterator it = C.begin(); it!=C.end(); it++){
- vector<Entity*> N = getNear(*it);
+ list<Entity*> N = getNear(*it);
it->giveN(N);
it->Behavior();
@@ -50,16 +50,16 @@ void List::Behavior()
}
}
-vector<Entity*> List::getNear(Creature nC)
+list<Entity*> List::getNear(Creature nC)
{
- vector<Entity*> N;
+ list<Entity*> N;
- for(vector <Resource>::iterator it = R.begin(); it!=R.end(); it++){
+ for(list <Resource>::iterator it = R.begin(); it!=R.end(); it++){
if( nC.getBestSense() > Distance(nC.getLocation(),it->getLocation()) )
N.push_back(&(*it));
}
- for(vector <Creature>::iterator it = C.begin(); it!=C.end(); it++){
+ for(list <Creature>::iterator it = C.begin(); it!=C.end(); it++){
if( &nC == &(*it))
continue;
else if( nC.getBestSense() > Distance(nC.getLocation(),it->getLocation()) )