@Override
	public void execute() {
    boolean partyFull = curGb.readMemory(curGb.pokemon.numPartyMonAddress) >= 6;
		seq(new EflSkipTextsSegment(1)); // wild mon
		seq(new EflBallSuccessSegment());

		seq(new EflSkipTextsSegment(4)); // cought, new dex data
    seqEflButton(Move.A); // skip dex
    seqEflButton(Move.B); // skip dex
    if (bufferSize >= 0 && !partyFull)
      StateBuffer.pushBufferSize(bufferSize);
		seq(new EflTextSegment(Move.A));
		if (extraSkips > 0)
		  seqEflSkipInput(extraSkips);
		seqEflButtonUnboundedNoDelay(Move.B);
		seq(new EflSkipTextsSegment(1, name != null)); // nickname?
		if (name != null) {
			seq(new NamingSegment(name));
			seqEflButton(Move.START);
		}
		if (partyFull) {
	    if (bufferSize >= 0)
	      StateBuffer.pushBufferSize(bufferSize);
			seq(new EflSkipTextsSegment(2)); // transferred to PC
		}
    if (bufferSize >= 0)
      StateBuffer.popBufferSize();
	}