Untitled
unknown
c_cpp
3 years ago
2.5 kB
3
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...