예제 #1
0
  @Override
  public void N() {
    V = W;
    super.N();

    if (br.nextInt(1000) < a++) {
      a = (-e());
      M();
    }

    if ((P()) && (H()))
      // CanaryMod Damage hook: Suffocation
      if (!(Boolean)
          manager.callHook(
              PluginLoader.Hook.DAMAGE, PluginLoader.DamageType.SUFFOCATION, null, entity, 1))
        a((OEntity) null, 1);

    if ((bz) || (aH.v)) bu = 0;
    int i;
    if ((P()) && (a(OMaterial.f)) && (!b_())) {
      by -= 1;
      if (by == -20) {
        by = 0;
        for (i = 0; i < 8; i++) {
          float f1 = br.nextFloat() - br.nextFloat();
          float f2 = br.nextFloat() - br.nextFloat();
          float f3 = br.nextFloat() - br.nextFloat();
          aH.a("bubble", aL + f1, aM + f2, aN + f3, aO, aP, aQ);
        }
        // CanaryMod Damage hook: Drowning
        if (!(Boolean)
            manager.callHook(
                PluginLoader.Hook.DAMAGE, PluginLoader.DamageType.WATER, null, entity, 2))
          a((OEntity) null, 2);
      }

      bu = 0;
    } else by = bv;

    ae = af;

    if (ad > 0) ad -= 1;
    if (Z > 0) Z -= 1;
    if (bx > 0) bx -= 1;
    if (X <= 0) {
      ac += 1;
      if (ac > 20) {
        T();
        G();
        for (i = 0; i < 20; i++) {
          double d1 = br.nextGaussian() * 0.02D;
          double d2 = br.nextGaussian() * 0.02D;
          double d3 = br.nextGaussian() * 0.02D;
          aH.a(
              "explode",
              aL + br.nextFloat() * bf * 2.0F - bf,
              aM + br.nextFloat() * bg,
              aN + br.nextFloat() * bf * 2.0F - bf,
              d1,
              d2,
              d3);
        }
      }
    }

    L = K;

    H = G;
    aT = aR;
    aU = aS;
  }