Untitled
unknown
c_cpp
3 years ago
2.5 kB
12
Indexable
void level_up(Pokemon *P)
{
if (P->level < 5)
{
P->level++;
P->attack += lvup_atk;
P->defense += lvup_dfn;
P->maxHp += lvup_maxHp;
P->maxMp += lvup_maxMp;
P->Hp = P->maxHp;
P->Mp = P->maxMp;
}
}
void battle(Pokemon *A, Pokemon *B)
{
if (A->Hp == 0 && B->Hp == 0)
{
puts("Draw.\n");
puts("");
return;
}
else if (A->Hp == 0)
{
printf("%s is the winner! %s died in vain...\n", B->name, A->name);
puts("");
return;
}
else if (B->Hp == 0)
{
printf("%s is the winner! %s died in vain...\n", A->name, B->name);
puts("");
return;
}
while (1)
{
int Dam = 0;
A->Mp += T;
if (A->Mp > A->maxMp)
A->Mp = A->maxMp;
if (A->Mp >= A->costMp)
{
A->Mp -= A->costMp;
Dam = 2 * A->level * max(A->attack - B->defense, 0) / 100;
B->Hp -= Dam;
if (B->Hp <= 0)
{
B->Hp = 0;
printf("%s used Headbutt!\n", A->name);
printf("%s now has %d HP.\n", B->name, B->Hp);
printf("%s is the winner! %s died in vain...\n", A->name, B->name);
puts("");
return;
}
printf("%s used Headbutt!\n%s now has %d HP.\n", A->name, B->name, B->Hp);
}
else
{
A->Mp += T;
printf("%s used Rest!\n%s now has %d MP.\n", A->name, A->name, A->Mp);
}
B->Mp += T;
if (B->Mp > B->maxMp)
B->Mp = B->maxMp;
if (B->Mp >= B->costMp)
{
B->Mp -= B->costMp;
Dam = 2 * B->level * max(B->attack - A->defense, 0) / 100;
A->Hp -= Dam;
if (A->Hp <= 0)
{
A->Hp = 0;
printf("%s used Headbutt!\n", B->name);
printf("%s now has %d HP.\n", A->name, A->Hp);
printf("%s is the winner! %s died in vain...\n", B->name, A->name);
puts("");
return;
}
printf("%s used Headbutt!\n%s now has %d HP.\n", B->name, A->name, A->Hp);
}
else
{
B->Mp += T;
printf("%s used Rest!\n%s now has %d MP.\n", B->name, B->name, B->Mp);
}
}
}
int max(int a, int b)
{
return a > b ? a : b;
}Editor is loading...