Add randomEvents based on eventTrigger

Zombie Spawning and Item Spawning
main
Jerry Aldrich 11 years ago
parent 8c406f33fe
commit e4e10b825b
  1. 18
      collisionDetection.c
  2. 3
      collisionDetection.h
  3. 2
      drawWindows.c
  4. 19
      events.c
  5. 3
      gameLoop.c
  6. 10
      weaponsSystem.c
  7. 4
      world.h

@ -21,12 +21,28 @@ struct CollisionEvent collisionDetect(int objYpos, int objXpos){
return collisionEvent;
}
void checkPlayerCollisions(){
void checkProjectileCollision(struct Projectile *projectileRef ){
struct CollisionEvent collisionEvent = collisionDetect(projectileRef->curYpos, projectileRef->curXpos);
if(collisionEvent.collidedWithEntity){
if(!strcmp(collisionEvent.collidedWithEntity->type,"zombie")){
projectileRef->isAlive=0;
collisionEvent.collidedWithEntity->isAlive=0;
allEntities[0].killCount++;
if (allEntities[0].killCount != 0 && allEntities[0].killCount%10==0){
itemModifier++;
}
mvwaddch(viewportWin, collisionEvent.collidedWithEntity->curYpos, collisionEvent.collidedWithEntity->curXpos, ' ');
}
}
}
void checkPlayerCollision(){
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].curYpos, allEntities[0].curXpos);
if(collisionEvent.collidedWithEntity){
if(!strcmp(collisionEvent.collidedWithEntity->type,"zombie")){
collisionEvent.collidedWithEntity->isAlive=0;
mvwaddch(viewportWin, allEntities[0].curYpos, allEntities[0].curXpos, ' ');
drawGameOverWin();
}
}

@ -4,5 +4,6 @@
#include <world.h>
struct CollisionEvent collisionDetect();
void checkProjectileCollision();
void checkPlayerCollision();
#endif

@ -9,6 +9,8 @@ void drawScore(){
mvwprintw(scoreWin, 2, 1, "Ammo: %d/%d:%d",allEntities[0].weapons[allEntities[0].curWeapon].curCapacity,allEntities[0].weapons[allEntities[0].curWeapon].maxCapacity,allEntities[0].weapons[allEntities[0].curWeapon].curMags);
mvwprintw(scoreWin,3,1,"Zombies Killed: %d",allEntities[0].killCount);
mvwprintw(scoreWin,4,1,"Projectiles Fired: %d",allEntities[0].projectilesFired);
mvwprintw(scoreWin,5,1,"Zombie Modifier: %d",zombieModifier);
mvwprintw(scoreWin,6,1,"Item Modifier: %d",itemModifier);
wnoutrefresh(scoreWin);
}

@ -1,6 +1,14 @@
#include <events.h>
#include <structs.h>
#include <world.h>
#include <getPos.h>
#include <time.h>
#include <stdlib.h>
#include <zombies.h>
int zombieModifer=0;
int itemModifier=0;
void addItem(char *type, int yPos, int xPos){
if(!strcmp(type,"Pistol Magazine")){
struct Item pistolMag = {.type="Pistol Magazine", .symbol='=', .isAlive=1, .curXpos=xPos, .curYpos=yPos};
@ -13,3 +21,14 @@ void addItem(char *type, int yPos, int xPos){
}
}
}
void randomEvents(){
int eventTrigger = rand()%1000+1;
if (eventTrigger < 2+itemModifier){
getOpenPos();
addItem("Pistol Magazine", openPos.y, openPos.x);
}
if (eventTrigger < 10+zombieModifier){
addZombie();
zombieModifier++;
}
}

@ -11,6 +11,7 @@ void gameLoop(){
drawViewport();
moveProjectiles();
moveZombies();
randomEvents();
doupdate();
int ch;
ch = getch();
@ -99,6 +100,6 @@ void gameLoop(){
if (ch != ERR) {lastPressed=ch;};
break;
}
checkPlayerCollisions();
checkPlayerCollision();
}
}

@ -33,15 +33,7 @@ void moveProjectiles(){
}
projectiles[i].distanceTraveled++;
mvwaddch(viewportWin, projectiles[i].curYpos, projectiles[i].curXpos, projectiles[i].symbol);
struct CollisionEvent collisionEvent = collisionDetect(projectiles[i].curYpos, projectiles[i].curXpos);
if(collisionEvent.collidedWithEntity){
if(!strcmp(collisionEvent.collidedWithEntity->type,"zombie")){
projectiles[i].isAlive=0;
collisionEvent.collidedWithEntity->isAlive=0;
allEntities[0].killCount++;
mvwaddch(viewportWin, collisionEvent.collidedWithEntity->curYpos, collisionEvent.collidedWithEntity->curXpos, ' ');
}
}
checkProjectileCollision(&projectiles[i]);
if(mvwinch(viewportWin,projectiles[i].prevYpos, projectiles[i].prevXpos)==projectiles[i].symbol){
mvwaddch(viewportWin, projectiles[i].prevYpos, projectiles[i].prevXpos, ' ');
}

@ -15,4 +15,8 @@ struct Projectile projectiles[MAX_PROJECTILES];
#define INITIAL_SPAWN_NUM 10
int zombieModifier;
int itemModifier;
#endif

Loading…
Cancel
Save