Pokemon Project

Dependencies:   C12832 LM75B MMA7660 mbed

Committer:
dhermy01
Date:
Mon Jan 23 17:28:34 2017 +0000
Revision:
0:cec9a625dfb9
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dhermy01 0:cec9a625dfb9 1 #include "player.h"
dhermy01 0:cec9a625dfb9 2 #include "LM75B.h"
dhermy01 0:cec9a625dfb9 3 #include <stdio.h>
dhermy01 0:cec9a625dfb9 4 #include "C12832.h"
dhermy01 0:cec9a625dfb9 5
dhermy01 0:cec9a625dfb9 6 // init var and captor
dhermy01 0:cec9a625dfb9 7 C12832 lcd2(D11, D13, D12, D7, D10);
dhermy01 0:cec9a625dfb9 8 std::string TYPEStr[3] = {"FIRE", "WATER", "GRASS"};
dhermy01 0:cec9a625dfb9 9 LM75B sensorTemp(D14,D15);
dhermy01 0:cec9a625dfb9 10 int temp;
dhermy01 0:cec9a625dfb9 11
dhermy01 0:cec9a625dfb9 12 // create player
dhermy01 0:cec9a625dfb9 13 Player::Player(void) {
dhermy01 0:cec9a625dfb9 14 Player(1, 15, FIRE);
dhermy01 0:cec9a625dfb9 15 }
dhermy01 0:cec9a625dfb9 16
dhermy01 0:cec9a625dfb9 17 // setters player
dhermy01 0:cec9a625dfb9 18 Player::Player(uns l, uns att, Type_e t) {
dhermy01 0:cec9a625dfb9 19 lvl = l;
dhermy01 0:cec9a625dfb9 20 attackDmg = att;
dhermy01 0:cec9a625dfb9 21 type = t;
dhermy01 0:cec9a625dfb9 22 exp = 0;
dhermy01 0:cec9a625dfb9 23 crit = 0.0f;
dhermy01 0:cec9a625dfb9 24 }
dhermy01 0:cec9a625dfb9 25
dhermy01 0:cec9a625dfb9 26 // fight function
dhermy01 0:cec9a625dfb9 27 int Player::fight(Player p) {
dhermy01 0:cec9a625dfb9 28 int win = 0;
dhermy01 0:cec9a625dfb9 29 uns newAtt = 0;
dhermy01 0:cec9a625dfb9 30 if ((p.type == FIRE && type == WATER )|| (p.type == GRASS && type == FIRE) || (p.type == WATER && type == GRASS)) {
dhermy01 0:cec9a625dfb9 31 newAtt = 2 * attackDmg;
dhermy01 0:cec9a625dfb9 32 if (newAtt >= p.attackDmg) win = 1;
dhermy01 0:cec9a625dfb9 33 else if (newAtt < p.attackDmg) win = -1;
dhermy01 0:cec9a625dfb9 34 } else if ((p.type == WATER && type == FIRE) || (p.type == GRASS && type == WATER) || (p.type == FIRE && type == GRASS)) {
dhermy01 0:cec9a625dfb9 35 newAtt = (uns)(attackDmg >> 1);
dhermy01 0:cec9a625dfb9 36 if (newAtt >= p.attackDmg) win = 1;
dhermy01 0:cec9a625dfb9 37 else if (newAtt < p.attackDmg) win = -1;
dhermy01 0:cec9a625dfb9 38 } else {
dhermy01 0:cec9a625dfb9 39 newAtt = attackDmg;
dhermy01 0:cec9a625dfb9 40 if (newAtt >= p.attackDmg) win = 1;
dhermy01 0:cec9a625dfb9 41 else if (newAtt < p.attackDmg) win = -1;
dhermy01 0:cec9a625dfb9 42 }
dhermy01 0:cec9a625dfb9 43 if (win == 1) exp += 20;
dhermy01 0:cec9a625dfb9 44 return win;
dhermy01 0:cec9a625dfb9 45 }
dhermy01 0:cec9a625dfb9 46
dhermy01 0:cec9a625dfb9 47 // level up function
dhermy01 0:cec9a625dfb9 48 void Player::lvlUp() {
dhermy01 0:cec9a625dfb9 49 lvl++;
dhermy01 0:cec9a625dfb9 50 attackDmg += 2;
dhermy01 0:cec9a625dfb9 51 crit += 0.05f;
dhermy01 0:cec9a625dfb9 52 exp = 0;
dhermy01 0:cec9a625dfb9 53 }
dhermy01 0:cec9a625dfb9 54
dhermy01 0:cec9a625dfb9 55 // check exp function
dhermy01 0:cec9a625dfb9 56 void Player::checkEXP() {
dhermy01 0:cec9a625dfb9 57 if (exp >= 100) {
dhermy01 0:cec9a625dfb9 58 Player::lvlUp();
dhermy01 0:cec9a625dfb9 59 }
dhermy01 0:cec9a625dfb9 60 }
dhermy01 0:cec9a625dfb9 61
dhermy01 0:cec9a625dfb9 62 // set the type of pokemon
dhermy01 0:cec9a625dfb9 63 void Player::setType(Type_e t) {
dhermy01 0:cec9a625dfb9 64 type = t;
dhermy01 0:cec9a625dfb9 65 if(t == FIRE){
dhermy01 0:cec9a625dfb9 66 temp = sensorTemp.temp();
dhermy01 0:cec9a625dfb9 67 if(temp > 28){
dhermy01 0:cec9a625dfb9 68 attackDmg = attackDmg+4;
dhermy01 0:cec9a625dfb9 69 }
dhermy01 0:cec9a625dfb9 70 }
dhermy01 0:cec9a625dfb9 71 else if(t==GRASS)
dhermy01 0:cec9a625dfb9 72 {
dhermy01 0:cec9a625dfb9 73 temp = sensorTemp.temp();
dhermy01 0:cec9a625dfb9 74 if(temp < 28 && temp > 18){
dhermy01 0:cec9a625dfb9 75 attackDmg = attackDmg+4;
dhermy01 0:cec9a625dfb9 76 }
dhermy01 0:cec9a625dfb9 77 }
dhermy01 0:cec9a625dfb9 78 else if(t==WATER)
dhermy01 0:cec9a625dfb9 79 {
dhermy01 0:cec9a625dfb9 80 temp = sensorTemp.temp();
dhermy01 0:cec9a625dfb9 81 if(temp < 18){
dhermy01 0:cec9a625dfb9 82 attackDmg = attackDmg+4;
dhermy01 0:cec9a625dfb9 83 }
dhermy01 0:cec9a625dfb9 84 }
dhermy01 0:cec9a625dfb9 85
dhermy01 0:cec9a625dfb9 86 }
dhermy01 0:cec9a625dfb9 87
dhermy01 0:cec9a625dfb9 88 // set text of player
dhermy01 0:cec9a625dfb9 89 std::string Player::toString(void) {
dhermy01 0:cec9a625dfb9 90 std::string res = "STAT: \n" ;
dhermy01 0:cec9a625dfb9 91 char num[40];
dhermy01 0:cec9a625dfb9 92 char num2[40];
dhermy01 0:cec9a625dfb9 93 char num3[40];
dhermy01 0:cec9a625dfb9 94 sprintf(num, "Lvl: %u ", lvl);
dhermy01 0:cec9a625dfb9 95 snprintf(num3, 40, "Exp: %u ", exp);
dhermy01 0:cec9a625dfb9 96 sprintf(num2, "Att: %u \nType: %s", attackDmg, TYPEStr[type].c_str());
dhermy01 0:cec9a625dfb9 97 res += num;
dhermy01 0:cec9a625dfb9 98 res += num3;
dhermy01 0:cec9a625dfb9 99 res += num2;
dhermy01 0:cec9a625dfb9 100 return (res);
dhermy01 0:cec9a625dfb9 101 }