@Override
	public void executeInternal(int minValue) {
	  if (player && !noCheckObedience)
	    seqMetric(new EflCheckObedience());
		seqUnbounded(new EflTextSegment(Move.A)); // player mon uses attack
//    System.out.println("EflHitMetricSegment: size=" + sb.size());
		seq(new CheckMetricSegment(new EflCheckMoveDamage(isCrit, effectMiss, thrashAdditionalTurns, minValue, Integer.MAX_VALUE, !player),GREATER_EQUAL, minValue, player ? KillEnemyMonSegment.PLAYER_ATTRIBUTE : KillEnemyMonSegment.ENEMY_ATTRIBUTE));
		if (numEndTexts == 0 && !noCheckAdditionalTexts) // check for additional texts
		  seqMetric(new StateResettingMetric() {
        @Override
        public int getMetricInternal() {
          EflUtil.runFor(5, 0, 0);
          return new EflCheckAdditionalTexts().getMetricInternal();
        }
      });

    seq(new EflSkipTextsSegment(numEndTexts - 1)); // skip critical hit! messages
		if(numEndTexts > 0) // skip last message if any
			seq(new EflTextSegment()); // critical hit! or very/not effective message
	}