Advertisement
Guest User

Nature.h

a guest
Jun 17th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.74 KB | None | 0 0
  1. #include "Nature.h"
  2. #include <vector>
  3. #include <iostream>
  4.  
  5. void Nature::resetBuffDebuff(Nature n) {
  6.     n.buff = 0.0;
  7.     n.debuff = 0.0;
  8. }
  9. void Nature::setBuffDebuff(Nature n) {
  10.     n.buff = 1.1;
  11.     n.debuff = 0.9;
  12. }
  13. void Nature::initNatures () {
  14.     Nature n;
  15.  
  16.     for (int i = 0; i < 25; i++) {
  17.         switch (i) {
  18.             case 0:
  19.                 n.name = "Hardy";
  20.                 resetBuffDebuff(n);
  21.                 break;
  22.             case 1:
  23.                 n.name = "Lonely";
  24.                 setBuffDebuff(n);
  25.                 break;
  26.             case 2:
  27.                 n.name = "Brave";
  28.                 break;
  29.             case 3:
  30.                 n.name = "Adamant";
  31.                 break;
  32.             case 4:
  33.                 n.name = "Naughty";
  34.                 break;
  35.             case 5:
  36.                 n.name = "Bold";
  37.                 break;
  38.             case 6:
  39.                 n.name = "Docile";
  40.                 resetBuffDebuff(n);
  41.                 break;
  42.             case 7:
  43.                 n.name = "Relaxed";
  44.                 setBuffDebuff(n);
  45.                 break;
  46.             case 8:
  47.                 n.name = "Impish";
  48.                 break;
  49.             case 9:
  50.                 n.name = "Lax";
  51.                 break;
  52.             case 10:
  53.                 n.name = "Timid";
  54.                 break;
  55.             case 11:
  56.                 n.name = "Hasty";
  57.                 break;
  58.             case 12:
  59.                 n.name = "Serious";
  60.                 resetBuffDebuff(n);
  61.                 break;
  62.             case 13:
  63.                 n.name = "Jolly";
  64.                 setBuffDebuff(n);
  65.                 break;
  66.             case 14:
  67.                 n.name = "Naive";
  68.                 break;
  69.             case 15:
  70.                 n.name = "Modest";
  71.                 break;
  72.             case 16:
  73.                 n.name = "Mild";
  74.                 break;
  75.             case 17:
  76.                 n.name = "Quiet";
  77.                 break;
  78.             case 18:
  79.                 n.name = "Bashful";
  80.                 resetBuffDebuff(n);
  81.                 break;
  82.             case 19:
  83.                 n.name = "Rash";
  84.                 setBuffDebuff(n);
  85.                 break;
  86.             case 20:
  87.                 n.name = "Calm";
  88.                 break;
  89.             case 21:
  90.                 n.name = "Gentle";
  91.                 break;
  92.             case 22:
  93.                 n.name = "Sassy";
  94.                 break;
  95.             case 23:
  96.                 n.name = "Careful";
  97.                 break;
  98.             case 24:
  99.                 n.name = "Quirky";
  100.                 resetBuffDebuff(n);
  101.                 break;
  102.         }
  103.         if (i == 0) {
  104.             std::cout << "\n";
  105.         }
  106.         natureList[i] = n;
  107.     }
  108. }
  109. std::string Nature::natureDescription(Nature n) {
  110.     int i = 0;
  111.  
  112.     for(i; i < natureList.size(); i++) {
  113.         if (natureList[i].name == n.name)
  114.             break;
  115.     }
  116.  
  117.     switch (i) {
  118.         case 0:
  119.             return "No stat modifiers.";
  120.         case 1:
  121.             return "Raises Attack, lowers Defense.";
  122.         case 2:
  123.             return "Raises Attack, lowers Evasiveness.";
  124.         case 3:
  125.             return "Raises Attack, lowers Special Attack.";
  126.         case 4:
  127.             return "Raises Attack, lowers Special Defense.";
  128.         case 5:
  129.             return "Raises Defense, lowers Attack.";
  130.         case 6:
  131.             return "No stat modifiers.";
  132.         case 7:
  133.             return "Raises Defense, lowers Evasiveness.";
  134.         case 8:
  135.             return "Raises Defense, lowers Special Attack.";
  136.         case 9:
  137.             return "Raises Defense, lowers Special Defense.";
  138.         case 10:
  139.             return "Raises Evasiveness, lowers Attack.";
  140.         case 11:
  141.             return "Raises Evasiveness, lowers Defense.";
  142.         case 12:
  143.             return "No stat modifiers.";
  144.         case 13:
  145.             return "Raises Evasiveness, lowers Special Attack.";
  146.         case 14:
  147.             return "Raises Evasiveness, lowers Special Defense.";
  148.         case 15:
  149.             return "Raises Special Attack, lowers Attack.";
  150.         case 16:
  151.             return "Raises Special Attack, lowers Defense.";
  152.         case 17:
  153.             return "Raises Special Attack, lowers Evasiveness.";
  154.         case 18:
  155.             return "No stat modifiers.";
  156.         case 19:
  157.             return "Raises Special Attack, lowers Special Defense.";
  158.         case 20:
  159.             return "Raises Special Defense, lowers Attack.";
  160.         case 21:
  161.             return "Raises Special Defense, lowers Defense.";
  162.         case 22:
  163.             return "Raises Special Defense, lowers Evasiveness.";
  164.         case 23:
  165.             return "Raises Special Defense, lowers Special Attack";
  166.         case 24:
  167.             return "No stat modifiers.";
  168.         default:
  169.             //** In case I did something wrong **//
  170.             return "IF YOU ARE SEEING THIS THIS MEANS THAT THE CODE HAS FAILED SOMEWHERE. REPORT IT IMMEDIATELY.";
  171.     }
  172. }
  173. void Nature::applyNatureStatChanges (Pokemon::Pokemon p) {
  174.     int n = p.nature;
  175.  
  176.     switch (n) {
  177.         case 1:
  178.             p.attack *= natureList[n].buff;
  179.             p.defense *= natureList[n].debuff;
  180.             break;
  181.         case 2:
  182.             p.attack *= natureList[n].buff;
  183.             p.evasiveness *= natureList[n].debuff;
  184.             break;
  185.         case 3:
  186.             p.attack *= natureList[n].buff;
  187.             p.spAttack *= natureList[n].debuff;
  188.             break;
  189.         case 4:
  190.             p.attack *= natureList[n].buff;
  191.             p.spDefense *= natureList[n].debuff;
  192.             break;
  193.         case 5:
  194.             p.defense *= natureList[n].buff;
  195.             p.attack *= natureList[n].debuff;
  196.             break;
  197.         case 7:
  198.             p.defense *= natureList[n].buff;
  199.             p.evasiveness *= natureList[n].debuff;
  200.             break;
  201.         case 8:
  202.             p.defense *= natureList[n].buff;
  203.             p.spAttack *= natureList[n].debuff;
  204.             break;
  205.         case 9:
  206.             p.defense *= natureList[n].buff;
  207.             p.spDefense *= natureList[n].debuff;
  208.             break;
  209.         case 10:
  210.             p.evasiveness *= natureList[n].buff;
  211.             p.attack *= natureList[n].debuff;
  212.             break;
  213.         case 11:
  214.             p.evasiveness *= natureList[n].buff;
  215.             p.defense *= natureList[n].debuff;
  216.             break;
  217.         case 13:
  218.             p.evasiveness *= natureList[n].buff;
  219.             p.spAttack *= natureList[n].debuff;
  220.             break;
  221.         case 14:
  222.             p.evasiveness *= natureList[n].buff;
  223.             p.spDefense *= natureList[n].debuff;
  224.             break;
  225.         case 15:
  226.             p.spAttack *= natureList[n].buff;
  227.             p.attack *= natureList[n].debuff;
  228.             break;
  229.         case 16:
  230.             p.spAttack *= natureList[n].buff;
  231.             p.defense *= natureList[n].debuff;
  232.             break;
  233.         case 17:
  234.             p.spAttack *= natureList[n].buff;
  235.             p.evasiveness *= natureList[n].debuff;
  236.             break;
  237.         case 19:
  238.             p.spAttack *= natureList[n].buff;
  239.             p.spDefense *= natureList[n].debuff;
  240.             break;
  241.         case 20:
  242.             p.spDefense *= natureList[n].buff;
  243.             p.attack *= natureList[n].debuff;
  244.             break;
  245.         case 21:
  246.             p.spDefense *= natureList[n].buff;
  247.             p.defense *= natureList[n].debuff;
  248.             break;
  249.         case 22:
  250.             p.spDefense *= natureList[n].buff;
  251.             p.evasiveness *= natureList[n].debuff;
  252.             break;
  253.         case 23:
  254.             p.spDefense *= natureList[n].buff;
  255.             p.spAttack *= natureList[n].debuff;
  256.             break;
  257.         default:
  258.             return;
  259.     }
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement