#include <iostream>
#include <stdlib.h>
#include <time.h>
#include "game.h"
using namespace std;
//战斗方法:根据能量和血量来判断双方使用的技能
void Battle::fight(CHero *P1, CEnemy *P2) {
while (!P1->IsDead() && !P2->IsDead()) {
if (P1->SPEED >= 100 && P1->ENERGY >= 20 && P1->HP < 50) {
//如果英雄速度值满且能量大于20血量低于50,则释放大招抱摔
P1->Wrestle(P2);
P1->SPEED = P1->SPEED % 100;
P1->ENERGY = P1->ENERGY % 100;
P1->ENERGY -= 20;
}
else if (P1->SPEED >= 100 && P1->ENERGY >= 50) {
//如果英雄速度满且能量大于50血量正常,则释放踢腿
P1->HKick(P2);
P1->SPEED = P1->SPEED % 100;
P1->ENERGY = P1->ENERGY % 100;
P1->ENERGY -= 50;
}
else if (P1->SPEED >= 100) {
//如果英雄速度满且不满足上面的条件,则释放普攻
P1->Attack(P2);
P1->SPEED = P1->SPEED % 100;
P1->ENERGY += 35;
}
else if (P2->SPEED >= 100 && P2->ENERGY > 50 && P2->HP < 30) {
//如果敌人速度满且能量大于50血量低于30,则释放大招连环腿
P2->EKick(P1);
P2->SPEED = P2->SPEED % 100;
P2->ENERGY -= 50;
}
else if (P2->SPEED >= 100 && P2->ENERGY > 70) {
//如果敌人速度满且能量大于70血量正常,则释放劈掌
P2->Splitting(P1);
P2->SPEED = P2->SPEED % 100;
P2->ENERGY -= 70;
}
else if (P2->SPEED >= 100) {
//如果敌人速度满
P2->Attack(P1);
P2->SPEED = P2->SPEED % 100;
P2->ENERGY += 30;
}
P1->SPEED += 15 * P1->Lv;
P2->SPEED += 10 * P2->Lv;
}
}
//逃跑方法:有40的概率逃跑失败
bool Battle::run() {
int chance;
srand((unsigned)time(NULL));
chance = (rand() % 5) + 1;
if (chance < 3) {
return true;
}
else {
return false;
}
}
//战斗后的成长
void Battle::grow(CHero *P1) {
P1->EXP += 50;
P1->HP += 30;
}