Advertisement
FoxTuGa

NinjaAttack v2.0

May 8th, 2011
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 23.06 KB | None | 0 0
  1. //  Non-Graphic Game Made By Leandro Soares.
  2. // 
  3. //  Beta test v2.0
  4.  
  5. #include <stdio.h>
  6. #include <conio.h>
  7. #include <stdlib.h>
  8. #include <time.h>
  9. #include <string.h>
  10.  
  11. #define TRUE 1
  12. #define Action '1'
  13. #define Upgrades '2'
  14. #define Exit '3'
  15. #define Attack '1'
  16. #define Counter '2'
  17. #define CounterBonus 3
  18. #define Defend '3'
  19. #define DefenseBonus 8
  20. #define Return '4'
  21. #define Return6 '6'
  22. #define Space 32
  23. #define ROUNDMAX 20
  24. #define PASS "asshole"
  25.  
  26. int _Attack(int Attacker_dmg, int Defender_hp);     // Simulacao de ataque com variacoes random.
  27. int _Boost(int BoostWhat, int Increment );      // Incrementacao de uma variavel.
  28. void _Pause(void);      // Funcao Pause (Similar a funcao system("pause"); ).
  29. int GoldInc(int Round, int Win_or_Los );        // Incrementacao do GOLD
  30. void StatusPurchase(int Item );     // Verificacao de status dos items disponiveis nos upgrades.
  31. int EnemyDMG_Inc(int Actual_dmg, int Round);        // Incrementacao de damage do Enemy por Round.
  32. int EnemyHP_inc(int Actual_hp, int Round );     // Incrementacao de HP do Enemy por Round.
  33. int _PasswordValid(char Digited_Pass[], char Pass[]);
  34.  
  35. int main()
  36. {
  37.     //---------------Declaracao & Inicializacao de Variaveis---------------//
  38.     char Name[20];
  39.     char Digited_Pass[8];
  40.     int Rounds, Player_option, Enemy_option;
  41.     long Gold = 200;
  42.     int Player_hp = 100, Player_dmg = 10;
  43.     int Ini_Pla_hp, Ini_Pla_dmg, Weapon_dmg;
  44.     int Enemy_hp = 85, Enemy_dmg = 8, Last_hp, Armor_hp;
  45.     int Ini_En_hp, Ini_En_dmg;
  46.     int Stick, Knife, Axe, Saw, Chainsaw;
  47.     int Shield, Helmet, Kevlar, Ironpants, Ironshirt;
  48.     Ini_Pla_hp = 85;
  49.     Ini_Pla_dmg = 10;
  50.     Ini_En_hp = 85;
  51.     Ini_En_dmg = 8;
  52.     Stick = Knife = Axe = Saw = Chainsaw = 0;
  53.     Shield = Helmet = Kevlar = Ironpants = Ironshirt = 0;
  54.     Player_option = Enemy_option = Last_hp = Rounds = Weapon_dmg = Armor_hp = 0;
  55.     //------------Fim de Declaracao & Inicializacao de Variaveis------------//
  56.    
  57.     //------------Input do Nome------------//
  58.     printf("\n Name: ");
  59.     scanf("%s", &Name);     // Leitura do Nome.
  60.     system("cls");
  61.     //---------Fim de Input do Nome--------//
  62.  
  63.  
  64.     //----------------------------------------SISTEMA DE RONDAS & GOLD----------------------------------------//
  65.  
  66.     for(Rounds = 1; Rounds <= ROUNDMAX ; Rounds++ )     // Ciclo que controla as Rondas.
  67.     {
  68.         Player_option = 0;
  69.         if( Rounds != ROUNDMAX )
  70.             printf("\n A Ninja level %d appeared!\n", Rounds);      // Imprimir O numero de Rondas no ecra.
  71.         else
  72.             printf("\n THE ULTIMATE BOSS APPEARED!!! \n");      // Imprimir o texto de ultima ronda.
  73.         while( Player_option != Exit )      // Ciclo do Menu Principal ( Quando a tecla digitada for igual a 3(Exit) o ciclo termina ).
  74.         {
  75.             if( Enemy_hp <= 0 || Player_hp <= 0 )
  76.             {
  77.                 break;
  78.             }
  79.             Player_hp = Ini_Pla_hp;     // Reiniciar o HP para o seu valor total.
  80.             Player_dmg = Ini_Pla_dmg;       // Reiniciar o DMG para o seu valor total.
  81.             printf("\nMenu\n");    
  82.             printf("\n\t1. Action\n\t2. Upgrades\n\t3. Exit\n");        // Imprimir o "Menu" no Ecra.
  83.             Player_option = getch();        // Leitura da opcao do utilizador.
  84.  
  85.  
  86.             //-----------------------------------------OPCAO DE ACCAO-----------------------------------------//
  87.             system("cls");
  88.             if( Player_option == Action )       // Se a opcao for igual a 1(Action), prosseguir.
  89.             {
  90.                 while( Enemy_hp > 0 && Player_hp > 0 )      // Ciclo que controla a luta.
  91.                 {
  92.                     system("cls");
  93.                     printf("\n Player HP: %d\n Enemy HP: %d\n", Player_hp, Enemy_hp);       // Imprimir os hp's (Player e Enemy) no ecra.
  94.                     printf("\nAction Menu\n");
  95.                     printf("\n\t1. Attack\n\t2. Counter-Attack\n\t3. Defend\n\t4. Return\n");       // Imprimir o "Action Menu" no ecra
  96.                     Player_option = getch();        // Leitura da opcao do utilizador.
  97.                     srand((unsigned)(time(NULL)));
  98.                     if( Player_option == Return )       // Se a opcao for igual a 4(RtrnActionMenu) prosseguir.
  99.                     {
  100.                         system("cls");
  101.                         if( Enemy_hp != 0 && Player_hp != 0 )       // Ciclo que termina o "Action Menu" e volta ao "Menu".
  102.                         {                                           // Se o Player ou o Enemy tiverem hp, impossivel de retornar ao "Menu".
  103.                             printf("\n Cant do it! \n\n");
  104.                             _Pause();      
  105.                         }
  106.                         else
  107.                             break;
  108.                     }
  109.                     else    if( Player_option == Attack )       //  Se a opcao do utilizador for igual a 1, Prosseguir.
  110.                     {
  111.                         Last_hp = Enemy_hp;     // Variável temporaria.
  112.                         Enemy_hp = _Attack(Player_dmg, Enemy_hp);   // Variável Enemy_hp e igual ao retorno da funcao \
  113.                         int _Attack(int Attacker_dmg, int Defender_hp)
  114.  
  115.                         printf("\n Enemy Lost %dHP! \n\n", Last_hp-Enemy_hp);   // Imprimir o dano.
  116.                         _Pause();      
  117.  
  118.                         srand((unsigned)(time(NULL)));
  119.                         Enemy_option = rand() % 3 + 1;      // Variavel random que controla as accoes do cpu(inimigo).
  120.                         if( Enemy_option == 1 )     // Se o numero gerado for igual a 1(Attack), Prosseguir.
  121.                         {
  122.                             Last_hp = Player_hp;        // Variável temporaria.
  123.                             Player_hp = _Attack(Enemy_dmg, Player_hp);      // Variável Player_hp e igual ao retorno da funcao \
  124.                             int _Attack(int Attacker_dmg, int Defender_hp)
  125.  
  126.                             printf("\n You Lost %dHP! \n\n", Last_hp-Player_hp);    // Imprimir o dano.
  127.                             _Pause();      
  128.                         }
  129.                         else    if( Enemy_option == 2 )         // Se o numero gerado for igual a 2(Counter-Attack), Prosseguir.
  130.                         {
  131.                             Last_hp = Player_hp;        // Variavel temporaria.
  132.                             Player_hp = _Attack(Enemy_dmg+CounterBonus, Player_hp);     // Variável Player_hp e igual ao retorno da funcao \
  133.                             int _Attack(int Attacker_dmg, int Defender_hp) \
  134.                             O dano e aumentado devido a opcao de Counter-Attack.
  135.  
  136.                             printf("\n The Enemy Counter-Attacked!\n You Lost %dHP! \n\n", Last_hp-Player_hp);      // Imprimir o dano.
  137.                             _Pause();      
  138.                         }
  139.                         else    if( Enemy_option == 3 )         // Se o numero gerado for igual a 3(Defend), Prosseguir.
  140.                         {
  141.                             Enemy_hp = _Boost(Enemy_hp, DefenseBonus);      // Aumento do HP do cpu(inimigo) de 13(DefenseBonus).
  142.                             printf("\n Enemy Gains %dHP! \n\n", DefenseBonus);      // Imprimir o restauro de hp.
  143.                             _Pause();      
  144.                         }
  145.                     }
  146.                     else    if( Player_option == Counter )      // Se a opcao do utilizador for igual a 2(Counter), Prosseguir.
  147.                     {
  148.                         srand((unsigned)(time(NULL)));
  149.                         Enemy_option = rand() % 3 + 1;      // Variavel random que controla as accoes do cpu(inimigo).
  150.                         if( Enemy_option == 1 )     // Se o numero gerado for igual a 1(Attack), prosseguir.
  151.                         {
  152.                             Last_hp = Enemy_hp;     // Variavel temporaria.
  153.                             Enemy_hp = _Attack(Player_dmg+CounterBonus, Enemy_hp);      // Variável Player_hp e igual ao retorno da funcao \
  154.                             int _Attack(int Attacker_dmg, int Defender_hp) \
  155.                             O dano e aumentado devido a opcao de Counter-Attack.
  156.  
  157.                             printf("\n You Counter-Attacked!\n Enemy Lost %dHP! \n\n", Last_hp-Enemy_hp);       // Imprimir o dano.
  158.                             _Pause();       // Funcao Pause (Similar a funcao system("pause"); ).
  159.  
  160.                             Last_hp = Player_hp;        // Variavel temporaria.
  161.                             Player_hp = _Attack(Enemy_dmg, Player_hp);      // Variável Player_hp e igual ao retorno da funcao \
  162.                             int _Attack(int Attacker_dmg, int Defender_hp)
  163.  
  164.                             printf("\n You Lost %dHP! \n\n", Last_hp-Player_hp);        // Imprimir o dano no ecra.
  165.                             _Pause();      
  166.                         }
  167.                         else    if( Enemy_option == 2 )     // Se o numero gerado for igual a 2(Counter), prosseguir.
  168.                         {
  169.                             printf("\n You Counter-Attacked!\n Nothing happened \n\n");     // Counter(utilizador) com Counter(cpu) \
  170.                             = Miss.
  171.                             _Pause();      
  172.                         }
  173.                         else    if( Enemy_option == 3 )     // Se o numero gerado for igual a 3(Defend), prosseguir.
  174.                         {
  175.                             printf("\n You Counter-Attacked!\n Nothing happened \n\n");     // Counter(utilizador) com Defend(cpu) \
  176.                             = Miss.
  177.                             _Pause();
  178.  
  179.                             Enemy_hp = _Boost(Enemy_hp, DefenseBonus);      // Aumento do HP do cpu(inimigo) de 13(DefenseBonus).
  180.                             printf("\n Enemy Gains %dHP! \n\n", DefenseBonus);      // Imprimir o restauro do hp no ecra.
  181.                             _Pause();      
  182.                         }
  183.                     }
  184.                     else    if( Player_option == Defend )       // Se a opcao do utilizador for igual a 3(Defend), Prosseguir.
  185.                     {
  186.                         Player_hp = _Boost(Player_hp, DefenseBonus);        // Aumento de HP de 13(DefenseBonus).
  187.                         printf("\n You Gain %dHP! \n\n", DefenseBonus);     // Imprimir o Restauro de hp no ecra.
  188.                         _Pause();      
  189.  
  190.                         srand((unsigned)(time(NULL)));
  191.                         Enemy_option = rand() % 3 + 1;      // Variavel random que controla as accoes do cpu(inimigo).
  192.                         if( Enemy_option == 1 )     // Se o numero gerado for igual a 1(Attack), prosseguir.
  193.                         {
  194.                             Last_hp = Player_hp;        // Variavel Temporaria.
  195.                             Player_hp = _Attack(Enemy_dmg, Player_hp);      // Variável Player_hp e igual ao retorno da funcao \
  196.                             int _Attack(int Attacker_dmg, int Defender_hp)
  197.  
  198.                             printf("\n You Lost %dHP! \n\n", Last_hp-Player_hp);    // Imprimir o dano no ecra.
  199.                             _Pause();      
  200.                         }  
  201.                         else    if( Enemy_option == 2 )     // Se o numero gerado for igual a 2(Counter), prosseguir.
  202.                         {
  203.                             printf("\n Nothing happened \n\n");     // Defend(Player) com Counter(Cpu) = Miss.
  204.                             _Pause();      
  205.                         }
  206.                         else    if( Enemy_option == 3 )     // Se o numero gerado for igual a 3(Defend), prosseguir.
  207.                         {
  208.                             Enemy_hp = _Boost(Enemy_hp, DefenseBonus);      // Aumento de HP(CPU) de 13(DefenseBonus).
  209.                             printf("\n Enemy Gains %dHP! \n\n", DefenseBonus);      // Imprimir o hp no ecra.
  210.                             _Pause();      
  211.                         }
  212.                     }
  213.                 }  
  214.                 system("cls");
  215.                 if( Player_hp <= 0 && Enemy_hp > 0 )        // Se o Player perder ou seja Player_hp <= 0, Prosseguir.
  216.                 {
  217.                     printf("\n\n -----You Lost, %s!----- \n\n", Name);      // Imprimir texto de derrota.
  218.                     _Pause();
  219.                     system("cls");
  220.                     Gold += GoldInc(Rounds, 0);     // Incrementacao de GOLD após derrota(0).
  221.                 }
  222.                 else
  223.                 {
  224.                     printf("\n\n +++++You Won, %s!+++++ \n\n", Name);       // Imprimir texto de vitoria.
  225.                     _Pause();
  226.                     system("cls");
  227.                     Gold += GoldInc(Rounds, 1);     // Incrementacao de GOLD após vitoria(1).
  228.                 }
  229.  
  230.  
  231.             }
  232.             //--------------------------------------FIM DE OPCAO DE ACCAO-------------------------------------//
  233.  
  234.             //----------------------------------------OPCAO DE UPGRADES----------------------------------------//
  235.             else    if( Player_option == Upgrades )     // Se a escolha do utilizador for igual a 3(Upgrades), Prosseguir.
  236.             {
  237.                 while( Player_option != Exit )      // Correr este Menu até que seja premido a tecla 3(Exit),
  238.                 {
  239.                     system("cls");
  240.                     printf("\n Upgrade Menu \n");
  241.                     printf("\n\t1. Weapons\n\t2. Armor\n\t3. Return\n\n");
  242.                     printf("\n\nGold: %u\n\n", Gold);       // Estado actual do GOLD.
  243.                     Player_option = getch();        // Leitura da opcao do utilizador.
  244.  
  245.                     if( Player_option == '1' )      // Se a opcao do utilizador for igual a 1(Weapons), Prosseguir.
  246.                     {
  247.                         while( Player_option != Return6 )   // Correr este Menu enquanto nao for pressionado a tecla 6(Return6).
  248.                         {
  249.                             system("cls");
  250.                             printf("\n Weapons Menu \n");
  251.                             printf("\n\t1. Stick - 450G");
  252.                             StatusPurchase(Stick);          //
  253.                             printf("\n\t2. Knife - 750G");
  254.                             StatusPurchase(Knife);          //
  255.                             printf("\n\t3. Axe - 1100G");
  256.                             StatusPurchase(Axe);            //
  257.                             printf("\n\t4. Saw - 1400G\n");
  258.                             StatusPurchase(Saw);            //
  259.                             printf("\n\t5. Chainsaw - 2000G\n");
  260.                             StatusPurchase(Chainsaw);       // Verificacao de Status dos Items.
  261.                             printf("\n\t6. Return\n");
  262.                             printf("\nCan only be one equiped!\n\n");
  263.                             printf("\n\nGold: %u\n\n", Gold);       // Estado actual do GOLD.
  264.                             Player_option = getch();        // Leitura da opcao do Utilizador.
  265.  
  266.                             if( Player_option >= '1' && Player_option <= '5' )     
  267.                             {                                                      
  268.                                 if( Player_option == '1' && Stick == 0 && Gold >= 450)  // Se a opcao do utilizador for igual a
  269.                                 {                                                       //                  1(Stick), Prosseguir.
  270.                                     if( Knife != 0)     // Se a Knife já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  271.                                     {
  272.                                         Knife = -1;
  273.                                         continue;
  274.                                     }
  275.                                     else    if( Axe != 0 )      // Se a Axe já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  276.                                     {
  277.                                         Axe = -1;
  278.                                         continue;
  279.                                     }
  280.                                     else    if( Saw != 0 )      // Se a Saw já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  281.                                     {
  282.                                         Saw = -1;
  283.                                         continue;
  284.                                     }
  285.                                     else    if ( Chainsaw != 0 )        // Se a Chainsaw já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  286.                                     {
  287.                                         Chainsaw = -1;
  288.                                         continue;
  289.                                     }
  290.                                     Stick++;    // Controlo do Stick.
  291.                                     Gold -= 450;       
  292.                                     Weapon_dmg = 4:
  293.                                 }
  294.                                 else    if( Player_option == '2' && Knife == 0 && Gold >= 750)      // Se a opcao do utilizador for igual a
  295.                                 {                                                                   //                  2(Knife), Prosseguir.
  296.                                     if( Stick >= 1 )        // Se a arma anterior era Stick, retira o damage do Stick para acrescentar o da Knife.
  297.                                         Player_dmg -= 4;
  298.                                     else    if( Axe != 0 )      // Se a Axe já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  299.                                     {
  300.                                         Knife = -1;
  301.                                         continue;
  302.                                     }
  303.                                     else    if( Saw != 0 )      // Se a Saw já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  304.                                     {
  305.                                         Saw = -1;
  306.                                         continue;
  307.                                     }
  308.                                     else    if ( Chainsaw != 0 )        // Se a Chainsaw já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  309.                                     {
  310.                                         Chainsaw = -1;
  311.                                         continue;
  312.                                     }
  313.                                     Stick = -1;     // Inutilizar armas passadas.
  314.                                     Knife++;
  315.                                     Gold -= 750;       
  316.                                     Weapon_dmg = 8;
  317.                                 }
  318.                                 else    if( Player_option == '3' && Axe == 0 && Gold >= 1100)       // Se a opcao do utilizador for igual a
  319.                                 {                                                                   //                  3(Axe), Prosseguir.
  320.                                     if( Stick >= 1 )        // Se a arma anterior era Stick, retira o damage do Stick para acrescentar o da Axe.
  321.                                         Player_dmg -= 4;
  322.                                     if( Knife >= 1 )        // Se a arma anterior era Knife, retira o damage do Stick para acrescentar o da Axe.
  323.                                         Player_dmg -= 8;
  324.                                     else    if( Saw != 0 )      // Se a Saw já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  325.                                     {
  326.                                         Saw = -1;
  327.                                         continue;
  328.                                     }
  329.                                     else    if ( Chainsaw != 0 )        // Se a Chainsaw já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  330.                                     {
  331.                                         Chainsaw = -1;
  332.                                         continue;
  333.                                     }
  334.                                     Stick = Knife = -1;     // Inutilizar armas passadas.
  335.                                     Axe++;
  336.                                     Gold -= 1100;
  337.                                     Weapon_dmg = 14;
  338.                                 }
  339.                                 else    if( Player_option == '4' && Saw == 0 && Gold >= 1400 )      // Se a opcao do utilizador for igual a
  340.                                 {                                                                   //                  4(Saw), Prosseguir.
  341.                                     if( Stick >= 1 )        // Se a arma anterior era Stick, retira o damage do Stick para acrescentar o da Saw.
  342.                                         Player_dmg -= 4;   
  343.                                     if( Knife >= 1 )        // Se a arma anterior era Knife, retira o damage do Stick para acrescentar o da Saw.
  344.                                         Player_dmg -= 8;
  345.                                     if( Axe >= 1 )      // Se a arma anterior era Axe, retira o damage do Stick para acrescentar o da Saw.
  346.                                         Player_dmg -= 14;
  347.                                     if ( Chainsaw != 0 )        // Se a Chainsaw já tiver sido comprada, fica inutilizada de vez para nao se comprar denovo.
  348.                                     {
  349.                                         Chainsaw = -1;
  350.                                         continue;
  351.                                     }
  352.                                     Stick = Knife = Axe = -1;       // Inutilizar armas passadas.
  353.                                     Saw++;
  354.                                     Gold -= 1400;
  355.                                     Weapon_dmg = 17;
  356.                                 }
  357.                                 else    if( Player_option == '5' && Chainsaw == 0 && Gold >= 2000 )     // Se a opcao do utilizador for igual a
  358.                                 {                                                                       //              5(Chainsaw), Prosseguir.
  359.                                     if( Stick >= 1 )        // Se a arma anterior era Stick, retira o damage do Stick para acrescentar o da Chainsaw.
  360.                                         Player_dmg -= 4;
  361.                                     if( Knife >= 1 )        // Se a arma anterior era Knife, retira o damage do Stick para acrescentar o da Chainsaw.
  362.                                         Player_dmg -= 8;
  363.                                     if( Axe >= 1 )      // Se a arma anterior era Axe, retira o damage do Stick para acrescentar o da Chainsaw.
  364.                                         Player_dmg -= 14;
  365.                                     if( Saw >= 1 )      // Se a arma anterior era Saw, retira o damage do Stick para acrescentar o da Chainsaw.
  366.                                         Player_dmg -= 18;
  367.                                     Stick = Knife = Axe = Saw = -1;     // Inutilizar armas passadas.
  368.                                     Chainsaw++;
  369.                                     Gold -= 2000;
  370.                                     Weapon_dmg = 22;
  371.                                 }
  372.                                 Player_dmg = _Boost(Player_dmg, Weapon_dmg);        // Incrementacao de Damage do stick(4).
  373.                                 Ini_Pla_dmg = Player_dmg;       // Actualizacao do damage inicial.
  374.                                 Weapon_dmg = 0;
  375.                             }
  376.                         }
  377.                     }
  378.                     else    if( Player_option == '2' )      // Se a opcao do utilizador for 2(Armor), Prosseguir.
  379.                     {
  380.                         while( Player_option != Return6 )       // Correr o Menu enquanto o utilizador nao pressionar a tecla 6(Return6).
  381.                         {
  382.                             system("cls");
  383.                             printf("\n Armor Menu \n");
  384.                             printf("\n\t1. Shield - 400G");
  385.                             StatusPurchase(Shield);         //
  386.                             printf("\n\t2. Helmet - 675G");
  387.                             StatusPurchase(Helmet);         //
  388.                             printf("\n\t3. kevlar - 1300G");
  389.                             StatusPurchase(Kevlar);         //
  390.                             printf("\n\t4. Iron-Pants - 2000G");
  391.                             StatusPurchase(Ironpants);      //
  392.                             printf("\n\t5. Iron-Shirt - 2700G");
  393.                             StatusPurchase(Ironshirt);      // Verificacao de Status dos Items.
  394.                             printf("\n\t6. Return\n\n");
  395.                             printf("\n\nGold: %u\n\n", Gold);
  396.                             Player_option = getch();
  397.  
  398.                             if( Player_option >= '1' && Player_option <= '5' )      // Se a opcao for Válida, Avançar.
  399.                             {
  400.                                 if( Player_option == '1' && Shield == 0 && Gold >= 400 )        // Se a opcao for igual a 1(Shield), Prosseguir.
  401.                                 {
  402.                                     Shield++;
  403.                                     Gold -= 400;
  404.                                     Armor_hp = 15;
  405.                                 }
  406.                                 else    if( Player_option == '2' && Helmet == 0 && Gold >= 675 )        // Se a opcao for igual a 2(Helmet), Prosseguir
  407.                                 {
  408.                                     Helmet++;
  409.                                     Gold -= 675;
  410.                                     Armor_hp = 20;
  411.                                 }
  412.                                 else    if( Player_option == '3' && Kevlar == 0 && Gold >= 1300 )       // Se a opcao for igual a 3(Kevlar), Prosseguir
  413.                                 {
  414.                                     Kevlar++;
  415.                                     Gold -= 1300;
  416.                                     Armor_hp = 30;
  417.                                 }  
  418.                                 else    if( Player_option == '4' && Ironpants == 0 && Gold >= 2000 )        // Se a opcao for igual a 4(Ironpants), Prosseguir
  419.                                 {
  420.                                     Ironpants++;
  421.                                     Gold -= 2000;
  422.                                     Armor_hp = 45;
  423.                                 }
  424.                                 else    if( Player_option == '5' && Ironshirt == 0 && Gold >= 2700 )        // Se a opcao for igual a 5(Ironshirt), Prosseguir
  425.                                 {
  426.                                     Ironshirt++;
  427.                                     Gold -= 2700;
  428.                                     Armor_hp = 65;
  429.                                 }
  430.                                 Player_hp = _Boost(Player_hp, Armor_hp);        // Incrementaçao de HP por 120
  431.                                 Ini_Pla_hp = Player_hp;     // Actualizacao do HP Inicial.
  432.                                 Armor_hp = 0;
  433.                             }
  434.                         }
  435.                     }
  436.                     else    if( Player_option == 'C' )      // Menu Secreto(Cheats) < Shift + C >.
  437.                     {
  438.                         while( Player_option != Return )        // Correr o Menu enquanto nao for pressionado a tecla 4(Return).
  439.                         {
  440.                             system("cls");
  441.                             printf("\n Password: ");
  442.                             fflush(stdin);
  443.                             scanf("%s", Digited_Pass);
  444.                             if( _PasswordValid(Digited_Pass,PASS) )
  445.                             {
  446.                                 printf("\n\n Password Wrong! \n\n");
  447.                                 _Pause();
  448.                                 break;
  449.                             }
  450.                             printf("\n Cheats Menu \n");
  451.                             printf("\n\t1. Gold +2000");
  452.                             printf("\n\t2. Damage +10");
  453.                             printf("\n\t3. HP + 50");
  454.                             printf("\n\t4. Return\n");
  455.                             printf("\n  Actual:\n\tGold: %u\n\tDamage: %d\n\tHP: %d\n\n", Gold, Player_dmg, Player_hp);     // Estados actuais do Gold, HP e DMG.
  456.                             Player_option = getch();        // Leitura da opcao do Utilizador.
  457.  
  458.                             switch( Player_option )
  459.                             {
  460.                             case '1': Gold += 2000; break;      // Incrementacao de Gold se a opcao for igual a 1.
  461.                             case '2': Player_dmg += 10; break;      // Incrementacao de DMG se a opcao for igual a 2.
  462.                             case '3': Player_hp += 50; break;       // Incrementacao de HP se a opcao for igual a 3.
  463.                             }
  464.                         }
  465.                     }
  466.  
  467.                 }
  468.                 Player_option = 0;
  469.                 system("cls");
  470.             }
  471.             //-------------------------------------FIM DE OPCAO DE UPGRADES------------------------------------//
  472.  
  473.         }
  474.         if( Player_option == Exit )
  475.             return 0;
  476.  
  477.         Ini_En_dmg = EnemyDMG_Inc(Ini_En_dmg, Rounds) ;     // Incrementaçao do DMG inicial do Enemy.
  478.         Ini_En_hp  = EnemyHP_inc(Ini_En_hp, Rounds) ;       // Incrementaçao do HP inicial do Enemy.
  479.  
  480.         Enemy_dmg = Ini_En_dmg;     // Actualizacao do DMG de cada combate.
  481.         Enemy_hp = Ini_En_hp;       // Actualizacao do HP de cada combate.
  482.     }
  483.     //------------------------------------FIM DE SISTEMA DE RONDAS & GOLD-------------------------------------//
  484.  
  485.     return 0;
  486. }
  487.  
  488. int _Attack(int Attacker_dmg, int Defender_hp)      // Simulacao de ataque com variacoes random.
  489. {
  490.     int temp_attack=0, minimal_damage;
  491.     minimal_damage = Attacker_dmg - 4;      // A variavel minimal_damage é igual ao damage efectuado pelo atacante menos 4.
  492.     srand((unsigned)(time(NULL)));
  493.  
  494.     temp_attack = rand() % (Attacker_dmg - minimal_damage + 1) + minimal_damage;        // Numero random entre minimal_damage e Attacker_dmg.
  495.  
  496.     return ( Defender_hp -= temp_attack );      // A funcao retorna o hp do defensor depois de ser atacado.
  497. }
  498.  
  499. int _Boost(int BoostWhat, int Increment )       // Incremento de uma variavel.
  500. {
  501.     return BoostWhat+Increment;     // A funcao retorna o valor de uma variavel com um incremento.
  502. }
  503.  
  504. void _Pause(void)       // Funcao Pause (Similar a funcao system("pause"); ).
  505. {
  506.     int click=0;
  507.     printf("\n Please Click Space \n");
  508.     while( click != Space )     // Enquanto o utilizador nao pressionar espaço o ciclo nao termina.
  509.         click = getch();        // Leitura da tecla pressionada.
  510. }
  511.  
  512. int GoldInc(int Round, int Win_or_Los)      // Incrementacao do GOLD
  513. {  
  514.     if( Win_or_Los == 1 )       // Se o Player Ganhar.
  515.         return ( Round == 1 ) ? 200 : ( 150 * Round + 50 );
  516.     else        // Se o Player Perder.
  517.         return ( Round == 1 ) ? 50 : ( 25 * Round + 25 );
  518. }
  519.  
  520. void StatusPurchase(int Item)       // Verificacao de status dos items disponiveis nos upgrades.
  521. {
  522.     if( Item == 0 )     // Se o item for igual a 0(Não está comprado).
  523.         printf(" <- Purchase ->");
  524.     else    if( Item > 0 )      // Se o item for maior que 0(Esta comprado e equipado).
  525.         printf(" <+ Equipped +>");     
  526.     else    if( Item == -1 )        // Se o item for igual a -1(Nao pode ser comprado).
  527.         printf(" < Unpurchaseble >");
  528. }
  529.  
  530. int EnemyDMG_Inc(int Actual_dmg, int Round)     // Incrementacao de damage do Enemy por Round.
  531. {
  532.     if( Round <= ROUNDMAX - 10 )        // Enquanto Round <= ROUNDMAX - 10, Acrescentar +1 ao DMG por ronda.
  533.         return Actual_dmg++;
  534.     else    if( Round <= ROUNDMAX - 1 )     // Enquanto Round <= ROUNDMAX - 1, Acrescentar +2 ao DMG por ronda.
  535.         return Actual_dmg += 2;
  536.     else    if( Round == ROUNDMAX )     // Na Ultima ronda adicionar +8 ao DMG.
  537.         return Actual_dmg += 8;
  538. }
  539.  
  540. int EnemyHP_inc(int Actual_hp, int Round)       // Incrementacao de HP do Enemy por Round.
  541. {
  542.     if( Round <= 6 )        // Enquanto a Ronda for menor que 6, adicionar 5 de HP por Ronda.
  543.         return Actual_hp + 5;
  544.     else    if( Round <= 12 )       // Enquanto a Ronda for menor que 12 e maior que 6, adicionar 10 de HP por Ronda.
  545.         return Actual_hp + 10;
  546.     else    if( Round <= 19 )       // Enquanto a Ronda for menor que 19 e maior que 12, adicionar 15 de HP por Ronda.
  547.         return Actual_hp + 15;
  548.     else    if( Round == ROUNDMAX )     // Na ultima ronda, adicionar 40 HP.
  549.         return Actual_hp + 40;
  550. }
  551.  
  552. int _PasswordValid(char Digited_Pass[], char Pass[])
  553. {
  554.     int temp=0;
  555.     temp = strcmp(Digited_Pass,Pass);
  556.     return temp;
  557. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement