@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; }