static void as(int s, int, BS &b) { bool used = false; if (poke(b,s).contains("AttractedTo")) { int seducer = poke(b,s)["AttractedTo"].toInt(); if (poke(b,seducer).contains("Attracted") && poke(b,seducer)["Attracted"].toInt() == s) { removeFunction(poke(b,s), "DetermineAttackPossible", "Attract"); poke(b,s).remove("AttractedTo"); used = true; } } if (b.gen() >= 5) { if (poke(b,s).contains("Tormented")) { removeFunction(poke(b,s), "MovesPossible", "Torment"); poke(b,s).remove("Tormented"); used = true; } if (b.counters(s).hasCounter(BC::Taunt)) { removeFunction(poke(b,s), "MovesPossible", "Taunt"); removeFunction(poke(b,s), "MovePossible", "Taunt"); b.removeEndTurnEffect(BS::PokeEffect, s, "Taunt"); used = true; } if (b.counters(s).hasCounter(BC::Encore)) { removeFunction(poke(b,s), "MovesPossible", "Encore"); b.removeEndTurnEffect(BS::PokeEffect, s, "Encore"); used = true; } if (b.counters(s).hasCounter(BC::Disable)) { removeFunction(poke(b,s), "MovesPossible", "Disable"); removeFunction(poke(b,s), "MovePossible", "Disable"); b.removeEndTurnEffect(BS::PokeEffect, s, "Disable"); used = true; } b.counters(s).clear(); } if (used) { b.sendItemMessage(7,s); b.disposeItem(s); } }