Advertisement
TheIngty

rpg2

Mar 23rd, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.77 KB | None | 0 0
  1. function definicjeGlobalne(){
  2. window.grajButton = document.getElementById('grajButton');
  3. window.bodyTag = document.body;
  4. window.turyUmiejetnosci = 0;
  5. window.tempSelect = 0;
  6. window.klasy = Array(Warrior,MageFire,MageWind,MageLightning,Archer,BladeDancer);
  7. window.SelectedClass = Warrior;
  8. window.randEnemy = 'Default';
  9. window.klasaWybrana = false;
  10. window.cdSpell1 = 0;
  11. window.cdSpell2 = 0;
  12. }
  13.  
  14. function definicjaKlas(){
  15. //KlasyGracza
  16. window.Warrior = {class: 'Wojownik',defaulthp: 100,hp: 100,sila: 8,obrona: 6,int: 1, mana: 1,szczescie: 2,img: 'PNG/Warrior.PNG',xp: 0,lvl: 1,wolne: 7}
  17. window.MageWind = {class: 'Mag Wiatru',defaulthp: 60,hp: 60,sila: 1,obrona: 2,int: 8,mana: 7,szczescie: 2,img: 'PNG/MageWind.PNG',xp: 0,lvl: 1,wolne: 5}
  18. window.MageFire = {class: 'Mag Ognia',defaulthp: 60,hp: 60,sila: 1,obrona: 2,int: 9,mana: 6,szczescie: 2,img: 'PNG/MageFire.PNG',xp: 0,lvl: 1,wolne: 5}
  19. window.MageLightning = {class: 'Mag Blyskawic',defaulthp: 60,hp: 60,sila: 1,obrona: 2,int: 6,mana: 9,szczescie: 2,img: 'PNG/MageLightning.PNG',xp: 0,lvl: 1,wolne: 5}
  20. window.Archer = {class: 'Lucznik',defaulthp: 70,hp: 70,sila: 9,obrona: 3,int: 2,mana: 2,szczescie: 5,img: 'PNG/Archer.PNG',xp: 0,lvl: 1,wolne: 4}
  21. window.BladeDancer = {class: 'Tancerz Ostrzy',defaulthp: 80,hp: 80,sila: 10,obrona: 2,int: 2,mana: 2,szczescie: 6,img: 'PNG/BladeDancer.PNG',xp: 0,lvl: 1,wolne: 3}
  22. }
  23.  
  24. function start(){
  25. definicjaKlas();
  26. definicjeGlobalne();
  27. bodyTag.style.setProperty('background','#000');
  28. bodyTag.style.setProperty('color','#fc0');
  29. bodyTag.style.setProperty('text-align','center');
  30. klasaWybrana = false;
  31. bodyTag.innerHTML = '';
  32.  
  33. window.divGracz = document.createElement('div');
  34. document.body.appendChild(divGracz);
  35. window.profilImg = document.createElement('img');
  36. window.profilClass = document.createElement('div');
  37. window.profilHp = document.createElement('div');
  38. window.profilMana = document.createElement('div');
  39. divGracz.appendChild(profilImg);
  40. divGracz.appendChild(profilClass);
  41. divGracz.appendChild(profilHp);
  42. divGracz.appendChild(profilMana);
  43.  
  44. window.divSila = document.createElement('div');
  45. window.profilSila = document.createElement('span');
  46. window.addSila = document.createElement('button');
  47. window.redSila = document.createElement('button');
  48. divGracz.appendChild(divSila);
  49. divSila.appendChild(profilSila);
  50. divSila.appendChild(addSila);
  51. divSila.appendChild(redSila);
  52. addSila.setAttribute('onclick','silaadd()');
  53. redSila.setAttribute('onclick','silamin()');
  54. addSila.innerText = '+';
  55. redSila.innerText = '-';
  56.  
  57.  
  58. window.divObrona = document.createElement('div');
  59. window.profilObrona = document.createElement('span');
  60. window.addObrona = document.createElement('button');
  61. window.redObrona = document.createElement('button');
  62. divGracz.appendChild(divObrona);
  63. divObrona.appendChild(profilObrona);
  64. divObrona.appendChild(addObrona);
  65. divObrona.appendChild(redObrona);
  66. addObrona.setAttribute('onclick','obronaadd()');
  67. redObrona.setAttribute('onclick','obronamin()');
  68. addObrona.innerText = '+';
  69. redObrona.innerText = '-';
  70.  
  71. window.divInt = document.createElement('div');
  72. window.profilInt = document.createElement('span');
  73. window.addInt = document.createElement('button');
  74. window.redInt = document.createElement('button');
  75. divGracz.appendChild(divInt);
  76. divInt.appendChild(profilInt);
  77. divInt.appendChild(addInt);
  78. divInt.appendChild(redInt);
  79. addInt.setAttribute('onclick','intadd()');
  80. redInt.setAttribute('onclick','intmin()');
  81. addInt.innerText = '+';
  82. redInt.innerText = '-';
  83.  
  84. window.divSzczescie = document.createElement('div');
  85. window.profilSzczescie = document.createElement('span');
  86. window.addSzczescie = document.createElement('button');
  87. window.redSzczescie = document.createElement('button');
  88. divGracz.appendChild(divSzczescie);
  89. divSzczescie.appendChild(profilSzczescie);
  90. divSzczescie.appendChild(addSzczescie);
  91. divSzczescie.appendChild(redSzczescie);
  92. addSzczescie.setAttribute('onclick','szczescieadd()');
  93. redSzczescie.setAttribute('onclick','szczesciemin()');
  94. addSzczescie.innerText = '+';
  95. redSzczescie.innerText = '-';
  96.  
  97. window.profilXp = document.createElement('div');
  98. window.profilLvl = document.createElement('div');
  99. window.profilWolne = document.createElement('div');
  100. divGracz.appendChild(profilXp);
  101. divGracz.appendChild(profilLvl);
  102. divGracz.appendChild(profilWolne);
  103. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  104. updateStatDisplay();
  105.  
  106. window.zmienKlaseButton = document.createElement('button');
  107. divGracz.appendChild(zmienKlaseButton);
  108. zmienKlaseButton.innerText = 'Zmien klase';
  109. zmienKlaseButton.setAttribute('onclick','zmianaKlasy()');
  110.  
  111. window.rozpocznijGreButton = document.createElement('button');
  112. divGracz.appendChild(rozpocznijGreButton);
  113. rozpocznijGreButton.innerText = 'Rozpocznij gre';
  114. rozpocznijGreButton.setAttribute('onclick','generujWalke()');
  115. }
  116.  
  117. function zmianaKlasy(){
  118. if(tempSelect==5){
  119. tempSelect=0;
  120. }
  121. else{
  122. tempSelect++;
  123. }
  124. SelectedClass = klasy[tempSelect];
  125. updateStatDisplay();
  126. }
  127.  
  128. function generujWalke(){
  129. //Wylosuj przeciwnika
  130. losujEnemy();
  131. //Ustaw stan wyboru klasy
  132. klasaWybrana=true;
  133. // Wyczysc cale body
  134. bodyTag.innerHTML = ''
  135. //Generuj profil gracza
  136. window.divGracz = document.createElement('div');
  137. document.body.appendChild(divGracz);
  138. window.profilImg = document.createElement('img');
  139. window.profilClass = document.createElement('div');
  140. window.profilHp = document.createElement('div');
  141. window.profilSila = document.createElement('div');
  142. window.profilObrona = document.createElement('div');
  143. window.profilInt = document.createElement('div');
  144. window.profilMana = document.createElement('div');
  145. window.profilSzczescie = document.createElement('div');
  146. window.profilXp = document.createElement('div');
  147. window.profilLvl = document.createElement('div');
  148. divGracz.style.setProperty('display','inline-block');
  149. divGracz.style.setProperty('float', 'left');
  150. divGracz.appendChild(profilImg);
  151. divGracz.appendChild(profilClass);
  152. divGracz.appendChild(profilHp);
  153. divGracz.appendChild(profilSila);
  154. divGracz.appendChild(profilObrona);
  155. divGracz.appendChild(profilInt);
  156. divGracz.appendChild(profilMana);
  157. divGracz.appendChild(profilSzczescie);
  158. divGracz.appendChild(profilXp);
  159. divGracz.appendChild(profilLvl);
  160. //Wyswietl przyciski
  161. window.divCzynnosc = document.createElement('div');
  162. window.buttonAtak = document.createElement('button');
  163. window.buttonSpell1 = document.createElement('button');
  164. window.buttonSpell2 = document.createElement('button');
  165. document.body.appendChild(divCzynnosc);
  166. divCzynnosc.appendChild(buttonAtak);
  167. divCzynnosc.appendChild(buttonSpell1);
  168. divCzynnosc.appendChild(buttonSpell2);
  169. divCzynnosc.style.setProperty('display','inline-block');
  170. buttonAtak.innerText = "Walcz";
  171. buttonSpell1.innerText = "Czar 1";
  172. buttonSpell2.innerText = "Czar 2";
  173. buttonAtak.setAttribute('onClick','walcz()');
  174. buttonSpell1.setAttribute('onClick','spell1()');
  175. buttonSpell2.setAttribute('onClick','spell2()');
  176. //Generuj profil przeciwnika
  177. window.divEnemy = document.createElement('div');
  178. document.body.appendChild(divEnemy);
  179. window.enemyImg = document.createElement('img');
  180. window.enemyClass = document.createElement('div');
  181. window.enemyHp = document.createElement('div');
  182. window.enemySila = document.createElement('div');
  183. window.enemyObrona = document.createElement('div');
  184. window.enemyInt = document.createElement('div');
  185. window.enemyMana = document.createElement('div');
  186. window.enemySzczescie = document.createElement('div');
  187. divEnemy.style.setProperty('display','inline-block');
  188. divEnemy.style.setProperty('float', 'right')
  189. divEnemy.appendChild(enemyImg);
  190. divEnemy.appendChild(enemyClass);
  191. divEnemy.appendChild(enemyHp);
  192. divEnemy.appendChild(enemySila);
  193. divEnemy.appendChild(enemyObrona);
  194. divEnemy.appendChild(enemyInt);
  195. divEnemy.appendChild(enemyMana);
  196. divEnemy.appendChild(enemySzczescie);
  197. //Historia walki
  198. window.divHitLog = document.createElement('div');
  199. bodyTag.appendChild(divHitLog);
  200. divHitLog.style.setProperty('width','70%');
  201. divHitLog.style.setProperty('margin-left','auto');
  202. divHitLog.style.setProperty('margin-right','auto');
  203. divHitLog.style.setProperty('background','#222222');
  204. //Wyswietl statystyki
  205. updateStatDisplay();
  206. }
  207.  
  208. function updateStatDisplay(){
  209. //Aktualizuje wyswietlone statystyki
  210. profilImg.setAttribute('src',SelectedClass.img);
  211. profilClass.innerHTML = 'Klasa: ' + SelectedClass.class;
  212. profilHp.innerHTML = 'HP: ' + SelectedClass.hp;
  213. profilSila.innerHTML = 'Sila: ' + SelectedClass.sila;
  214. profilObrona.innerHTML = 'Obrona: ' + SelectedClass.obrona;
  215. profilInt.innerHTML = 'Int: ' + SelectedClass.int;
  216. profilMana.innerHTML = 'Mana: ' + SelectedClass.mana;
  217. profilSzczescie.innerHTML = 'Szczescie: ' + SelectedClass.szczescie;
  218. profilLvl.innerHTML = 'Lvl: ' + SelectedClass.lvl;
  219. profilXp.innerHTML = 'XP: ' + SelectedClass.xp;
  220. if(klasaWybrana){
  221. enemyImg.setAttribute('src',Enemy.img);
  222. enemyClass.innerHTML = 'Klasa: ' + Enemy.class;
  223. enemyHp.innerHTML = 'HP: ' + Enemy.hp;
  224. enemySila.innerHTML = 'Sila: ' + Enemy.sila;
  225. enemyObrona.innerHTML = 'Obrona: ' + Enemy.obrona;
  226. enemyInt.innerHTML = 'Int: ' + Enemy.int;
  227. enemyMana.innerHTML = 'Mana: ' + Enemy.mana;
  228. enemySzczescie.innerHTML = 'Szczescie: ' + Enemy.szczescie;
  229. }
  230. }
  231.  
  232. function losujEnemy(){
  233. //Definicja przeciwnika
  234. window.Enemy = {
  235. class: 'DEFAULT',
  236. hp: (Math.floor(Math.random() * (80 - 40)) + 40),
  237. sila: (Math.floor(Math.random() * (8 - 2)) + 2),
  238. obrona: (Math.floor(Math.random() * (8 - 2)) + 2),
  239. int: (Math.floor(Math.random() * (8 - 2)) + 2),
  240. mana: (Math.floor(Math.random() * (8 - 2)) + 2),
  241. szczescie: (Math.floor(Math.random() * (8 - 2)) + 2),
  242. img: 'PNG/Error.png'
  243. }
  244. //Losowanie i dobor odpowiedniego png
  245. let temp = Math.floor(Math.random() * 4) + 1;
  246. if(temp==1){randEnemy = "Ork";Enemy.img = 'PNG/Orc.png'; }
  247. if(temp==2){randEnemy = "Harpia";Enemy.img = 'PNG/Harpy.png';}
  248. if(temp==3){randEnemy = "Goblin";Enemy.img = 'PNG/Goblin.png';}
  249. if(temp==4){randEnemy = "Meduza";Enemy.img = 'PNG/Medusa.png';}
  250. Enemy.class = randEnemy;
  251. }
  252.  
  253. function lvlup(){
  254. //System zwiekszania statystyk przy wbiciu poziomu
  255. if(SelectedClass.xp>((SelectedClass.lvl*SelectedClass.lvl)/2)){
  256. SelectedClass.xp = 0;
  257. SelectedClass.lvl++;
  258. if(SelectedClass.class=="Wojownik"){
  259. SelectedClass.defaulthp += 5;
  260. SelectedClass.sila += 2;
  261. }
  262. else if(SelectedClass.class=="Mag Wiatru"||SelectedClass.class=="Mag Ognia"||SelectedClass.class=="Mag Blyskawic"){
  263. SelectedClass.mana += 2;
  264. SelectedClass.int += 2;
  265. }
  266. else if(SelectedClass.class=="Tancerz Ostrzy"){
  267. SelectedClass.sila += 4;
  268. SelectedClass.szczescie += 2;
  269. }
  270. else if(SelectedClass.class=="Lucznik"){
  271. SelectedClass.defaulthp += 3;
  272. SelectedClass.sila += 1;
  273. SelectedClass.szczescie += 1;
  274. }
  275. }
  276. }
  277.  
  278. function walcz(){
  279. hpCheck();
  280. turaGracza();
  281. turaPrzeciwnika();
  282. updateStatDisplay();
  283. }
  284.  
  285. function doubleHit(){
  286. if(cdSpell1==0){
  287. turaGracza();
  288. turaGracza();
  289. window.cdSpell1 = 5;
  290. }
  291. else if(cdSpell1>0){
  292. turaGracza();
  293. divHitLog += 'Pozostaly cooldown: ' + cdSpell1 + '<br><br>';
  294. }
  295. }
  296.  
  297. function tripleHit(){
  298. if(cdSpell2==0){
  299. turaGracza();
  300. turaGracza();
  301. turaGracza();
  302. window.cdSpell2 = 10;
  303. }
  304. else if(cdSpell2>0){
  305. turaGracza();
  306. divHitLog += 'Pozostaly cooldown: ' + cdSpell2 + '<br><br>';
  307. }
  308. }
  309.  
  310. function spell1(){
  311. hpCheck();
  312. if(SelectedClass.class=="Wojownik"){
  313.  
  314. }
  315. else if(SelectedClass.class=="Mag Ognia"){
  316.  
  317. }
  318. else if(SelectedClass.class=="Mag Wiatru"){
  319.  
  320. }
  321. else if(SelectedClass.class=='Mag Blyskawic'){
  322.  
  323. }
  324. else if(SelectedClass.class=="Lucznik"){
  325.  
  326. }
  327. else if(SelectedClass.class=="Tancerz Ostrzy"){
  328. doubleHit();
  329. }
  330. turaPrzeciwnika();
  331. updateStatDisplay();
  332. }
  333.  
  334. function spell2(){
  335. hpCheck();
  336. if(SelectedClass.class=="Wojownik"){
  337.  
  338. }
  339. else if(SelectedClass.class=="Mag Ognia"){
  340.  
  341. }
  342. else if(SelectedClass.class=="Mag Wiatru"){
  343.  
  344. }
  345. else if(SelectedClass.class=='Mag Blyskawic'){
  346.  
  347. }
  348. else if(SelectedClass.class=="Lucznik"){
  349.  
  350. }
  351. else if(SelectedClass.class=="Tancerz Ostrzy"){
  352. tripleHit();
  353. }
  354. turaPrzeciwnika();
  355. updateStatDisplay();
  356. }
  357.  
  358. function hpCheck(){
  359. //Sprawdzamy HP gracza
  360. if(SelectedClass.hp<=0){
  361. SelectedClass.xp = 1;
  362. document.body.innerHTML = 'GAME OVER';
  363. }
  364. //Sprawdzamy HP przeciwnika
  365. if(Enemy.hp<=0){
  366. SelectedClass.xp += 0.25;
  367. SelectedClass.hp = SelectedClass.defaulthp;
  368. lvlup();
  369. generujWalke();
  370. }
  371. }
  372. function turaGracza(){
  373. if(cdSpell1>0){
  374. cdSpell1--;
  375. }
  376. if(cdSpell2>0){
  377. cdSpell2--;
  378. }
  379. window.critChance = SelectedClass.szczescie*5;
  380. window.critCheck= Math.random()*100;
  381. window.nextHit = Math.floor(SelectedClass.sila*((Math.random()*120-80)+80)/100);
  382. if(critCheck<=critChance){
  383. nextHit = nextHit * 1.5;
  384. divHitLog.innerHTML += '<b>Trafiasz krytycznie</b>' + '<br>';
  385. }
  386. window.obronaEnemy = (1-(Enemy.obrona/25));
  387. window.obronaGracz = (1-(SelectedClass.obrona/25));
  388. Enemy.hp -= (nextHit*obronaEnemy).toFixed(0);
  389. Enemy.hp = Math.floor(Enemy.hp);
  390. divHitLog.innerHTML += 'Zadales przeciwnikowi ' + (nextHit*obronaEnemy).toFixed(0) + ' obrazen' + '<br><br>';
  391. }
  392.  
  393. function turaPrzeciwnika(){
  394. window.critChance = Enemy.szczescie*5;
  395. window.critCheck= Math.random()*100;
  396. window.nextHit = Math.floor(Enemy.sila*((Math.random()*120-80)+80)/100);
  397. if(critCheck<=critChance){
  398. nextHit = nextHit * 1.5;
  399. divHitLog.innerHTML += '<b>' + Enemy.class + ' trafia krytycznie</b> <br>';
  400. }
  401. window.obronaEnemy = (1-(Enemy.obrona/25));
  402. window.obronaGracz = (1-(SelectedClass.obrona/25));
  403. SelectedClass.hp -= (nextHit*obronaGracz).toFixed(0);
  404. divHitLog.innerHTML += Enemy.class + ' zadaje tobie ' + (nextHit*obronaGracz).toFixed(0) + ' obrazen' + '<br><br>';
  405. }
  406.  
  407. function silaadd(){
  408. if(SelectedClass.wolne>0&&SelectedClass.sila<10){
  409. SelectedClass.wolne -= 1;
  410. SelectedClass.sila += 1;
  411. profilSila.innerHTML = 'Sila: ' + SelectedClass.sila;
  412. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  413. }
  414. }
  415. function silamin(){
  416. if(SelectedClass.wolne<20&&SelectedClass.sila>0){
  417. SelectedClass.wolne += 1;
  418. SelectedClass.sila -= 1;
  419. profilSila.innerHTML = 'Sila: ' + SelectedClass.sila;
  420. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  421. }
  422. }
  423. function obronaadd(){
  424. if(SelectedClass.wolne>0&&SelectedClass.obrona<10){
  425. SelectedClass.wolne -= 1;
  426. SelectedClass.obrona += 1;
  427. profilObrona.innerHTML = 'Obrona: ' + SelectedClass.obrona;
  428. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  429. }
  430. }
  431. function obronamin(){
  432. if(SelectedClass.wolne<20&&SelectedClass.obrona>0){
  433. SelectedClass.wolne += 1;
  434. SelectedClass.obrona -= 1;
  435. profilObrona.innerHTML = 'Obrona: ' + SelectedClass.obrona;
  436. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  437. }
  438. }
  439. function intadd(){
  440. if(SelectedClass.wolne>0&&SelectedClass.int<10){
  441. SelectedClass.wolne -= 1;
  442. SelectedClass.int += 1;
  443. profilInt.innerHTML = 'Int: ' + SelectedClass.int;
  444. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  445. }
  446. }
  447. function intmin(){
  448. if(SelectedClass.wolne<20&&SelectedClass.int>0){
  449. SelectedClass.wolne += 1;
  450. SelectedClass.int -= 1;
  451. profilInt.innerHTML = 'Int: ' + SelectedClass.int;
  452. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  453. }
  454. }
  455. function manaadd(){
  456. if(SelectedClass.wolne>0&&SelectedClass.mana<10){
  457. SelectedClass.wolne -= 1;
  458. SelectedClass.mana += 1;
  459. profilMana.innerHTML = 'Mana: ' + SelectedClass.mana;
  460. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  461. }
  462. }
  463. function manamin(){
  464. if(SelectedClass.wolne<20&&SelectedClass.mana>0){
  465. SelectedClass.wolne += 1;
  466. SelectedClass.mana -= 1;
  467. profilMana.innerHTML = 'Mana: ' + SelectedClass.mana;
  468. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  469. }
  470. }
  471. function szczescieadd(){
  472. if(SelectedClass.wolne>0&&SelectedClass.szczescie<10){
  473. SelectedClass.wolne -= 1;
  474. SelectedClass.szczescie += 1;
  475. profilSzczescie.innerHTML = 'Szczescie: ' + SelectedClass.szczescie;
  476. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  477. }
  478. }
  479. function szczesciemin(){
  480. if(SelectedClass.wolne<20&&SelectedClass.szczescie>0){
  481. SelectedClass.wolne += 1;
  482. SelectedClass.szczescie -= 1;
  483. profilSzczescie.innerHTML = 'Szczescie: ' + SelectedClass.szczescie;
  484. profilWolne.innerHTML = 'Wolne: ' + SelectedClass.wolne;
  485. }
  486. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement