static void appl(int p, int s, BS &b) { if (b.koed(s)) return; int minmove = 0; int minPP = 100; bool init = false; bool zeroPP = false; for (int i = 0; i < 4; i++) { if (b.move(s, i) == 0) { continue; } if (b.PP(s, i) == 0) { zeroPP = true; init = true; minmove = i; minPP = 0; break; } if (b.PP(s, i) < minPP && (fpoke(b, s).moves[i] == b.poke(s).move(i).num() ? b.PP(s, i) < b.poke(s).move(i).totalPP() : b.PP(s, i) < 5)) { minmove = i; init = true; minPP = b.PP(s, i); } } if (init && (zeroPP || turn(b,p).value("BugBiter").toBool())) { b.eatBerry(s, s==p); b.sendBerryMessage(2,s,0,0,0,b.move(s,minmove)); b.gainPP(s,minmove,b.gen() <= 2 ? 5 : 10); } }
static void appl(int s, int, BS &b) { int minmove = 0; int minPP = 100; bool init = false; bool zeroPP = false; for (int i = 0; i < 4; i++) { if (b.move(s, i) == 0) { continue; } if (b.poke(s).move(i).PP() == 0) { zeroPP = true; init = true; minmove = i; minPP = 0; break; } if (b.poke(s).move(i).PP() < minPP && b.poke(s).move(i).PP() < b.poke(s).move(i).totalPP()) { minmove = i; init = true; minPP = b.poke(s).move(i).PP(); } } if (init && (zeroPP || turn(b,s).value("BugBiter").toBool())) { b.eatBerry(s); b.sendBerryMessage(2,s,0,0,0,b.move(s,minmove)); b.gainPP(s,minmove,10); } }
static void ti(int p, int s, BS &b) { int attack = turn(b,p).value("ItemAttackSlot").toInt(); int pp = poke(b,p).value("ItemArg").toInt(); if (pp == 0) { pp = 99; } b.sendBerryMessage(2,s,0,0,0,b.move(s,attack)); b.gainPP(s, attack, pp); }
static void ti(int p, int s, BS &b) { int pp = poke(b,p).value("ItemArg").toInt(); if (pp == 0) { pp = 99; } b.sendBerryMessage(2,s,1); for (int i = 0; i < 4; i++) { if (b.move(s,i) != Move::NoMove) { b.gainPP(s, i, pp); } } }
static void ti(int, int p, BS &b) { for (int i = 0; i < 6; i++) { int s = b.slot(p, i); b.changeHp(s, b.poke(s).totalLifePoints()); if (b.koed(s)) { b.sendItemMessage(1999, s); } b.changeStatus(p, i, Pokemon::Fine); for (int j = 0; j < 4; j++) { if (b.move(s, j) != Move::NoMove) { b.gainPP(s, j, 99); } } } }