Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include<windows.h>
  4. using namespace std;
  5.  
  6. class Player
  7. {
  8. public:
  9. char sprite[7] = { '_','|','O','-','o','/','\\' };
  10. char pistolsprite[3] = { '-', '-', '-' };
  11. char swordsprite[5] = { '+','-','/','\\','-'};
  12. int Hrp = 10, dir2 = 0;
  13. int Hcp = 14, dir = 0, lvldir = 0, templvldir = 0;
  14. int orientation = 0;
  15. char healthbar = { '-' };
  16. int pistol = 1, sword = 0;
  17. int counterphase = 0, swordphase = 0;
  18. int death = 0;
  19. int health = 300;
  20. int money = 0;
  21. int kills = 0; int trigger = 1;
  22. int reward = 0;
  23. int level = 2;
  24. int levelct = 0;
  25. int reset = 0;
  26. int jump = 0, jump_trigger = 0, gravity = 0;
  27. int ladtrig = 0;
  28. int pickup_trigger = 0; int pickup = 0;
  29. char interaction1[18] = { 'C','o','n','g','r','a','t','s','!',' ','Y','o','u',' ','W','o','n','!' };
  30. char interaction2[10] = { 'G','a','m','e',' ','O','v','e','r','!' };
  31.  
  32. void drawplayer(char game[][400])
  33. {
  34. pistolsprite[0] = 203; pistolsprite[1] = 205; pistolsprite[2] = 196;
  35. swordsprite[1] = 196, swordsprite[4] = 179;
  36.  
  37. if (trigger == 1)
  38. {
  39. if (reset == 1)
  40. {
  41. Hrp = 10; Hcp = 14; lvldir = 0;
  42. reset = 0;
  43. }
  44.  
  45. //for sword animation
  46. if (counterphase != 0)
  47. {
  48. swordphase++;
  49. counterphase++;
  50. }
  51.  
  52. game[Hrp][Hcp] = sprite[0]; //head
  53. game[Hrp][Hcp + 1] = sprite[0]; //head
  54. game[Hrp][Hcp + 2] = sprite[0]; //head
  55. game[Hrp + 1][Hcp - 1] = sprite[1]; //head
  56. if (orientation == 0)
  57. {
  58. game[Hrp + 1][Hcp] = sprite[2]; //left eye
  59. }
  60. else
  61. {
  62. game[Hrp + 1][Hcp] = sprite[4]; //left eye
  63. }
  64. game[Hrp + 1][Hcp + 1] = sprite[3]; //mouth
  65. if (orientation == 0)
  66. {
  67. game[Hrp + 1][Hcp + 2] = sprite[4]; //right eye
  68. }
  69. else
  70. {
  71. game[Hrp + 1][Hcp + 2] = sprite[2]; //right eye
  72. }
  73. game[Hrp + 1][Hcp + 3] = sprite[1]; //head
  74. game[Hrp + 2][Hcp - 2] = sprite[5]; //left arm
  75. game[Hrp + 2][Hcp - 1] = sprite[1]; //body
  76. game[Hrp + 2][Hcp] = sprite[0]; //body
  77. game[Hrp + 2][Hcp + 1] = sprite[0]; //body
  78. game[Hrp + 2][Hcp + 2] = sprite[0]; //body
  79. game[Hrp + 2][Hcp + 3] = sprite[1]; //body
  80. game[Hrp + 2][Hcp + 4] = sprite[6]; //right arm
  81. game[Hrp + 3][Hcp] = sprite[1]; //left leg
  82. game[Hrp + 3][Hcp + 2] = sprite[1]; //right leg
  83.  
  84. if (pistol == 1)
  85. {
  86. if (orientation == 0)
  87. {
  88. game[Hrp + 2][Hcp + 4] = pistolsprite[0]; //pistol handle
  89. game[Hrp + 2][Hcp + 5] = pistolsprite[1]; //pistol body
  90. game[Hrp + 2][Hcp + 6] = pistolsprite[2]; //pistol body
  91. }
  92. else
  93. {
  94. game[Hrp + 2][Hcp - 2] = pistolsprite[0]; //pistol handle
  95. game[Hrp + 2][Hcp - 3] = pistolsprite[1]; //pistol body
  96. game[Hrp + 2][Hcp - 4] = pistolsprite[2]; //pistol body
  97. }
  98.  
  99. }
  100.  
  101. if (sword == 1)
  102. {
  103. if (swordphase == 0)
  104. {
  105. if (orientation == 0)
  106. {
  107. game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
  108. game[Hrp + 2][Hcp + 5] = swordsprite[1]; //sword body
  109. game[Hrp + 2][Hcp + 6] = swordsprite[1]; //sword body
  110. }
  111. else
  112. {
  113. game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
  114. game[Hrp + 2][Hcp - 3] = swordsprite[1]; //sword body
  115. game[Hrp + 2][Hcp - 4] = swordsprite[1]; //sword body
  116. }
  117. }
  118. if (swordphase == 1)
  119. {
  120. if (orientation == 0)
  121. {
  122. game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
  123. game[Hrp + 1][Hcp + 5] = swordsprite[2]; //sword body
  124. }
  125. else
  126. {
  127. game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
  128. game[Hrp + 1][Hcp - 3] = swordsprite[3]; //sword body
  129. }
  130. }
  131. if (swordphase == 2)
  132. {
  133. if (orientation == 0)
  134. {
  135. game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
  136. game[Hrp + 1][Hcp + 4] = swordsprite[4]; //sword body
  137. }
  138. else
  139. {
  140. game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
  141. game[Hrp + 1][Hcp - 2] = swordsprite[4]; //sword body
  142. }
  143. }
  144. if (swordphase == 3)
  145. {
  146. if (orientation == 0)
  147. {
  148. game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
  149. game[Hrp + 1][Hcp + 5] = swordsprite[2]; //sword body
  150. }
  151. else
  152. {
  153. game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
  154. game[Hrp + 1][Hcp - 3] = swordsprite[3]; //sword body
  155. }
  156. }
  157. if (swordphase == 4)
  158. {
  159. if (orientation == 0)
  160. {
  161. game[Hrp + 2][Hcp + 4] = swordsprite[0]; //sword handle
  162. game[Hrp + 2][Hcp + 5] = swordsprite[1]; //sword body
  163. game[Hrp + 2][Hcp + 6] = swordsprite[1]; //sword body
  164. }
  165. else
  166. {
  167. game[Hrp + 2][Hcp - 2] = swordsprite[0]; //sword handle
  168. game[Hrp + 2][Hcp - 3] = swordsprite[1]; //sword body
  169. game[Hrp + 2][Hcp - 4] = swordsprite[1]; //sword body
  170. }
  171.  
  172. }
  173.  
  174. }
  175. }
  176. }
  177. void gravity_and_jump(char view[][80])
  178. {
  179. if (view[Hrp + 4][Hcp] != '#' && view[Hrp + 4][Hcp] != '@' && ladtrig==0 )
  180. {
  181. if (jump_trigger == 0)
  182. {
  183. gravity++;
  184.  
  185. if ((gravity %= 2) == 0)
  186. {
  187. Hrp++;
  188. }
  189. }
  190. else
  191. {
  192. gravity = 0;
  193. }
  194. }
  195. else
  196. {
  197. gravity = 0;
  198. }
  199. if (view[Hrp - 1][Hcp] != '#')
  200. {
  201. if (jump_trigger == 1)
  202. {
  203. jump++;
  204.  
  205. if (jump == 2)
  206. {
  207. Hrp--;
  208. }
  209. if (jump == 4)
  210. {
  211. Hrp--;
  212. }
  213. if (jump == 6)
  214. {
  215. Hrp--;
  216. jump_trigger++;
  217. }
  218. }
  219. if (jump_trigger == 2)
  220. {
  221. jump++;
  222. if (jump == 9)
  223. {
  224. jump_trigger = 0;
  225. jump = 0;
  226. }
  227.  
  228. }
  229. }
  230. else
  231. {
  232. jump_trigger = 0;
  233. }
  234. }
  235. void interact(char game[][400])
  236. {
  237. int ct = 0;
  238. for (int i = 15; i < 65; i++)
  239. {
  240. game[7][i] = '-';
  241. game[9][i] = '-';
  242. }
  243. game[8][15] = '>';
  244. if (level == 5)
  245. {
  246. for (int i = 30; i < 48; i++)
  247. {
  248. game[8][i] = interaction1[0 + ct];
  249. ct++;
  250. }
  251. }
  252. else
  253. {
  254. for (int i = 35; i < 45; i++)
  255. {
  256. game[8][i] = interaction2[0 + ct];
  257. ct++;
  258. }
  259. }
  260. }
  261. };
  262.  
  263. class Bullet
  264. {
  265. public:
  266. int brp = 0, bcp = 0, firetrigger = 0, orientation = 0, damage = 0;
  267. int speed = 1, damage_multiplier = 1;
  268. char Bsprite = '>';
  269. int limiterb = 1;
  270.  
  271. void playerattack(char game[][80], Player &x)
  272. {
  273. if (firetrigger == 0)
  274. {
  275. if (x.orientation == 0)
  276. {
  277. if (x.sword != 1)
  278. {
  279. Bsprite = '>';
  280. }
  281. else
  282. {
  283. x.reward = 1;
  284. Bsprite = ')';
  285. }
  286. }
  287. else
  288. {
  289. if (x.sword != 1)
  290. {
  291. Bsprite = '<';
  292. }
  293. else
  294. {
  295. x.reward = 2;
  296. Bsprite = '(';
  297. }
  298. }
  299. }
  300.  
  301. if (firetrigger == 1 && game[brp][bcp + 1] != '#' || game[brp][bcp - 1] == '#')
  302. {
  303.  
  304. if (orientation == 0)
  305. {
  306. bcp++;
  307. }
  308. else
  309. {
  310. bcp--;
  311. }
  312. if (x.sword == 0)
  313. {
  314. game[brp][bcp] = Bsprite;
  315. }
  316. else
  317. {
  318. game[brp][bcp] = Bsprite;
  319. game[brp][bcp - 1] = Bsprite;
  320. }
  321.  
  322.  
  323. }
  324. else
  325. {
  326. firetrigger = 0;
  327. }
  328. }
  329. };
  330.  
  331. class NPC
  332. {
  333. public:
  334. int Hrp = 15;
  335. int Hcp = 40;
  336. char sprite[8] = { '_','|','O','_','o','/','\\', '-' };
  337. int trigger = 0;
  338. char interact_draw[12] = { '[','E',']',' ','I','n','t','e','r','a','c','t' };
  339. char pickup_draw[10] = { '[','S',']',' ','P','i','c','k','u','p' };
  340. int interact = 0, interact_trigger = 0;
  341. 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' };
  342. 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' };
  343. 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' };
  344.  
  345. void draw(char game[][400], Player &x)
  346. {
  347. sprite[2] = 169, sprite[4] = 170, sprite[7] = 244;
  348.  
  349. if (trigger == 1)
  350. {
  351. if (x.reset == 1)
  352. {
  353. trigger = 0;
  354. }
  355. }
  356. if (trigger == 1)
  357. {
  358. game[Hrp][Hcp] = sprite[0]; //head
  359. game[Hrp][Hcp + 1] = sprite[0]; //head
  360. game[Hrp][Hcp + 2] = sprite[0]; //head
  361. game[Hrp + 1][Hcp - 1] = sprite[1]; //head
  362. game[Hrp + 1][Hcp] = sprite[2]; //left eye
  363. game[Hrp + 1][Hcp + 1] = sprite[3]; //mouth
  364. game[Hrp + 1][Hcp + 2] = sprite[4]; //right eye
  365. game[Hrp + 1][Hcp + 3] = sprite[1]; //head
  366. game[Hrp + 2][Hcp - 2] = sprite[5]; //left arm
  367. game[Hrp + 2][Hcp - 1] = sprite[1]; //body
  368. game[Hrp + 2][Hcp] = sprite[0]; //body
  369. game[Hrp + 2][Hcp + 1] = sprite[0]; //body
  370. game[Hrp + 2][Hcp + 2] = sprite[0]; //body
  371. game[Hrp + 2][Hcp + 3] = sprite[1]; //body
  372. game[Hrp + 2][Hcp + 4] = sprite[6]; //right arm
  373. game[Hrp + 3][Hcp] = sprite[1]; //left leg
  374. game[Hrp + 3][Hcp + 2] = sprite[1]; //right leg
  375. game[Hrp + 3][Hcp - 3] = sprite[7]; //thingy
  376. }
  377. }
  378. void interaction(char game[][400], Player &x)
  379. {
  380. int ct = 0;
  381. int ct2 = 0;
  382.  
  383. if (x.Hcp > 25 && x.Hcp < 50)
  384. {
  385. for (int i = Hcp - 5; i < Hcp + 7; i++)
  386. {
  387. game[Hrp - 1][i] = interact_draw[0 + ct2];
  388. ct2++;
  389. }
  390. for (int i = 15; i < 65; i++)
  391. {
  392. game[7][i] = '-';
  393. game[9][i] = '-';
  394. }
  395. game[8][15] = '>';
  396. if (interact == 0)
  397. {
  398. for (int i = 17; i < 50; i++)
  399. {
  400. game[8][i] = interaction1[0 + ct];
  401. ct++;
  402. }
  403. }
  404. else if (interact == 1)
  405. {
  406. for (int i = 17; i < 43; i++)
  407. {
  408. game[8][i] = interaction2[0 + ct];
  409. ct++;
  410. }
  411. }
  412. else if (interact == 2)
  413. {
  414. for (int i = 17; i < 45; i++)
  415. {
  416. game[8][i] = interaction3[0 + ct];
  417. ct++;
  418. for (int j = 46; j < 65; j++)
  419. {
  420. game[8][j] = ' ';
  421. }
  422. }
  423. }
  424. }
  425. }
  426. void pickup(char game[][400], Player &x)
  427. {
  428. int ct = 0, picked = 0;
  429. if (x.Hcp > 60 && x.Hcp < 80 && x.level == 3)
  430. {
  431. x.pickup_trigger = 1;
  432. for (int i = 65; i < 75; i++)
  433. {
  434. game[16][i] = pickup_draw[0 + ct];
  435. ct++;
  436. }
  437. }
  438. if (x.level == 3)
  439. {
  440. game[18][70] = x.swordsprite[0];
  441. game[18][71] = x.swordsprite[1];
  442. game[18][72] = x.swordsprite[1];
  443. }
  444. if (x.pickup == 1)
  445. {
  446. picked = 1;
  447. x.sword = 1; x.pistol = 0;
  448. x.pickup = 0;
  449. }
  450. if (picked == 1)
  451. {
  452. x.level++;
  453. x.reset = 1;
  454. }
  455. }
  456. };
  457.  
  458. class EnemyNPC
  459. {
  460. public:
  461. //Enemy NPC
  462. int Hrp = 15;
  463. int Hcp = 70;
  464. int orientation = 1;
  465. char sprite[8] = { '_','|','@','-','@','c','\\','-' };
  466. char pistolsprite[3] = { '-','-','-' };
  467. int NPC_En = 0;
  468. int Enlimiter = 0;
  469. int brp = 0, bcp = 0, firetrigger = 0;
  470. char Bsprite = 'o';
  471.  
  472. void draw(char game[][400], Player &x)
  473. {
  474. sprite[6] = 203; sprite[7] = 244;
  475. pistolsprite[0] = 203; pistolsprite[1] = 205; pistolsprite[2] = 196;
  476.  
  477. if (NPC_En == 1)
  478. {
  479. if (x.reset == 1)
  480. {
  481. NPC_En = 0;
  482. }
  483. }
  484. if (NPC_En == 1)
  485. {
  486. game[Hrp][Hcp] = sprite[0]; //head
  487. game[Hrp][Hcp + 1] = sprite[6]; //head
  488. game[Hrp][Hcp + 2] = sprite[0]; //head
  489. game[Hrp + 1][Hcp - 1] = sprite[1]; //head
  490. if (orientation == 0)
  491. {
  492. game[Hrp + 1][Hcp] = sprite[2]; //left eye
  493. }
  494. else
  495. {
  496. game[Hrp + 1][Hcp] = sprite[4]; //left eye
  497. }
  498. game[Hrp + 1][Hcp + 1] = sprite[3]; //mouth
  499. if (orientation == 0)
  500. {
  501. game[Hrp + 1][Hcp + 2] = sprite[4]; //right eye
  502. }
  503. else
  504. {
  505. game[Hrp + 1][Hcp + 2] = sprite[2]; //right eye
  506. }
  507. game[Hrp + 1][Hcp + 3] = sprite[1]; //head
  508. game[Hrp + 2][Hcp - 2] = sprite[5]; //left arm
  509. game[Hrp + 2][Hcp - 1] = sprite[1]; //body
  510. game[Hrp + 2][Hcp] = sprite[0]; //body
  511. game[Hrp + 2][Hcp + 1] = sprite[0]; //body
  512. game[Hrp + 2][Hcp + 2] = sprite[0]; //body
  513. game[Hrp + 2][Hcp + 3] = sprite[1]; //body
  514. game[Hrp + 2][Hcp + 4] = sprite[5]; //right arm
  515. game[Hrp + 3][Hcp] = sprite[7]; //left leg
  516. game[Hrp + 3][Hcp + 2] = sprite[7]; //right leg
  517.  
  518. if (orientation == 0)
  519. {
  520. game[Hrp + 2][Hcp + 5] = pistolsprite[0]; //pistol handle
  521. game[Hrp + 2][Hcp + 6] = pistolsprite[1]; //pistol body
  522. game[Hrp + 2][Hcp + 7] = pistolsprite[2]; //pistol body
  523. }
  524. else
  525. {
  526. game[Hrp + 2][Hcp - 3] = pistolsprite[0]; //pistol handle
  527. game[Hrp + 2][Hcp - 4] = pistolsprite[1]; //pistol body
  528. game[Hrp + 2][Hcp - 5] = pistolsprite[2]; //pistol body
  529. }
  530. }
  531. }
  532. void attack(char view[][80], char game[][400], Player &x)
  533. {
  534.  
  535. //Trigger Shooting
  536. if (NPC_En == 1 && firetrigger == 0)
  537. {
  538. if (orientation == 1)
  539. {
  540. brp = Hrp + 2;
  541. bcp = Hcp - 5;
  542. }
  543. else
  544. {
  545. brp = Hrp + 2;
  546. bcp = Hcp + 7;
  547. }
  548. firetrigger = 1;
  549. }
  550.  
  551. //Enemy bullet firing
  552. if (firetrigger == 1)
  553. {
  554. game[brp][bcp] = Bsprite;
  555. if (orientation == 1)
  556. {
  557. if (game[brp][bcp - 1] == ' ' && view[brp][bcp - 1] == ' ')
  558. {
  559. bcp--;
  560. }
  561. else
  562. {
  563. firetrigger = 0;
  564. }
  565. }
  566. else
  567. {
  568. if (game[brp][bcp + 1] == ' ' && view[brp][bcp + 1] == ' ')
  569. {
  570. bcp++;
  571. }
  572. else
  573. {
  574. firetrigger = 0;
  575. }
  576. }
  577. }
  578. }
  579. };
  580.  
  581. class Doggie
  582. {
  583. public:
  584. //Enemy Dog
  585. int Drp = 17;
  586. int Dcp = 57, Ddir = 0;
  587. char dsprite[11] = { '-', '-','-','_','_','_','/','/' };
  588. int trigger = 0;
  589. int orientation = 1;
  590. int En_Dlimiter = 0;
  591. int Dcount = 0;
  592. int steps = 0;
  593.  
  594. void draw(char game[][400], Player &x)
  595. {
  596. dsprite[1] = 205, dsprite[2] = 202, dsprite[7] = 173;
  597. if (trigger == 1)
  598. {
  599. if (x.reset == 1)
  600. {
  601. trigger = 0;
  602. }
  603. }
  604. if (trigger == 1)
  605. {
  606. if (orientation == 1)
  607. {
  608. game[Drp][Dcp] = dsprite[0]; //nose
  609. game[Drp][Dcp + 1] = dsprite[1]; //face
  610. game[Drp][Dcp + 2] = dsprite[2]; //ears
  611. game[Drp][Dcp + 3] = dsprite[3]; //body
  612. game[Drp][Dcp + 4] = dsprite[4]; //body
  613. game[Drp][Dcp + 5] = dsprite[5]; //body
  614. game[Drp][Dcp + 6] = dsprite[6]; //tail
  615. game[Drp + 1][Dcp + 3] = dsprite[7]; //left leg
  616. //game[d[1].Drp + 1][z.Dcp + 4] = z.dsprite[8]; (when running)
  617. game[Drp + 1][Dcp + 5] = dsprite[7]; // right leg
  618. //game[d[1].Drp + 1][z.Dcp + 6] = z.dsprite[10]; (when running)
  619. }
  620. else
  621. {
  622. game[Drp][Dcp + 6] = dsprite[0]; //nose
  623. game[Drp][Dcp + 5] = dsprite[1]; //face
  624. game[Drp][Dcp + 4] = dsprite[2]; //ears
  625. game[Drp][Dcp + 3] = dsprite[3]; //body
  626. game[Drp][Dcp + 2] = dsprite[4]; //body
  627. game[Drp][Dcp + 1] = dsprite[5]; //body
  628. game[Drp][Dcp] = '\\'; //tail
  629. game[Drp + 1][Dcp + 3] = dsprite[7]; //left leg
  630. //game[d[1].Drp + 1][z.Dcp + 4] = z.dsprite[8]; (when running)
  631. game[Drp + 1][Dcp + 1] = dsprite[7]; // right leg
  632. //game[d[1].Drp + 1][z.Dcp + 6] = z.dsprite[10]; (when running)
  633. }
  634. }
  635. }
  636. void move()
  637. {
  638. if (trigger != 0)
  639. {
  640. if (steps < 8)
  641. {
  642. orientation = 1;
  643. Dcount++;
  644. if (Dcount % 2 == 0)
  645. {
  646. Dcp--;
  647. steps++;
  648. }
  649. }
  650. if (steps < 16 && steps >= 8)
  651. {
  652. orientation = 0;
  653. Dcount--;
  654. if (Dcount % 2 == 0)
  655. {
  656. steps++;
  657. Dcp++;
  658. }
  659. }
  660. if (steps >= 16)
  661. {
  662. steps = 0;
  663. }
  664. }
  665. }
  666. };
  667.  
  668. class Elevator
  669. {
  670. public:
  671. char sprite = '@';
  672. int rp = 18, elvdir = 0;
  673. int cp = 70;
  674. int trigger = 0;
  675. int elvcount = 0;
  676. int elvstep = 0;
  677.  
  678. void draw(char lvl[][400], Player &x)
  679. {
  680. if (trigger == 1)
  681. {
  682. if (x.reset == 1)
  683. {
  684. trigger = 0;
  685. }
  686. }
  687. if (trigger == 1)
  688. {
  689. lvl[rp][cp] = sprite;
  690. lvl[rp][cp + 1] = sprite;
  691. lvl[rp][cp + 2] = sprite;
  692. lvl[rp][cp + 3] = sprite;
  693. }
  694. }
  695. void elevmove(char game[][80], char lvl[][400], Player &x)
  696. {
  697. if (trigger != 0)
  698. {
  699. if (elvstep == 0)
  700. {
  701. elvcount++;
  702. if (elvcount % 4 == 0)
  703. {
  704. if (rp != 18)
  705. {
  706. if (game[x.Hrp + 4][x.Hcp + 2] == '@')
  707. {
  708. x.Hrp++, x.dir2 = 1;
  709. }
  710. rp++;
  711. }
  712. else
  713. {
  714. elvstep = 1;
  715. elvcount = 0;
  716. }
  717. }
  718. }
  719. if (elvstep == 1)
  720. {
  721. elvcount++;
  722. if (elvcount % 4 == 0)
  723. {
  724. if (rp != 9)
  725. {
  726. if (game[x.Hrp + 4][x.Hcp + 2] == '@')
  727. {
  728. x.Hrp--, x.dir2 = -1;
  729. }
  730. rp--;
  731. }
  732. else
  733. {
  734. elvstep = 2;
  735. elvcount = 1;
  736. }
  737. }
  738. }
  739. if (elvstep == 2)
  740. {
  741. elvcount++;
  742. if (elvcount % 4 == 0)
  743. {
  744. elvstep = 3;
  745. elvcount = 0;
  746. }
  747. }
  748. if (elvstep == 3)
  749. {
  750. elvcount++;
  751. if (elvcount % 4 == 0)
  752. {
  753. elvstep = 4;
  754. elvcount = 0;
  755. }
  756. }
  757. if (elvstep == 4)
  758. {
  759. elvcount++;
  760. if (elvcount % 4 == 0)
  761. {
  762. elvstep = 0;
  763. elvcount = 1;
  764. }
  765. }
  766. }
  767. }
  768. };
  769.  
  770. class Portal
  771. {
  772. public:
  773. char sprite = 177;
  774. int rp = 15;
  775. int cp = 77;
  776. int trigger = 0; int intertrig = 0;
  777. char portinter[10] = { '[','I',']',' ','P','o','r','t','a','l' };
  778.  
  779. void draw(char lvl[][400], Player &x)
  780. {
  781. if (trigger == 1)
  782. {
  783. if (x.reset == 1)
  784. {
  785. trigger = 0;
  786. }
  787. }
  788. if (trigger == 1)
  789. {
  790. lvl[rp + 1][cp] = sprite;
  791. lvl[rp + 2][cp] = sprite;
  792. lvl[rp + 3][cp] = sprite;
  793. lvl[rp + 1][cp - 1] = sprite;
  794. lvl[rp + 2][cp - 1] = sprite;
  795. lvl[rp + 3][cp - 1] = sprite;
  796. lvl[rp + 1][cp - 2] = sprite;
  797. lvl[rp + 2][cp - 2] = sprite;
  798. lvl[rp + 3][cp - 2] = sprite;
  799. lvl[rp + 1][cp - 3] = sprite;
  800. lvl[rp + 2][cp - 3] = sprite;
  801. lvl[rp + 3][cp - 3] = sprite;
  802. }
  803. }
  804. void interact(char game[][400], Player &x)
  805. {
  806. if (x.Hcp >= cp - 8 && x.Hcp <= cp && x.Hrp <= rp + 1 && x.Hrp >= rp - 1)
  807. {
  808. int ct2 = 0;
  809. intertrig = 1;
  810. for (int i = (cp - 9); i < (cp + 1); i++)
  811. {
  812. game[rp - 1][i] = portinter[0 + ct2];
  813. ct2++;
  814. }
  815. }
  816. else
  817. {
  818. intertrig = 0;
  819. }
  820. }
  821. };
  822.  
  823. class Ladder
  824. {
  825. public:
  826. char sprite[2] = { '|','_' };
  827. int rp = 15;
  828. int cp = 60;
  829. char portinter[10] = { '[','W',']',' ','L','a','d','d','e','r' };
  830.  
  831. void draw(char lvl[][400], Player &x)
  832. {
  833. lvl[rp][cp] = sprite[0];
  834. lvl[rp + 1][cp] = sprite[0];
  835. lvl[rp + 2][cp] = sprite[0];
  836. lvl[rp + 3][cp] = sprite[0];
  837. lvl[rp][cp + 3] = sprite[0];
  838. lvl[rp + 1][cp + 3] = sprite[0];
  839. lvl[rp + 2][cp + 3] = sprite[0];
  840. lvl[rp + 3][cp + 3] = sprite[0];
  841. lvl[rp][cp + 1] = sprite[1];
  842. lvl[rp][cp + 2] = sprite[1];
  843. lvl[rp + 1][cp + 1] = sprite[1];
  844. lvl[rp + 1][cp + 2] = sprite[1];
  845. lvl[rp + 2][cp + 1] = sprite[1];
  846. lvl[rp + 2][cp + 2] = sprite[1];
  847. }
  848. void interact(char game[][400], Player &x)
  849. {
  850. if (x.Hcp >= cp - 3 && x.Hcp <= cp + 3 && x.Hrp <= rp + 1 && x.Hrp >= rp - 4)
  851. {
  852. int ct2 = 0;
  853. x.ladtrig = 1;
  854. for (int i = (cp - 9); i < (cp + 1); i++)
  855. {
  856. game[rp - 1][i] = portinter[0 + ct2];
  857. ct2++;
  858. }
  859. }
  860. else
  861. {
  862. x.ladtrig = 0;
  863. }
  864. }
  865. };
  866.  
  867. class BossGhost
  868. {
  869. public:
  870. char sprite[4] = { '_','|','-','-' };
  871. char rocksprite = 233;
  872. int rp = 9; int cp = 60;
  873. int trigger = 0;
  874. int steps = 0; int steps2 = 0; int step3 = 0;
  875. int count = 0;
  876. int rrp = 0; int rcp = 0;
  877. int firetrigger = 0; int catapultrig = 1;
  878. int gravity = 0;
  879.  
  880. void draw(char game[][400], Player &x)
  881. {
  882. sprite[2] = 220; sprite[3] = 186;
  883.  
  884. if (trigger == 1)
  885. {
  886. if (x.reset == 1)
  887. {
  888. trigger = 0;
  889. }
  890. }
  891. if (trigger == 1)
  892. {
  893. game[rp][cp] = sprite[0]; //head
  894. game[rp][cp + 1] = sprite[0]; //head
  895. game[rp][cp + 2] = sprite[0]; //head
  896. game[rp][cp + 3] = sprite[0]; //head
  897. game[rp][cp + 4] = sprite[0]; //head
  898. game[rp][cp + 5] = sprite[0]; //head
  899. game[rp][cp + 6] = sprite[0]; //head
  900. game[rp][cp + 7] = sprite[0]; //head
  901. game[rp][cp + 8] = sprite[0]; //head
  902. game[rp][cp + 9] = sprite[0]; //head
  903. game[rp + 1][cp - 1] = sprite[1]; //head
  904. game[rp + 1][cp + 10] = sprite[1]; //head
  905. game[rp + 2][cp - 1] = sprite[1]; //head
  906. game[rp + 2][cp + 2] = sprite[2]; //left eye
  907. game[rp + 2][cp + 3] = sprite[2]; //left eye
  908. game[rp + 2][cp + 6] = sprite[2]; //right eye
  909. game[rp + 2][cp + 7] = sprite[2]; //right eye
  910. game[rp + 2][cp + 10] = sprite[1]; //head
  911. game[rp + 3][cp - 1] = sprite[1]; //head
  912. game[rp + 3][cp + 2] = sprite[3]; //tear left
  913. game[rp + 3][cp + 7] = sprite[3]; //tear right
  914. game[rp + 3][cp + 10] = sprite[1]; //head
  915. game[rp + 4][cp - 1] = sprite[1]; //head
  916. game[rp + 4][cp + 4] = sprite[2]; //mouth
  917. game[rp + 4][cp + 5] = sprite[2]; //mouth
  918. game[rp + 4][cp + 10] = sprite[1]; //head
  919. game[rp + 5][cp - 1] = sprite[1]; //head
  920. game[rp + 5][cp] = sprite[0]; //head
  921. game[rp + 5][cp + 1] = sprite[0]; //head
  922. game[rp + 5][cp + 2] = sprite[0]; //head
  923. game[rp + 5][cp + 3] = sprite[0]; //head
  924. game[rp + 5][cp + 4] = sprite[0]; //head
  925. game[rp + 5][cp + 5] = sprite[0]; //head
  926. game[rp + 5][cp + 6] = sprite[0]; //head
  927. game[rp + 5][cp + 7] = sprite[0]; //head
  928. game[rp + 5][cp + 8] = sprite[0]; //head
  929. game[rp + 5][cp + 9] = sprite[0]; //head
  930. game[rp + 5][cp + 10] = sprite[1]; //head
  931. game[rp + 6][cp - 1] = sprite[1]; //arm1
  932. game[rp + 6][cp + 1] = sprite[1]; //arm1
  933. game[rp + 6][cp + 2] = sprite[1]; //arm2
  934. game[rp + 6][cp + 4] = sprite[1]; //arm2
  935. game[rp + 6][cp + 5] = sprite[1]; //arm3
  936. game[rp + 6][cp + 6] = sprite[0]; //arm3
  937. game[rp + 6][cp + 7] = sprite[1]; //arm3
  938. game[rp + 6][cp + 8] = sprite[1]; //arm4
  939. game[rp + 6][cp + 10] = sprite[1]; //arm4
  940. game[rp + 7][cp - 1] = sprite[1]; //arm1
  941. game[rp + 7][cp] = sprite[0]; //arm1
  942. game[rp + 7][cp + 1] = sprite[1]; //arm1
  943. game[rp + 7][cp + 2] = sprite[1]; //arm2
  944. game[rp + 7][cp + 4] = sprite[1]; //arm2
  945. game[rp + 7][cp + 8] = sprite[1]; //arm4
  946. game[rp + 7][cp + 9] = sprite[0]; //arm4
  947. game[rp + 7][cp + 10] = sprite[1]; //arm4
  948. game[rp + 8][cp + 2] = sprite[1]; //arm2
  949. game[rp + 8][cp + 4] = sprite[1]; //arm2
  950. game[rp + 8][cp + 3] = sprite[0]; //arm2
  951. }
  952. }
  953. void move()
  954. {
  955. if (trigger != 0)
  956. {
  957. if (steps < 8)
  958. {
  959. count++;
  960. if (count % 2 == 0)
  961. {
  962. cp--;
  963. steps++;
  964. }
  965. }
  966. if (steps < 16 && steps >= 8)
  967. {
  968. count--;
  969. if (count % 2 == 0)
  970. {
  971. steps++;
  972. cp++;
  973. }
  974. }
  975. if (steps >= 16)
  976. {
  977. steps = 0;
  978. }
  979.  
  980.  
  981. if (steps2 < 4)
  982. {
  983. count++;
  984. if (count % 4 == 0)
  985. {
  986. rp--;
  987. steps2++;
  988. }
  989. }
  990. if (steps2 < 8 && steps2 >= 4)
  991. {
  992. count--;
  993. if (count % 4 == 0)
  994. {
  995. steps2++;
  996. rp++;
  997. }
  998. }
  999. if (steps2 >= 8)
  1000. {
  1001. steps2 = 0;
  1002. }
  1003. }
  1004. }
  1005. void attk(char view[][80], char game[][400], Player &x)
  1006. {
  1007. //Trigger Shooting
  1008. if (trigger == 1 && firetrigger == 0)
  1009. {
  1010. rrp = rp + 4;
  1011. rcp = cp - 4;
  1012. firetrigger = 1;
  1013. }
  1014.  
  1015. //bullet firing
  1016. if (firetrigger == 1)
  1017. {
  1018. game[rrp][rcp] = rocksprite;
  1019.  
  1020. if (game[rrp][rcp - 1] == ' ' && view[rrp][rcp - 1] == ' ')
  1021. {
  1022. rcp--;
  1023. }
  1024. else
  1025. {
  1026. firetrigger = 0;
  1027. }
  1028. }
  1029.  
  1030. //bullet catapult
  1031. if (firetrigger != 0 && catapultrig == 1)
  1032. {
  1033. if (step3 < 2)
  1034. {
  1035. count++;
  1036. if (count % 2 == 0)
  1037. {
  1038. rrp--;
  1039. step3++;
  1040. }
  1041. }
  1042. else
  1043. {
  1044. step3 = 0; count = 0; catapultrig = 0;
  1045. }
  1046. }
  1047.  
  1048. //gravity
  1049. if (catapultrig == 0)
  1050. {
  1051. if (game[rrp + 1][rcp] == ' ' && view[rrp + 1][rcp] == ' ')
  1052. {
  1053. gravity++;
  1054.  
  1055. if ((gravity %= 2) == 0)
  1056. {
  1057. rrp++;
  1058. }
  1059. }
  1060. else
  1061. {
  1062. gravity = 0; catapultrig = 1;
  1063. }
  1064. }
  1065. }
  1066. };
  1067.  
  1068. class Slime
  1069. {
  1070. public:
  1071. char sprite[4] = { '_','|','@','-' };
  1072. char rocksprite = 233;
  1073. int rp = 16; int cp = 60;
  1074. int trigger = 0;
  1075. int steps = 0;
  1076. int count = 0;
  1077. int rrp = 0; int rcp = 0;
  1078. int firetrigger = 0; int catapultrig = 1;
  1079. int gravity = 0; int orientation = 1;
  1080.  
  1081. void draw(char game[][400], Player &x)
  1082. {
  1083. sprite[3] = 196;
  1084.  
  1085. if (trigger == 1)
  1086. {
  1087. if (x.reset == 1)
  1088. {
  1089. trigger = 0;
  1090. }
  1091. }
  1092. if (trigger == 1)
  1093. {
  1094. game[rp][cp] = sprite[0]; //head
  1095. game[rp][cp + 1] = sprite[0]; //head
  1096. game[rp][cp + 2] = sprite[0]; //head
  1097. game[rp][cp + 3] = sprite[0]; //head
  1098. game[rp + 1][cp - 1] = sprite[1]; //head
  1099. if (orientation == 1)
  1100. {
  1101. game[rp + 1][cp] = sprite[2]; //eye left
  1102. game[rp + 1][cp + 2] = sprite[2]; //eye right
  1103. game[rp + 2][cp + 1] = sprite[3]; //mouth
  1104. game[rp + 2][cp + 2] = sprite[0]; //head
  1105. }
  1106. else
  1107. {
  1108. game[rp + 1][cp + 1] = sprite[2]; //eye left
  1109. game[rp + 1][cp + 3] = sprite[2]; //eye right
  1110. game[rp + 2][cp + 2] = sprite[3]; //mouth
  1111. game[rp + 2][cp + 1] = sprite[0]; //head
  1112. }
  1113. game[rp + 1][cp + 4] = sprite[1]; //head
  1114. game[rp + 2][cp - 1] = sprite[1]; //head
  1115. game[rp + 2][cp] = sprite[0]; //head
  1116. game[rp + 2][cp + 3] = sprite[0]; //head
  1117. game[rp + 2][cp + 4] = sprite[1]; //head
  1118. }
  1119. }
  1120. void attk(char view[][80], char game[][400], Player &x)
  1121. {
  1122. //Trigger Shooting
  1123. if (trigger == 1 && firetrigger == 0)
  1124. {
  1125. rrp = rp + 1;
  1126. rcp = cp - 2;
  1127. firetrigger = 1;
  1128. }
  1129.  
  1130. //bullet firing
  1131. if (firetrigger == 1)
  1132. {
  1133. game[rrp][rcp] = rocksprite;
  1134.  
  1135. if (orientation == 1)
  1136. {
  1137. if (game[rrp][rcp - 1] == ' ' && view[rrp][rcp - 1] == ' ')
  1138. {
  1139. rcp--;
  1140. }
  1141. else
  1142. {
  1143. firetrigger = 0;
  1144. }
  1145. }
  1146. else
  1147. {
  1148. if (game[rrp][rcp + 1] == ' ' && view[rrp][rcp + 1] == ' ')
  1149. {
  1150. rcp++;
  1151. }
  1152. else
  1153. {
  1154. firetrigger = 0;
  1155. }
  1156. }
  1157. }
  1158.  
  1159. //bullet catapult
  1160. if (firetrigger != 0 && catapultrig==1)
  1161. {
  1162. if (steps < 2)
  1163. {
  1164. count++;
  1165. if (count % 2 == 0)
  1166. {
  1167. rrp--;
  1168. steps++;
  1169. }
  1170. }
  1171. else
  1172. {
  1173. steps = 0; count = 0; catapultrig = 0;
  1174. }
  1175. }
  1176.  
  1177. //gravity
  1178. if (catapultrig == 0)
  1179. {
  1180. if (game[rrp + 1][rcp] == ' ' && view[rrp + 1][rcp] == ' ')
  1181. {
  1182. gravity++;
  1183.  
  1184. if ((gravity %= 2) == 0)
  1185. {
  1186. rrp++;
  1187. }
  1188. }
  1189. else
  1190. {
  1191. gravity = 0; catapultrig = 1;
  1192. }
  1193. }
  1194. }
  1195. };
  1196.  
  1197. void controller(char view[][80], char game[][400], char keyB, Player &x, Bullet b[], Portal kl[], Portal &k, NPC &r)
  1198. {
  1199. if (keyB == 'a' || keyB == 'A')
  1200. {
  1201.  
  1202. /*if (x.pistol == 0 && x.sword == 0)
  1203. {
  1204. if (view[x.Hrp + 1][x.Hcp - 3] != '#')
  1205. {
  1206. x.Hcp--, x.orientation = 1;
  1207. x.lvldir--, x.orientation = 1;
  1208. }
  1209. }
  1210. else
  1211. {*/
  1212. if (x.level < 2)
  1213. {
  1214. /*if (view[x.Hrp + 1][x.Hcp - 5] != '#')
  1215. {*/
  1216. x.Hcp--;
  1217. x.lvldir--, x.orientation = 1;
  1218. //}
  1219. }
  1220. else
  1221. {
  1222. x.Hcp--; x.orientation = 1;
  1223. }
  1224. }
  1225. //}
  1226. if (keyB == 'd' || keyB == 'D')
  1227. {
  1228. if (x.pistol == 0 && x.sword == 0)
  1229. {
  1230. /*if (view[x.Hrp + 1][x.Hcp + 6] != '#')
  1231. {*/
  1232. x.Hcp++;
  1233. x.lvldir++; x.orientation = 0;
  1234. //*}
  1235. }
  1236. else
  1237. {
  1238. if (x.level < 2)
  1239. {
  1240. /*if (view[x.Hrp + 1][x.Hcp + 8] != '#')
  1241. {*/
  1242. x.Hcp++;
  1243. x.lvldir++; x.orientation = 0;
  1244. //}
  1245. }
  1246. else
  1247. {
  1248. x.Hcp++; x.orientation = 0;
  1249. }
  1250. }
  1251. }
  1252. if (keyB == 'w' || keyB == 'W' || keyB == 32)
  1253. {
  1254. if (x.ladtrig == 1)
  1255. {
  1256. x.Hrp--;
  1257. }
  1258. else
  1259. {
  1260. if (x.gravity == 0)
  1261. {
  1262. if (x.jump_trigger == 0 && view[x.Hrp + 4][x.Hcp] == '#' || view[x.Hrp + 4][x.Hcp] == '@')
  1263. {
  1264. x.jump_trigger = 1;
  1265. }
  1266. }
  1267. }
  1268. }
  1269.  
  1270. if (keyB == 'x' || keyB == 'X')
  1271. {
  1272. if (x.sword == 1 && x.swordphase==0)
  1273. {
  1274. x.counterphase = 1;
  1275. }
  1276. else
  1277. {
  1278. for (int j = 0; j < b[0].limiterb; j++)
  1279. {
  1280. if (x.pistol == 1 && b[j].firetrigger == 0)
  1281. {
  1282. b[j].orientation = x.orientation;
  1283. if (x.orientation == 0)
  1284. {
  1285. b[j].bcp = x.Hcp + 7, b[j].brp = x.Hrp + 2;
  1286. }
  1287. else
  1288. {
  1289. b[j].bcp = x.Hcp - 4, b[j].brp = x.Hrp + 2;
  1290. }
  1291. b[j].firetrigger = 1;
  1292. }
  1293. }
  1294. b[0].limiterb++;
  1295. }
  1296. }
  1297.  
  1298. if (keyB == 'i' || keyB == 'I')
  1299. {
  1300. if (k.intertrig == 1)
  1301. {
  1302. x.level++; x.reset = 1;
  1303. }
  1304. if (x.orientation == 1)
  1305. {
  1306. if (kl[0].intertrig == 1)
  1307. {
  1308. x.Hrp = kl[1].rp; x.Hcp = kl[1].cp;
  1309. }
  1310. if (kl[1].intertrig == 1)
  1311. {
  1312. x.Hrp = kl[0].rp; x.Hcp = kl[0].cp - 3;
  1313. }
  1314. }
  1315. else
  1316. {
  1317. if (kl[0].intertrig == 1)
  1318. {
  1319. x.Hrp = kl[1].rp; x.Hcp = kl[1].cp - 5;
  1320. }
  1321. if (kl[1].intertrig == 1)
  1322. {
  1323. x.Hrp = kl[0].rp; x.Hcp = kl[0].cp - 5;
  1324. }
  1325. }
  1326. }
  1327.  
  1328. if (keyB == 'e' || keyB == 'E' || keyB == 13)
  1329. {
  1330. if (x.Hcp > 20)
  1331. {
  1332. if (r.interact < 2)
  1333. {
  1334. r.interact++;
  1335. }
  1336. }
  1337. }
  1338.  
  1339. if (keyB == 's' || keyB == 'S')
  1340. {
  1341. if (x.pickup_trigger == 1)
  1342. {
  1343. x.pickup = 1;
  1344. }
  1345. }
  1346. }
  1347.  
  1348. void swordphase(Player &x, Bullet b[])
  1349. {
  1350.  
  1351. if (x.swordphase == 4)
  1352. {
  1353. x.counterphase = 0, x.swordphase = 0, x.money++;
  1354.  
  1355. b[x.money].orientation = x.orientation;
  1356. if (x.orientation == 0)
  1357. {
  1358. b[x.money].bcp = x.Hcp + 7, b[x.money].brp = x.Hrp + 2;
  1359. }
  1360. else
  1361. {
  1362. b[x.money].bcp = x.Hcp - 4, b[x.money].brp = x.Hrp + 2;
  1363. }
  1364. b[x.money].firetrigger = 1;
  1365. b[0].limiterb++;
  1366. }
  1367. }
  1368.  
  1369. 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)
  1370. {
  1371. if (x.level == 0)
  1372. {
  1373. x.trigger = 0;
  1374. x.interact(game);
  1375. }
  1376. if (x.level == 1)
  1377. {
  1378. for (int i = 27; i < 51; i++)
  1379. {
  1380. game[14][i] = '#';
  1381. }
  1382. for (int i = 14; i < 19; i++)
  1383. {
  1384. game[i][50] = '#';
  1385. }
  1386. for (int i = 11; i < 19; i++)
  1387. {
  1388. game[i][73] = '#';
  1389. }
  1390. for (int i = 74; i < 98; i++)
  1391. {
  1392. game[11][i] = '#';
  1393. }
  1394. int g = 0;
  1395. for (int i = 1; i < 5; i++)
  1396. {
  1397. game[7 + i][106 - g] = '#';
  1398. game[7 + i][106 - (g + 1)] = '#';
  1399. game[7 + i][106 - (g + 2)] = '#';
  1400. game[7 + i][106 - (g + 3)] = '#';
  1401. g += 3;
  1402. }
  1403. for (int i = 106; i < 130; i++)
  1404. {
  1405. game[7][i] = '#';
  1406. }
  1407. for (int i = 0; i < 19; i++)
  1408. {
  1409. game[i][130] = '#';
  1410. }
  1411.  
  1412. l.rp = 14; l.cp = 23;
  1413. l.draw(game, x); l.interact(game, x);
  1414. d[0].Dcp = 35; d[0].trigger = 1;
  1415. d[0].draw(game, x); d[0].move();
  1416. d[1].Drp = 9; d[1].Dcp = 84; d[1].trigger = 1;
  1417. d[1].draw(game, x); d[1].move();
  1418. n[0].Hrp = 10; n[0].Hcp = 45; n[0].NPC_En = 1;
  1419. n[0].draw(game, x); n[0].attack(view, game, x);
  1420. s[0].cp = 104; s[0].trigger = 1;
  1421. s[0].draw(game, x); s[0].attk(view, game, x);
  1422. e[0].cp = 66; e[0].trigger = 1;
  1423. e[0].draw(game, x); /*e[0].elevmove(view, game, x);*/
  1424. kl[0].trigger = 1; kl[0].rp = 3; kl[0].cp = 129;
  1425. kl[0].draw(game, x); kl[0].interact(game, x);
  1426. kl[1].trigger = 1; kl[1].cp = 78;
  1427. kl[1].draw(game, x); kl[1].interact(game, x);
  1428. k.trigger = 1; k.cp = 129;
  1429. k.draw(game, x); k.interact(game, x);
  1430.  
  1431. }
  1432. if (x.level == 2)
  1433. {
  1434. for (int i = 13; i < 19; i++)
  1435. {
  1436. game[i][54] = '#';
  1437. }
  1438. for (int i = 55; i < 79; i++)
  1439. {
  1440. game[13][i] = '#';
  1441. }
  1442. for (int i = 100; i < 112; i++)
  1443. {
  1444. game[11][i] = '#';
  1445. }
  1446. for (int i = 0; i < 19; i++)
  1447. {
  1448. game[i][112] = '#';
  1449. }
  1450. for (int i = 0; i < 19; i++)
  1451. {
  1452. game[i][146] = '#';
  1453. }
  1454.  
  1455. s[0].cp = 40; s[0].trigger = 1;
  1456. s[0].draw(game, x); s[0].attk(view, game, x);
  1457. d[0].Dcp = 60; d[0].trigger = 1; d[0].orientation = 0;
  1458. d[0].draw(game, x); d[0].move();
  1459. d[1].Dcp = 90; d[1].trigger = 1;
  1460. d[1].draw(game, x); d[1].move();
  1461. n[0].Hrp = 9; n[0].Hcp = 70; n[0].NPC_En = 1;
  1462. n[0].draw(game, x); n[0].attack(view, game, x);
  1463. n[1].Hcp = 133; n[1].NPC_En = 1;
  1464. n[1].draw(game, x); n[1].attack(view, game, x);
  1465. e[0].cp = 47; e[0].trigger = 1;
  1466. e[0].draw(game, x); /*e[0].elevmove(view, game, x);*/
  1467. l.rp = 11; l.cp = 97;
  1468. l.draw(game, x); l.interact(game, x);
  1469. kl[0].trigger = 1; kl[0].rp = 7; kl[0].cp = 111;
  1470. kl[0].draw(game, x); kl[0].interact(game, x);
  1471. kl[1].trigger = 1; kl[1].rp = 11; kl[1].cp = 116;
  1472. kl[1].draw(game, x); kl[1].interact(game, x);
  1473. k.trigger = 1; k.cp = 145;
  1474. k.draw(game, x); k.interact(game, x);
  1475. }
  1476. if (x.level == 3)
  1477. {
  1478. r.trigger = 1; r.draw(game, x);
  1479. r.interaction(game, x); r.pickup(game, x);
  1480. }
  1481. if (x.level == 4)
  1482. {
  1483. h.trigger = 1;
  1484. h.draw(game, x); h.move(); h.attk(view, game, x);
  1485. }
  1486. if (x.level == 5)
  1487. {
  1488. x.trigger = 0;
  1489. x.interact(game);
  1490. }
  1491. }
  1492.  
  1493. void setElevators(char view[][80], char game[][400], Player &x, Elevator e[])
  1494. {
  1495. if (x.level == 1)
  1496. {
  1497. e[0].elevmove(view, game, x);
  1498. }
  1499. if (x.level == 2)
  1500. {
  1501. e[0].elevmove(view, game, x);
  1502. }
  1503. }
  1504.  
  1505. void clearmap(char view[][80], char game[][400])
  1506. {
  1507. for (int i = 0; i < 20; i++)
  1508. {
  1509. for (int j = 0; j < 80; j++)
  1510. {
  1511. view[i][j] = ' ';
  1512. }
  1513. for (int j = 0; j < 400; j++)
  1514. {
  1515. game[i][j] = ' ';
  1516. }
  1517. }
  1518. }
  1519.  
  1520. void setmap(char view[][80], char game[][400], Player &x)
  1521. {
  1522. //setgame2map
  1523. for (int i = 1; i < 19; i++)
  1524. {
  1525. for (int j = 1; j < 79; j++)
  1526. {
  1527. view[i][j] = game[i][j + x.lvldir];
  1528. }
  1529. }
  1530.  
  1531.  
  1532. }
  1533.  
  1534. void setborders(char view[][80])
  1535. {
  1536. //setborders
  1537. for (int i = 1; i < 20; i++)
  1538. {
  1539. view[i][0] = '#';
  1540. }
  1541. for (int i = 0; i < 80; i++)
  1542. {
  1543. view[19][i] = '#';
  1544. }
  1545. for (int i = 1; i < 20; i++)
  1546. {
  1547. view[i][79] = '#';
  1548. }
  1549. }
  1550.  
  1551. void printgame(char view[][80], char lvl[][400], EnemyNPC n[])
  1552. {
  1553. system("cls");
  1554.  
  1555. cout << n[2].Enlimiter << endl;
  1556. for (int i = 0; i < 20; i++)
  1557. {
  1558. for (int j = 0; j < 80; j++)
  1559.  
  1560. cout << view[i][j];
  1561. cout << "\n";
  1562. }
  1563. cout.flush();
  1564. Sleep(10);
  1565. }
  1566.  
  1567. int main()
  1568. {
  1569.  
  1570. char view[20][80];
  1571. char lvl[20][400];
  1572.  
  1573. Player x; Bullet b[100]; EnemyNPC n[10]; Doggie d[10]; Elevator e[5];
  1574. Portal k; Portal kl[5]; Ladder l;
  1575. BossGhost h; Slime s[10]; NPC r;
  1576.  
  1577. setmap(view, lvl, x);
  1578. printgame(view, lvl, n);
  1579. for (;;)
  1580. {
  1581. for (; !_kbhit();)
  1582. {
  1583. clearmap(view, lvl);
  1584. setborders(view);
  1585. x.drawplayer(lvl);
  1586. setLevels(view, lvl, x, n, d, s, h, k, kl, e, l, r);
  1587. setmap(view, lvl, x);
  1588. x.gravity_and_jump(view);
  1589. setElevators(view, lvl, x, e);
  1590. for (int j = 0; j < b[0].limiterb; j++)
  1591. {
  1592. swordphase(x, b);
  1593. b[j].playerattack(view, x);
  1594. }
  1595. printgame(view, lvl, n);
  1596. }
  1597. char kb = _getch();
  1598. controller(view, lvl, kb, x, b, kl, k, r);
  1599. }
  1600.  
  1601. system("pause");
  1602. return 0;
  1603. }
  1604. //swordphase provisional fix
  1605. //elevmove after gravity
  1606. //still need dmg, fix bugs walls and conficts
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement