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);
        }
    }
Exemple #2
0
 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);
     }
 }
Exemple #3
0
    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);
    }
Exemple #4
0
    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);
            }
        }
    }
Exemple #5
0
    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);
                }
            }
        }
    }