summaryrefslogtreecommitdiff
path: root/src/creature.cpp
diff options
context:
space:
mode:
authortom <tom@ground-control>2016-05-02 22:02:25 -0500
committertom <tom@ground-control>2016-05-02 22:02:25 -0500
commite7cac5098145d75a680e35787f7c504caf16965b (patch)
tree8256bd87b35c5aadcef0e5bd16030a4196cbbc7e /src/creature.cpp
parent8d9ad3eb74bc0dfc647abf03b7b99ed16f2a9115 (diff)
fixed issue, was related to erasing nodes within vectors while using iterators
Diffstat (limited to 'src/creature.cpp')
-rw-r--r--src/creature.cpp15
1 files changed, 8 insertions, 7 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