Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include<windows.h>
- using namespace std;
- class Player
- {
- public:
- char sprite[7] = { '_','|','O','-','o','/','\\' };
- char pistolsprite[3] = { '-', '-', '-' };
- char swordsprite[5] = { '+','-','/','\\','-'};
- int Hrp = 10, dir2 = 0;
- int Hcp = 14, dir = 0, lvldir = 0, templvldir = 0;
- int orientation = 0;
- char healthbar = { '-' };
- int pistol = 1, sword = 0;
- int counterphase = 0, swordphase = 0;
- int death = 0;
- int health = 300;
- int money = 0;
- int kills = 0; int trigger = 1;
- int reward = 0;
- int level = 2;
- int levelct = 0;
- int reset = 0;
- int jump = 0, jump_trigger = 0, gravity = 0;
- int ladtrig = 0;
- int pickup_trigger = 0; int pickup = 0;
- char interaction1[18] = { 'C','o','n','g','r','a','t','s','!',' ','Y','o','u',' ','W','o','n','!' };
- char interaction2[10] = { 'G','a','m','e',' ','O','v','e','r','!' };
- void drawplayer(char game[][400])
- {
- pistolsprite[0] = 203; pistolsprite[1] = 205; pistolsprite[2] = 196;
- swordsprite[1] = 196, swordsprite[4] = 179;
- if (trigger == 1)
- {
- if (reset == 1)
- {
- Hrp = 10; Hcp = 14; lvldir = 0;
- reset = 0;
- }
- //for sword animation
- if (counterphase != 0)
- {
- swordphase++;
- counterphase++;
- }
- game[Hrp][Hcp] = sprite[0]; //head
- game[Hrp][Hcp + 1] = sprite[0]; //head
- game[Hrp][Hcp + 2] = sprite[0]; //head
- game[Hrp + 1][Hcp - 1] = sprite[1]; //head
- if (orientation == 0)
- {
- game[Hrp + 1][Hcp] = sprite[2]; //left eye
- }
- else
- {
- game[Hrp + 1][Hcp] = sprite[4]; //left eye
- }
- game[Hrp + 1][Hcp + 1] = sprite[3]; //mouth
- if (orientation == 0)
- {
- game[Hrp + 1][Hcp + 2] = sprite[4]; //right eye
- }
- else
- {
- game[Hrp + 1][Hcp + 2] = sprite[2]; //right eye
- }
- game[Hrp + 1][Hcp + 3] = sprite[1]; //head
- game[Hrp + 2][Hcp - 2] = sprite[5]; //left arm
- game[Hrp + 2][Hcp - 1] = sprite[1]; //body
- game[Hrp + 2][Hcp] = sprite[0]; //body
- game[Hrp + 2][Hcp + 1] = sprite[0]; //body
- game[Hrp + 2][Hcp + 2] = sprite[0]; //body
- game[Hrp + 2][Hcp + 3] = sprite[1]; //body
- game[Hrp + 2][Hcp + 4] = sprite[6]; //right arm
- game[Hrp + 3][Hcp] = sprite[1]; //left leg
- game[Hrp + 3][Hcp + 2] = sprite[1]; //right leg
- if (pistol == 1)
- {
- if (orientation == 0)
- {
- game[Hrp + 2][Hcp + 4] = pistolsprite[0]; //pistol handle
- game[Hrp + 2][Hcp + 5] = pistolsprite[1]; //pistol body
- game[Hrp + 2][Hcp + 6] = pistolsprite[2]; //pistol body
- }
- else
- {
- game[Hrp + 2][Hcp - 2] = pistolsprite[0]; //pistol handle
- game[Hrp + 2][Hcp - 3] = pistolsprite[1]; //pistol body
- game[Hrp + 2][Hcp - 4] = pistolsprite[2]; //pistol body
- }
- }
- if (sword == 1)
- {
- if (swordphase == 0)
- {
- if (orientation == 0)
- {
- game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
- game[Hrp + 2][Hcp + 5] = swordsprite[1]; //sword body
- game[Hrp + 2][Hcp + 6] = swordsprite[1]; //sword body
- }
- else
- {
- game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
- game[Hrp + 2][Hcp - 3] = swordsprite[1]; //sword body
- game[Hrp + 2][Hcp - 4] = swordsprite[1]; //sword body
- }
- }
- if (swordphase == 1)
- {
- if (orientation == 0)
- {
- game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
- game[Hrp + 1][Hcp + 5] = swordsprite[2]; //sword body
- }
- else
- {
- game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
- game[Hrp + 1][Hcp - 3] = swordsprite[3]; //sword body
- }
- }
- if (swordphase == 2)
- {
- if (orientation == 0)
- {
- game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
- game[Hrp + 1][Hcp + 4] = swordsprite[4]; //sword body
- }
- else
- {
- game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
- game[Hrp + 1][Hcp - 2] = swordsprite[4]; //sword body
- }
- }
- if (swordphase == 3)
- {
- if (orientation == 0)
- {
- game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
- game[Hrp + 1][Hcp + 5] = swordsprite[2]; //sword body
- }
- else
- {
- game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
- game[Hrp + 1][Hcp - 3] = swordsprite[3]; //sword body
- }
- }
- if (swordphase == 4)
- {
- if (orientation == 0)
- {
- game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
- game[Hrp + 2][Hcp + 5] = swordsprite[1]; //sword body
- game[Hrp + 2][Hcp + 6] = swordsprite[1]; //sword body
- }
- else
- {
- game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
- game[Hrp + 2][Hcp - 3] = swordsprite[1]; //sword body
- game[Hrp + 2][Hcp - 4] = swordsprite[1]; //sword body
- }
- }
- }
- }
- }
- void gravity_and_jump(char view[][80])
- {
- if (view[Hrp + 4][Hcp] != '#' && view[Hrp + 4][Hcp] != '@' && ladtrig==0 )
- {
- if (jump_trigger == 0)
- {
- gravity++;
- if ((gravity %= 2) == 0)
- {
- Hrp++;
- }
- }
- else
- {
- gravity = 0;
- }
- }
- else
- {
- gravity = 0;
- }
- if (view[Hrp - 1][Hcp] != '#')
- {
- if (jump_trigger == 1)
- {
- jump++;
- if (jump == 2)
- {
- Hrp--;
- }
- if (jump == 4)
- {
- Hrp--;
- }
- if (jump == 6)
- {
- Hrp--;
- jump_trigger++;
- }
- }
- if (jump_trigger == 2)
- {
- jump++;
- if (jump == 9)
- {
- jump_trigger = 0;
- jump = 0;
- }
- }
- }
- else
- {
- jump_trigger = 0;
- }
- }
- void interact(char game[][400])
- {
- int ct = 0;
- for (int i = 15; i < 65; i++)
- {
- game[7][i] = '-';
- game[9][i] = '-';
- }
- game[8][15] = '>';
- if (level == 5)
- {
- for (int i = 30; i < 48; i++)
- {
- game[8][i] = interaction1[0 + ct];
- ct++;
- }
- }
- else
- {
- for (int i = 35; i < 45; i++)
- {
- game[8][i] = interaction2[0 + ct];
- ct++;
- }
- }
- }
- };
- class Bullet
- {
- public:
- int brp = 0, bcp = 0, firetrigger = 0, orientation = 0, damage = 0;
- int speed = 1, damage_multiplier = 1;
- char Bsprite = '>';
- int limiterb = 1;
- void playerattack(char game[][80], Player &x)
- {
- if (firetrigger == 0)
- {
- if (x.orientation == 0)
- {
- if (x.sword != 1)
- {
- Bsprite = '>';
- }
- else
- {
- x.reward = 1;
- Bsprite = ')';
- }
- }
- else
- {
- if (x.sword != 1)
- {
- Bsprite = '<';
- }
- else
- {
- x.reward = 2;
- Bsprite = '(';
- }
- }
- }
- if (firetrigger == 1 && game[brp][bcp + 1] != '#' || game[brp][bcp - 1] == '#')
- {
- if (orientation == 0)
- {
- bcp++;
- }
- else
- {
- bcp--;
- }
- if (x.sword == 0)
- {
- game[brp][bcp] = Bsprite;
- }
- else
- {
- game[brp][bcp] = Bsprite;
- game[brp][bcp - 1] = Bsprite;
- }
- }
- else
- {
- firetrigger = 0;
- }
- }
- };
- class NPC
- {
- public:
- int Hrp = 15;
- int Hcp = 40;
- char sprite[8] = { '_','|','O','_','o','/','\\', '-' };
- int trigger = 0;
- char interact_draw[12] = { '[','E',']',' ','I','n','t','e','r','a','c','t' };
- char pickup_draw[10] = { '[','S',']',' ','P','i','c','k','u','p' };
- int interact = 0, interact_trigger = 0;
- char interaction1[33] = { 'I','s',' ','b','e','t','t','e','r',' ','h','a','v','i','n','g',' ','a',' ','s','w','o','r','d',' ','w','i','t','h',' ','y','o','u' };
- char interaction2[26] = { 'T','h','e',' ','n','e','x','t',' ','r','o','o','m',' ','i','s',' ','d','a','n','g','e','r','o','u','s' };
- char interaction3[28] = { 'U','s','e',' ','t','h','e',' ','s','w','o','r','d',' ','o','n',' ','t','h','e',' ','g','r','o', 'u','n','d', '\0' };
- void draw(char game[][400], Player &x)
- {
- sprite[2] = 169, sprite[4] = 170, sprite[7] = 244;
- if (trigger == 1)
- {
- if (x.reset == 1)
- {
- trigger = 0;
- }
- }
- if (trigger == 1)
- {
- game[Hrp][Hcp] = sprite[0]; //head
- game[Hrp][Hcp + 1] = sprite[0]; //head
- game[Hrp][Hcp + 2] = sprite[0]; //head
- game[Hrp + 1][Hcp - 1] = sprite[1]; //head
- game[Hrp + 1][Hcp] = sprite[2]; //left eye
- game[Hrp + 1][Hcp + 1] = sprite[3]; //mouth
- game[Hrp + 1][Hcp + 2] = sprite[4]; //right eye
- game[Hrp + 1][Hcp + 3] = sprite[1]; //head
- game[Hrp + 2][Hcp - 2] = sprite[5]; //left arm
- game[Hrp + 2][Hcp - 1] = sprite[1]; //body
- game[Hrp + 2][Hcp] = sprite[0]; //body
- game[Hrp + 2][Hcp + 1] = sprite[0]; //body
- game[Hrp + 2][Hcp + 2] = sprite[0]; //body
- game[Hrp + 2][Hcp + 3] = sprite[1]; //body
- game[Hrp + 2][Hcp + 4] = sprite[6]; //right arm
- game[Hrp + 3][Hcp] = sprite[1]; //left leg
- game[Hrp + 3][Hcp + 2] = sprite[1]; //right leg
- game[Hrp + 3][Hcp - 3] = sprite[7]; //thingy
- }
- }
- void interaction(char game[][400], Player &x)
- {
- int ct = 0;
- int ct2 = 0;
- if (x.Hcp > 25 && x.Hcp < 50)
- {
- for (int i = Hcp - 5; i < Hcp + 7; i++)
- {
- game[Hrp - 1][i] = interact_draw[0 + ct2];
- ct2++;
- }
- for (int i = 15; i < 65; i++)
- {
- game[7][i] = '-';
- game[9][i] = '-';
- }
- game[8][15] = '>';
- if (interact == 0)
- {
- for (int i = 17; i < 50; i++)
- {
- game[8][i] = interaction1[0 + ct];
- ct++;
- }
- }
- else if (interact == 1)
- {
- for (int i = 17; i < 43; i++)
- {
- game[8][i] = interaction2[0 + ct];
- ct++;
- }
- }
- else if (interact == 2)
- {
- for (int i = 17; i < 45; i++)
- {
- game[8][i] = interaction3[0 + ct];
- ct++;
- for (int j = 46; j < 65; j++)
- {
- game[8][j] = ' ';
- }
- }
- }
- }
- }
- void pickup(char game[][400], Player &x)
- {
- int ct = 0, picked = 0;
- if (x.Hcp > 60 && x.Hcp < 80 && x.level == 3)
- {
- x.pickup_trigger = 1;
- for (int i = 65; i < 75; i++)
- {
- game[16][i] = pickup_draw[0 + ct];
- ct++;
- }
- }
- if (x.level == 3)
- {
- game[18][70] = x.swordsprite[0];
- game[18][71] = x.swordsprite[1];
- game[18][72] = x.swordsprite[1];
- }
- if (x.pickup == 1)
- {
- picked = 1;
- x.sword = 1; x.pistol = 0;
- x.pickup = 0;
- }
- if (picked == 1)
- {
- x.level++;
- x.reset = 1;
- }
- }
- };
- class EnemyNPC
- {
- public:
- //Enemy NPC
- int Hrp = 15;
- int Hcp = 70;
- int orientation = 1;
- char sprite[8] = { '_','|','@','-','@','c','\\','-' };
- char pistolsprite[3] = { '-','-','-' };
- int NPC_En = 0;
- int Enlimiter = 0;
- int brp = 0, bcp = 0, firetrigger = 0;
- char Bsprite = 'o';
- void draw(char game[][400], Player &x)
- {
- sprite[6] = 203; sprite[7] = 244;
- pistolsprite[0] = 203; pistolsprite[1] = 205; pistolsprite[2] = 196;
- if (NPC_En == 1)
- {
- if (x.reset == 1)
- {
- NPC_En = 0;
- }
- }
- if (NPC_En == 1)
- {
- game[Hrp][Hcp] = sprite[0]; //head
- game[Hrp][Hcp + 1] = sprite[6]; //head
- game[Hrp][Hcp + 2] = sprite[0]; //head
- game[Hrp + 1][Hcp - 1] = sprite[1]; //head
- if (orientation == 0)
- {
- game[Hrp + 1][Hcp] = sprite[2]; //left eye
- }
- else
- {
- game[Hrp + 1][Hcp] = sprite[4]; //left eye
- }
- game[Hrp + 1][Hcp + 1] = sprite[3]; //mouth
- if (orientation == 0)
- {
- game[Hrp + 1][Hcp + 2] = sprite[4]; //right eye
- }
- else
- {
- game[Hrp + 1][Hcp + 2] = sprite[2]; //right eye
- }
- game[Hrp + 1][Hcp + 3] = sprite[1]; //head
- game[Hrp + 2][Hcp - 2] = sprite[5]; //left arm
- game[Hrp + 2][Hcp - 1] = sprite[1]; //body
- game[Hrp + 2][Hcp] = sprite[0]; //body
- game[Hrp + 2][Hcp + 1] = sprite[0]; //body
- game[Hrp + 2][Hcp + 2] = sprite[0]; //body
- game[Hrp + 2][Hcp + 3] = sprite[1]; //body
- game[Hrp + 2][Hcp + 4] = sprite[5]; //right arm
- game[Hrp + 3][Hcp] = sprite[7]; //left leg
- game[Hrp + 3][Hcp + 2] = sprite[7]; //right leg
- if (orientation == 0)
- {
- game[Hrp + 2][Hcp + 5] = pistolsprite[0]; //pistol handle
- game[Hrp + 2][Hcp + 6] = pistolsprite[1]; //pistol body
- game[Hrp + 2][Hcp + 7] = pistolsprite[2]; //pistol body
- }
- else
- {
- game[Hrp + 2][Hcp - 3] = pistolsprite[0]; //pistol handle
- game[Hrp + 2][Hcp - 4] = pistolsprite[1]; //pistol body
- game[Hrp + 2][Hcp - 5] = pistolsprite[2]; //pistol body
- }
- }
- }
- void attack(char view[][80], char game[][400], Player &x)
- {
- //Trigger Shooting
- if (NPC_En == 1 && firetrigger == 0)
- {
- if (orientation == 1)
- {
- brp = Hrp + 2;
- bcp = Hcp - 5;
- }
- else
- {
- brp = Hrp + 2;
- bcp = Hcp + 7;
- }
- firetrigger = 1;
- }
- //Enemy bullet firing
- if (firetrigger == 1)
- {
- game[brp][bcp] = Bsprite;
- if (orientation == 1)
- {
- if (game[brp][bcp - 1] == ' ' && view[brp][bcp - 1] == ' ')
- {
- bcp--;
- }
- else
- {
- firetrigger = 0;
- }
- }
- else
- {
- if (game[brp][bcp + 1] == ' ' && view[brp][bcp + 1] == ' ')
- {
- bcp++;
- }
- else
- {
- firetrigger = 0;
- }
- }
- }
- }
- };
- class Doggie
- {
- public:
- //Enemy Dog
- int Drp = 17;
- int Dcp = 57, Ddir = 0;
- char dsprite[11] = { '-', '-','-','_','_','_','/','/' };
- int trigger = 0;
- int orientation = 1;
- int En_Dlimiter = 0;
- int Dcount = 0;
- int steps = 0;
- void draw(char game[][400], Player &x)
- {
- dsprite[1] = 205, dsprite[2] = 202, dsprite[7] = 173;
- if (trigger == 1)
- {
- if (x.reset == 1)
- {
- trigger = 0;
- }
- }
- if (trigger == 1)
- {
- if (orientation == 1)
- {
- game[Drp][Dcp] = dsprite[0]; //nose
- game[Drp][Dcp + 1] = dsprite[1]; //face
- game[Drp][Dcp + 2] = dsprite[2]; //ears
- game[Drp][Dcp + 3] = dsprite[3]; //body
- game[Drp][Dcp + 4] = dsprite[4]; //body
- game[Drp][Dcp + 5] = dsprite[5]; //body
- game[Drp][Dcp + 6] = dsprite[6]; //tail
- game[Drp + 1][Dcp + 3] = dsprite[7]; //left leg
- //game[d[1].Drp + 1][z.Dcp + 4] = z.dsprite[8]; (when running)
- game[Drp + 1][Dcp + 5] = dsprite[7]; // right leg
- //game[d[1].Drp + 1][z.Dcp + 6] = z.dsprite[10]; (when running)
- }
- else
- {
- game[Drp][Dcp + 6] = dsprite[0]; //nose
- game[Drp][Dcp + 5] = dsprite[1]; //face
- game[Drp][Dcp + 4] = dsprite[2]; //ears
- game[Drp][Dcp + 3] = dsprite[3]; //body
- game[Drp][Dcp + 2] = dsprite[4]; //body
- game[Drp][Dcp + 1] = dsprite[5]; //body
- game[Drp][Dcp] = '\\'; //tail
- game[Drp + 1][Dcp + 3] = dsprite[7]; //left leg
- //game[d[1].Drp + 1][z.Dcp + 4] = z.dsprite[8]; (when running)
- game[Drp + 1][Dcp + 1] = dsprite[7]; // right leg
- //game[d[1].Drp + 1][z.Dcp + 6] = z.dsprite[10]; (when running)
- }
- }
- }
- void move()
- {
- if (trigger != 0)
- {
- if (steps < 8)
- {
- orientation = 1;
- Dcount++;
- if (Dcount % 2 == 0)
- {
- Dcp--;
- steps++;
- }
- }
- if (steps < 16 && steps >= 8)
- {
- orientation = 0;
- Dcount--;
- if (Dcount % 2 == 0)
- {
- steps++;
- Dcp++;
- }
- }
- if (steps >= 16)
- {
- steps = 0;
- }
- }
- }
- };
- class Elevator
- {
- public:
- char sprite = '@';
- int rp = 18, elvdir = 0;
- int cp = 70;
- int trigger = 0;
- int elvcount = 0;
- int elvstep = 0;
- void draw(char lvl[][400], Player &x)
- {
- if (trigger == 1)
- {
- if (x.reset == 1)
- {
- trigger = 0;
- }
- }
- if (trigger == 1)
- {
- lvl[rp][cp] = sprite;
- lvl[rp][cp + 1] = sprite;
- lvl[rp][cp + 2] = sprite;
- lvl[rp][cp + 3] = sprite;
- }
- }
- void elevmove(char game[][80], char lvl[][400], Player &x)
- {
- if (trigger != 0)
- {
- if (elvstep == 0)
- {
- elvcount++;
- if (elvcount % 4 == 0)
- {
- if (rp != 18)
- {
- if (game[x.Hrp + 4][x.Hcp + 2] == '@')
- {
- x.Hrp++, x.dir2 = 1;
- }
- rp++;
- }
- else
- {
- elvstep = 1;
- elvcount = 0;
- }
- }
- }
- if (elvstep == 1)
- {
- elvcount++;
- if (elvcount % 4 == 0)
- {
- if (rp != 9)
- {
- if (game[x.Hrp + 4][x.Hcp + 2] == '@')
- {
- x.Hrp--, x.dir2 = -1;
- }
- rp--;
- }
- else
- {
- elvstep = 2;
- elvcount = 1;
- }
- }
- }
- if (elvstep == 2)
- {
- elvcount++;
- if (elvcount % 4 == 0)
- {
- elvstep = 3;
- elvcount = 0;
- }
- }
- if (elvstep == 3)
- {
- elvcount++;
- if (elvcount % 4 == 0)
- {
- elvstep = 4;
- elvcount = 0;
- }
- }
- if (elvstep == 4)
- {
- elvcount++;
- if (elvcount % 4 == 0)
- {
- elvstep = 0;
- elvcount = 1;
- }
- }
- }
- }
- };
- class Portal
- {
- public:
- char sprite = 177;
- int rp = 15;
- int cp = 77;
- int trigger = 0; int intertrig = 0;
- char portinter[10] = { '[','I',']',' ','P','o','r','t','a','l' };
- void draw(char lvl[][400], Player &x)
- {
- if (trigger == 1)
- {
- if (x.reset == 1)
- {
- trigger = 0;
- }
- }
- if (trigger == 1)
- {
- lvl[rp + 1][cp] = sprite;
- lvl[rp + 2][cp] = sprite;
- lvl[rp + 3][cp] = sprite;
- lvl[rp + 1][cp - 1] = sprite;
- lvl[rp + 2][cp - 1] = sprite;
- lvl[rp + 3][cp - 1] = sprite;
- lvl[rp + 1][cp - 2] = sprite;
- lvl[rp + 2][cp - 2] = sprite;
- lvl[rp + 3][cp - 2] = sprite;
- lvl[rp + 1][cp - 3] = sprite;
- lvl[rp + 2][cp - 3] = sprite;
- lvl[rp + 3][cp - 3] = sprite;
- }
- }
- void interact(char game[][400], Player &x)
- {
- if (x.Hcp >= cp - 8 && x.Hcp <= cp && x.Hrp <= rp + 1 && x.Hrp >= rp - 1)
- {
- int ct2 = 0;
- intertrig = 1;
- for (int i = (cp - 9); i < (cp + 1); i++)
- {
- game[rp - 1][i] = portinter[0 + ct2];
- ct2++;
- }
- }
- else
- {
- intertrig = 0;
- }
- }
- };
- class Ladder
- {
- public:
- char sprite[2] = { '|','_' };
- int rp = 15;
- int cp = 60;
- char portinter[10] = { '[','W',']',' ','L','a','d','d','e','r' };
- void draw(char lvl[][400], Player &x)
- {
- lvl[rp][cp] = sprite[0];
- lvl[rp + 1][cp] = sprite[0];
- lvl[rp + 2][cp] = sprite[0];
- lvl[rp + 3][cp] = sprite[0];
- lvl[rp][cp + 3] = sprite[0];
- lvl[rp + 1][cp + 3] = sprite[0];
- lvl[rp + 2][cp + 3] = sprite[0];
- lvl[rp + 3][cp + 3] = sprite[0];
- lvl[rp][cp + 1] = sprite[1];
- lvl[rp][cp + 2] = sprite[1];
- lvl[rp + 1][cp + 1] = sprite[1];
- lvl[rp + 1][cp + 2] = sprite[1];
- lvl[rp + 2][cp + 1] = sprite[1];
- lvl[rp + 2][cp + 2] = sprite[1];
- }
- void interact(char game[][400], Player &x)
- {
- if (x.Hcp >= cp - 3 && x.Hcp <= cp + 3 && x.Hrp <= rp + 1 && x.Hrp >= rp - 4)
- {
- int ct2 = 0;
- x.ladtrig = 1;
- for (int i = (cp - 9); i < (cp + 1); i++)
- {
- game[rp - 1][i] = portinter[0 + ct2];
- ct2++;
- }
- }
- else
- {
- x.ladtrig = 0;
- }
- }
- };
- class BossGhost
- {
- public:
- char sprite[4] = { '_','|','-','-' };
- char rocksprite = 233;
- int rp = 9; int cp = 60;
- int trigger = 0;
- int steps = 0; int steps2 = 0; int step3 = 0;
- int count = 0;
- int rrp = 0; int rcp = 0;
- int firetrigger = 0; int catapultrig = 1;
- int gravity = 0;
- void draw(char game[][400], Player &x)
- {
- sprite[2] = 220; sprite[3] = 186;
- if (trigger == 1)
- {
- if (x.reset == 1)
- {
- trigger = 0;
- }
- }
- if (trigger == 1)
- {
- game[rp][cp] = sprite[0]; //head
- game[rp][cp + 1] = sprite[0]; //head
- game[rp][cp + 2] = sprite[0]; //head
- game[rp][cp + 3] = sprite[0]; //head
- game[rp][cp + 4] = sprite[0]; //head
- game[rp][cp + 5] = sprite[0]; //head
- game[rp][cp + 6] = sprite[0]; //head
- game[rp][cp + 7] = sprite[0]; //head
- game[rp][cp + 8] = sprite[0]; //head
- game[rp][cp + 9] = sprite[0]; //head
- game[rp + 1][cp - 1] = sprite[1]; //head
- game[rp + 1][cp + 10] = sprite[1]; //head
- game[rp + 2][cp - 1] = sprite[1]; //head
- game[rp + 2][cp + 2] = sprite[2]; //left eye
- game[rp + 2][cp + 3] = sprite[2]; //left eye
- game[rp + 2][cp + 6] = sprite[2]; //right eye
- game[rp + 2][cp + 7] = sprite[2]; //right eye
- game[rp + 2][cp + 10] = sprite[1]; //head
- game[rp + 3][cp - 1] = sprite[1]; //head
- game[rp + 3][cp + 2] = sprite[3]; //tear left
- game[rp + 3][cp + 7] = sprite[3]; //tear right
- game[rp + 3][cp + 10] = sprite[1]; //head
- game[rp + 4][cp - 1] = sprite[1]; //head
- game[rp + 4][cp + 4] = sprite[2]; //mouth
- game[rp + 4][cp + 5] = sprite[2]; //mouth
- game[rp + 4][cp + 10] = sprite[1]; //head
- game[rp + 5][cp - 1] = sprite[1]; //head
- game[rp + 5][cp] = sprite[0]; //head
- game[rp + 5][cp + 1] = sprite[0]; //head
- game[rp + 5][cp + 2] = sprite[0]; //head
- game[rp + 5][cp + 3] = sprite[0]; //head
- game[rp + 5][cp + 4] = sprite[0]; //head
- game[rp + 5][cp + 5] = sprite[0]; //head
- game[rp + 5][cp + 6] = sprite[0]; //head
- game[rp + 5][cp + 7] = sprite[0]; //head
- game[rp + 5][cp + 8] = sprite[0]; //head
- game[rp + 5][cp + 9] = sprite[0]; //head
- game[rp + 5][cp + 10] = sprite[1]; //head
- game[rp + 6][cp - 1] = sprite[1]; //arm1
- game[rp + 6][cp + 1] = sprite[1]; //arm1
- game[rp + 6][cp + 2] = sprite[1]; //arm2
- game[rp + 6][cp + 4] = sprite[1]; //arm2
- game[rp + 6][cp + 5] = sprite[1]; //arm3
- game[rp + 6][cp + 6] = sprite[0]; //arm3
- game[rp + 6][cp + 7] = sprite[1]; //arm3
- game[rp + 6][cp + 8] = sprite[1]; //arm4
- game[rp + 6][cp + 10] = sprite[1]; //arm4
- game[rp + 7][cp - 1] = sprite[1]; //arm1
- game[rp + 7][cp] = sprite[0]; //arm1
- game[rp + 7][cp + 1] = sprite[1]; //arm1
- game[rp + 7][cp + 2] = sprite[1]; //arm2
- game[rp + 7][cp + 4] = sprite[1]; //arm2
- game[rp + 7][cp + 8] = sprite[1]; //arm4
- game[rp + 7][cp + 9] = sprite[0]; //arm4
- game[rp + 7][cp + 10] = sprite[1]; //arm4
- game[rp + 8][cp + 2] = sprite[1]; //arm2
- game[rp + 8][cp + 4] = sprite[1]; //arm2
- game[rp + 8][cp + 3] = sprite[0]; //arm2
- }
- }
- void move()
- {
- if (trigger != 0)
- {
- if (steps < 8)
- {
- count++;
- if (count % 2 == 0)
- {
- cp--;
- steps++;
- }
- }
- if (steps < 16 && steps >= 8)
- {
- count--;
- if (count % 2 == 0)
- {
- steps++;
- cp++;
- }
- }
- if (steps >= 16)
- {
- steps = 0;
- }
- if (steps2 < 4)
- {
- count++;
- if (count % 4 == 0)
- {
- rp--;
- steps2++;
- }
- }
- if (steps2 < 8 && steps2 >= 4)
- {
- count--;
- if (count % 4 == 0)
- {
- steps2++;
- rp++;
- }
- }
- if (steps2 >= 8)
- {
- steps2 = 0;
- }
- }
- }
- void attk(char view[][80], char game[][400], Player &x)
- {
- //Trigger Shooting
- if (trigger == 1 && firetrigger == 0)
- {
- rrp = rp + 4;
- rcp = cp - 4;
- firetrigger = 1;
- }
- //bullet firing
- if (firetrigger == 1)
- {
- game[rrp][rcp] = rocksprite;
- if (game[rrp][rcp - 1] == ' ' && view[rrp][rcp - 1] == ' ')
- {
- rcp--;
- }
- else
- {
- firetrigger = 0;
- }
- }
- //bullet catapult
- if (firetrigger != 0 && catapultrig == 1)
- {
- if (step3 < 2)
- {
- count++;
- if (count % 2 == 0)
- {
- rrp--;
- step3++;
- }
- }
- else
- {
- step3 = 0; count = 0; catapultrig = 0;
- }
- }
- //gravity
- if (catapultrig == 0)
- {
- if (game[rrp + 1][rcp] == ' ' && view[rrp + 1][rcp] == ' ')
- {
- gravity++;
- if ((gravity %= 2) == 0)
- {
- rrp++;
- }
- }
- else
- {
- gravity = 0; catapultrig = 1;
- }
- }
- }
- };
- class Slime
- {
- public:
- char sprite[4] = { '_','|','@','-' };
- char rocksprite = 233;
- int rp = 16; int cp = 60;
- int trigger = 0;
- int steps = 0;
- int count = 0;
- int rrp = 0; int rcp = 0;
- int firetrigger = 0; int catapultrig = 1;
- int gravity = 0; int orientation = 1;
- void draw(char game[][400], Player &x)
- {
- sprite[3] = 196;
- if (trigger == 1)
- {
- if (x.reset == 1)
- {
- trigger = 0;
- }
- }
- if (trigger == 1)
- {
- game[rp][cp] = sprite[0]; //head
- game[rp][cp + 1] = sprite[0]; //head
- game[rp][cp + 2] = sprite[0]; //head
- game[rp][cp + 3] = sprite[0]; //head
- game[rp + 1][cp - 1] = sprite[1]; //head
- if (orientation == 1)
- {
- game[rp + 1][cp] = sprite[2]; //eye left
- game[rp + 1][cp + 2] = sprite[2]; //eye right
- game[rp + 2][cp + 1] = sprite[3]; //mouth
- game[rp + 2][cp + 2] = sprite[0]; //head
- }
- else
- {
- game[rp + 1][cp + 1] = sprite[2]; //eye left
- game[rp + 1][cp + 3] = sprite[2]; //eye right
- game[rp + 2][cp + 2] = sprite[3]; //mouth
- game[rp + 2][cp + 1] = sprite[0]; //head
- }
- game[rp + 1][cp + 4] = sprite[1]; //head
- game[rp + 2][cp - 1] = sprite[1]; //head
- game[rp + 2][cp] = sprite[0]; //head
- game[rp + 2][cp + 3] = sprite[0]; //head
- game[rp + 2][cp + 4] = sprite[1]; //head
- }
- }
- void attk(char view[][80], char game[][400], Player &x)
- {
- //Trigger Shooting
- if (trigger == 1 && firetrigger == 0)
- {
- rrp = rp + 1;
- rcp = cp - 2;
- firetrigger = 1;
- }
- //bullet firing
- if (firetrigger == 1)
- {
- game[rrp][rcp] = rocksprite;
- if (orientation == 1)
- {
- if (game[rrp][rcp - 1] == ' ' && view[rrp][rcp - 1] == ' ')
- {
- rcp--;
- }
- else
- {
- firetrigger = 0;
- }
- }
- else
- {
- if (game[rrp][rcp + 1] == ' ' && view[rrp][rcp + 1] == ' ')
- {
- rcp++;
- }
- else
- {
- firetrigger = 0;
- }
- }
- }
- //bullet catapult
- if (firetrigger != 0 && catapultrig==1)
- {
- if (steps < 2)
- {
- count++;
- if (count % 2 == 0)
- {
- rrp--;
- steps++;
- }
- }
- else
- {
- steps = 0; count = 0; catapultrig = 0;
- }
- }
- //gravity
- if (catapultrig == 0)
- {
- if (game[rrp + 1][rcp] == ' ' && view[rrp + 1][rcp] == ' ')
- {
- gravity++;
- if ((gravity %= 2) == 0)
- {
- rrp++;
- }
- }
- else
- {
- gravity = 0; catapultrig = 1;
- }
- }
- }
- };
- void controller(char view[][80], char game[][400], char keyB, Player &x, Bullet b[], Portal kl[], Portal &k, NPC &r)
- {
- if (keyB == 'a' || keyB == 'A')
- {
- /*if (x.pistol == 0 && x.sword == 0)
- {
- if (view[x.Hrp + 1][x.Hcp - 3] != '#')
- {
- x.Hcp--, x.orientation = 1;
- x.lvldir--, x.orientation = 1;
- }
- }
- else
- {*/
- if (x.level < 2)
- {
- /*if (view[x.Hrp + 1][x.Hcp - 5] != '#')
- {*/
- x.Hcp--;
- x.lvldir--, x.orientation = 1;
- //}
- }
- else
- {
- x.Hcp--; x.orientation = 1;
- }
- }
- //}
- if (keyB == 'd' || keyB == 'D')
- {
- if (x.pistol == 0 && x.sword == 0)
- {
- /*if (view[x.Hrp + 1][x.Hcp + 6] != '#')
- {*/
- x.Hcp++;
- x.lvldir++; x.orientation = 0;
- //*}
- }
- else
- {
- if (x.level < 2)
- {
- /*if (view[x.Hrp + 1][x.Hcp + 8] != '#')
- {*/
- x.Hcp++;
- x.lvldir++; x.orientation = 0;
- //}
- }
- else
- {
- x.Hcp++; x.orientation = 0;
- }
- }
- }
- if (keyB == 'w' || keyB == 'W' || keyB == 32)
- {
- if (x.ladtrig == 1)
- {
- x.Hrp--;
- }
- else
- {
- if (x.gravity == 0)
- {
- if (x.jump_trigger == 0 && view[x.Hrp + 4][x.Hcp] == '#' || view[x.Hrp + 4][x.Hcp] == '@')
- {
- x.jump_trigger = 1;
- }
- }
- }
- }
- if (keyB == 'x' || keyB == 'X')
- {
- if (x.sword == 1 && x.swordphase==0)
- {
- x.counterphase = 1;
- }
- else
- {
- for (int j = 0; j < b[0].limiterb; j++)
- {
- if (x.pistol == 1 && b[j].firetrigger == 0)
- {
- b[j].orientation = x.orientation;
- if (x.orientation == 0)
- {
- b[j].bcp = x.Hcp + 7, b[j].brp = x.Hrp + 2;
- }
- else
- {
- b[j].bcp = x.Hcp - 4, b[j].brp = x.Hrp + 2;
- }
- b[j].firetrigger = 1;
- }
- }
- b[0].limiterb++;
- }
- }
- if (keyB == 'i' || keyB == 'I')
- {
- if (k.intertrig == 1)
- {
- x.level++; x.reset = 1;
- }
- if (x.orientation == 1)
- {
- if (kl[0].intertrig == 1)
- {
- x.Hrp = kl[1].rp; x.Hcp = kl[1].cp;
- }
- if (kl[1].intertrig == 1)
- {
- x.Hrp = kl[0].rp; x.Hcp = kl[0].cp - 3;
- }
- }
- else
- {
- if (kl[0].intertrig == 1)
- {
- x.Hrp = kl[1].rp; x.Hcp = kl[1].cp - 5;
- }
- if (kl[1].intertrig == 1)
- {
- x.Hrp = kl[0].rp; x.Hcp = kl[0].cp - 5;
- }
- }
- }
- if (keyB == 'e' || keyB == 'E' || keyB == 13)
- {
- if (x.Hcp > 20)
- {
- if (r.interact < 2)
- {
- r.interact++;
- }
- }
- }
- if (keyB == 's' || keyB == 'S')
- {
- if (x.pickup_trigger == 1)
- {
- x.pickup = 1;
- }
- }
- }
- void swordphase(Player &x, Bullet b[])
- {
- if (x.swordphase == 4)
- {
- x.counterphase = 0, x.swordphase = 0, x.money++;
- b[x.money].orientation = x.orientation;
- if (x.orientation == 0)
- {
- b[x.money].bcp = x.Hcp + 7, b[x.money].brp = x.Hrp + 2;
- }
- else
- {
- b[x.money].bcp = x.Hcp - 4, b[x.money].brp = x.Hrp + 2;
- }
- b[x.money].firetrigger = 1;
- b[0].limiterb++;
- }
- }
- void setLevels(char view[][80], char game[][400], Player &x, EnemyNPC n[], Doggie d[], Slime s[], BossGhost &h, Portal &k, Portal kl[], Elevator e[], Ladder &l, NPC &r)
- {
- if (x.level == 0)
- {
- x.trigger = 0;
- x.interact(game);
- }
- if (x.level == 1)
- {
- for (int i = 27; i < 51; i++)
- {
- game[14][i] = '#';
- }
- for (int i = 14; i < 19; i++)
- {
- game[i][50] = '#';
- }
- for (int i = 11; i < 19; i++)
- {
- game[i][73] = '#';
- }
- for (int i = 74; i < 98; i++)
- {
- game[11][i] = '#';
- }
- int g = 0;
- for (int i = 1; i < 5; i++)
- {
- game[7 + i][106 - g] = '#';
- game[7 + i][106 - (g + 1)] = '#';
- game[7 + i][106 - (g + 2)] = '#';
- game[7 + i][106 - (g + 3)] = '#';
- g += 3;
- }
- for (int i = 106; i < 130; i++)
- {
- game[7][i] = '#';
- }
- for (int i = 0; i < 19; i++)
- {
- game[i][130] = '#';
- }
- l.rp = 14; l.cp = 23;
- l.draw(game, x); l.interact(game, x);
- d[0].Dcp = 35; d[0].trigger = 1;
- d[0].draw(game, x); d[0].move();
- d[1].Drp = 9; d[1].Dcp = 84; d[1].trigger = 1;
- d[1].draw(game, x); d[1].move();
- n[0].Hrp = 10; n[0].Hcp = 45; n[0].NPC_En = 1;
- n[0].draw(game, x); n[0].attack(view, game, x);
- s[0].cp = 104; s[0].trigger = 1;
- s[0].draw(game, x); s[0].attk(view, game, x);
- e[0].cp = 66; e[0].trigger = 1;
- e[0].draw(game, x); /*e[0].elevmove(view, game, x);*/
- kl[0].trigger = 1; kl[0].rp = 3; kl[0].cp = 129;
- kl[0].draw(game, x); kl[0].interact(game, x);
- kl[1].trigger = 1; kl[1].cp = 78;
- kl[1].draw(game, x); kl[1].interact(game, x);
- k.trigger = 1; k.cp = 129;
- k.draw(game, x); k.interact(game, x);
- }
- if (x.level == 2)
- {
- for (int i = 13; i < 19; i++)
- {
- game[i][54] = '#';
- }
- for (int i = 55; i < 79; i++)
- {
- game[13][i] = '#';
- }
- for (int i = 100; i < 112; i++)
- {
- game[11][i] = '#';
- }
- for (int i = 0; i < 19; i++)
- {
- game[i][112] = '#';
- }
- for (int i = 0; i < 19; i++)
- {
- game[i][146] = '#';
- }
- s[0].cp = 40; s[0].trigger = 1;
- s[0].draw(game, x); s[0].attk(view, game, x);
- d[0].Dcp = 60; d[0].trigger = 1; d[0].orientation = 0;
- d[0].draw(game, x); d[0].move();
- d[1].Dcp = 90; d[1].trigger = 1;
- d[1].draw(game, x); d[1].move();
- n[0].Hrp = 9; n[0].Hcp = 70; n[0].NPC_En = 1;
- n[0].draw(game, x); n[0].attack(view, game, x);
- n[1].Hcp = 133; n[1].NPC_En = 1;
- n[1].draw(game, x); n[1].attack(view, game, x);
- e[0].cp = 47; e[0].trigger = 1;
- e[0].draw(game, x); /*e[0].elevmove(view, game, x);*/
- l.rp = 11; l.cp = 97;
- l.draw(game, x); l.interact(game, x);
- kl[0].trigger = 1; kl[0].rp = 7; kl[0].cp = 111;
- kl[0].draw(game, x); kl[0].interact(game, x);
- kl[1].trigger = 1; kl[1].rp = 11; kl[1].cp = 116;
- kl[1].draw(game, x); kl[1].interact(game, x);
- k.trigger = 1; k.cp = 145;
- k.draw(game, x); k.interact(game, x);
- }
- if (x.level == 3)
- {
- r.trigger = 1; r.draw(game, x);
- r.interaction(game, x); r.pickup(game, x);
- }
- if (x.level == 4)
- {
- h.trigger = 1;
- h.draw(game, x); h.move(); h.attk(view, game, x);
- }
- if (x.level == 5)
- {
- x.trigger = 0;
- x.interact(game);
- }
- }
- void setElevators(char view[][80], char game[][400], Player &x, Elevator e[])
- {
- if (x.level == 1)
- {
- e[0].elevmove(view, game, x);
- }
- if (x.level == 2)
- {
- e[0].elevmove(view, game, x);
- }
- }
- void clearmap(char view[][80], char game[][400])
- {
- for (int i = 0; i < 20; i++)
- {
- for (int j = 0; j < 80; j++)
- {
- view[i][j] = ' ';
- }
- for (int j = 0; j < 400; j++)
- {
- game[i][j] = ' ';
- }
- }
- }
- void setmap(char view[][80], char game[][400], Player &x)
- {
- //setgame2map
- for (int i = 1; i < 19; i++)
- {
- for (int j = 1; j < 79; j++)
- {
- view[i][j] = game[i][j + x.lvldir];
- }
- }
- }
- void setborders(char view[][80])
- {
- //setborders
- for (int i = 1; i < 20; i++)
- {
- view[i][0] = '#';
- }
- for (int i = 0; i < 80; i++)
- {
- view[19][i] = '#';
- }
- for (int i = 1; i < 20; i++)
- {
- view[i][79] = '#';
- }
- }
- void printgame(char view[][80], char lvl[][400], EnemyNPC n[])
- {
- system("cls");
- cout << n[2].Enlimiter << endl;
- for (int i = 0; i < 20; i++)
- {
- for (int j = 0; j < 80; j++)
- cout << view[i][j];
- cout << "\n";
- }
- cout.flush();
- Sleep(10);
- }
- int main()
- {
- char view[20][80];
- char lvl[20][400];
- Player x; Bullet b[100]; EnemyNPC n[10]; Doggie d[10]; Elevator e[5];
- Portal k; Portal kl[5]; Ladder l;
- BossGhost h; Slime s[10]; NPC r;
- setmap(view, lvl, x);
- printgame(view, lvl, n);
- for (;;)
- {
- for (; !_kbhit();)
- {
- clearmap(view, lvl);
- setborders(view);
- x.drawplayer(lvl);
- setLevels(view, lvl, x, n, d, s, h, k, kl, e, l, r);
- setmap(view, lvl, x);
- x.gravity_and_jump(view);
- setElevators(view, lvl, x, e);
- for (int j = 0; j < b[0].limiterb; j++)
- {
- swordphase(x, b);
- b[j].playerattack(view, x);
- }
- printgame(view, lvl, n);
- }
- char kb = _getch();
- controller(view, lvl, kb, x, b, kl, k, r);
- }
- system("pause");
- return 0;
- }
- //swordphase provisional fix
- //elevmove after gravity
- //still need dmg, fix bugs walls and conficts
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement