NumHeal = i * 5;
bag.NumMgWorter = i * 5;
}
bool attack(player &p);
bool TSattack(player &p);
void IsLvUp();
};
bool Archer::attack(player &p)
{
int Hphit;
int EXPhit;
cout << name << "攻击" << endl;
srand(time(NULL));
int j = rand()%100;
if (speed >= p.speed && j <= 25)
{
cout << name << "必杀一击" << endl;
Hphit = p.Hp;
p.Hp = p.Hp - (Ap - p.Dp) * 2 * (LV - 1);
cout << "敌人损失Hp " << Hphit - p.Hp << endl;
EXPhit = EXP;
EXP = (Ap - Dp) * 2 * (LV - 1);
cout << name << "获得EXP " << EXPhit - EXP << endl;
p.IsDead();
return true;
}
else if(speed <= p.speed && j >25 && j <=50)
{
cout << "敌人躲避" << endl;
return true;
}
else if(j < 100 && j > 50)
{
cout << p.name << "普通攻击 " << endl;
Hphit = p.Hp;
p.Hp = p.Hp - (Ap - p.Dp) * (LV - 1);
cout << "敌人损失Hp " << Hphit - p.Hp << endl;
EXPhit = EXP;
EXP = (Ap - Dp) * ( LV - 1);
cout << p.name << "获得EXP " << EXPhit - EXP << endl;
p.IsDead();
return true;
}
else
return false;
}
bool Archer::TSattack(player &p)
{
srand( time(NULL) );
int j = rand()%100;
int Hphit;
int EXPhit;
if ( Mp >= 50 )
{
cout << p.name << "的绝招..." << endl;
Mp -= 40;
if (j <= 49 || j >= 60)
{
cout << "命中目标 " << endl;
Hphit = p.Hp;
p.Hp = p.Hp - (Ap - p.Dp) * 3 * ( LV -1);
cout << "敌人损失Hp " << Hphit - p.Hp << endl;
EXPhit = EXP;
EXP = (Ap - p.Dp) * 2 * (LV -1 );
cout << p.name << "获得经验 " << EXPhit - EXP << endl;
p.IsDead();
return true;
}
else
{
cout << "目标移动" << p.name << "攻击无效" << endl;
return true;
}
}
else
{
cout << "魔法不足! " << endl;
return false;
}
}
void Archer::IsLvUp()
{
if (EXP >= LV * LV * 75)
{
EXP -= LV * LV * 75;
++LV;
HpMax = 150 + 8 * (LV -1);
MpMax = 80 + 3 * (LV -1);
Ap += 3;
Dp += 3;
speed += 4;
cout << name << "升级了~,等级为" << LV << endl;
}
}
class Mage:public player
{
public:
Mage(int i, char *chname)
{
role = mg;
int j;
for (j=0; j<10; j++)
{
name[j] = chname[j];
}
Hp = 150 + 8 * (i - 1);
HpMax = 150 + 8 * (i - 1);
Mp = 80 + 3 * (i - 1);
MpMax = 80 + 3 * (i - 1);
Ap = 25 + 4 * (i - 1);
Dp = 25 + 4 * (i - 1);
speed = 25 + 2 * (i - 1);
LV = i;
death = 0;
EXP = LV * LV * 75;
bag.NumHeal = i * 5;
bag.NumMgWorter = i * 5;
}
bool attack(player &p);
bool TSattack(player &p);
void IsLvUp();
};
bool Mage::attack(player &p)
{
int Hphit;
int EXPhit;
cout << name << "攻击" << endl;
srand(time(NULL));
int j = rand()%100;
if (speed >= p.speed && j <= 25)
{
cout << "必杀" << endl;
Hphit = p.Hp;
p.Hp = p.Hp - (Ap - p.Dp) * 2 * (LV - 1);
cout << "敌人损失Hp " << Hphit - p.Hp << endl;
EXPhit = EXP;
EXP = (Ap - Dp) * 2 * (LV - 1);
cout << "获得EXP " << EXPhit - EXP << endl