|
|
|
@ -32,13 +32,13 @@ void moveProjectiles(){ |
|
|
|
|
} |
|
|
|
|
projectiles[i].distanceTraveled++; |
|
|
|
|
mvwaddch(viewportWin, projectiles[i].curYpos, projectiles[i].curXpos, projectiles[i].symbol); |
|
|
|
|
struct Entity * hitEntity = collisionDetect(projectiles[i].curYpos, projectiles[i].curXpos); |
|
|
|
|
if(hitEntity){ |
|
|
|
|
if(!strcmp(hitEntity->type,"zombie")){ |
|
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(projectiles[i].curYpos, projectiles[i].curXpos); |
|
|
|
|
if(collisionEvent.collidedWithEntity){ |
|
|
|
|
if(!strcmp(collisionEvent.collidedWithEntity->type,"zombie")){ |
|
|
|
|
projectiles[i].isAlive=0; |
|
|
|
|
hitEntity->isAlive=0; |
|
|
|
|
collisionEvent.collidedWithEntity->isAlive=0; |
|
|
|
|
allEntities[0].killCount++; |
|
|
|
|
mvwaddch(viewportWin, allEntities[i].curYpos, allEntities[i].curXpos, ' '); |
|
|
|
|
mvwaddch(viewportWin, collisionEvent.collidedWithEntity->curYpos, collisionEvent.collidedWithEntity->curXpos, ' '); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(mvwinch(viewportWin,projectiles[i].prevYpos, projectiles[i].prevXpos)==projectiles[i].symbol){ |
|
|
|
@ -58,7 +58,7 @@ void moveProjectiles(){ |
|
|
|
|
|
|
|
|
|
void fireWeapon(struct Weapon *weaponRef, char *direction){ |
|
|
|
|
struct Projectile projectile; |
|
|
|
|
if (!strcmp(weaponRef->name,"Pistol")){ |
|
|
|
|
if (!strcmp(weaponRef->type,"Pistol")){ |
|
|
|
|
projectile.range=20; |
|
|
|
|
} |
|
|
|
|
projectile.isAlive=1; |
|
|
|
|