Program: 169920
Project: 169920
Buggy source:
@Override public void doExplode(){
  float radius=this.getRadius();
  if (this.worldObj.isRemote) {
    for (int i=0; i < 200; i++) {
      Vector3 diDian=new Vector3();
      diDian.x=Math.random() * radius / 2 - radius / 4;
      diDian.y=Math.random() * radius / 2 - radius / 4;
      diDian.z=Math.random() * radius / 2 - radius / 4;
      diDian.multiply(Math.min(radius,callCount) / 10);
      if (diDian.getMagnitude() <= radius) {
        diDian.add(this.position);
        ZhuYaoZhaPin.proxy.spawnParticle("String_Node_Str",this.worldObj,diDian,(Math.random() - 0.5) / 2,(Math.random() - 0.5) / 2,(Math.random() - 0.5) / 2,this.red,this.green,this.blue,7.0F,8);
      }
    }
  }
  AxisAlignedBB bounds=AxisAlignedBB.getBoundingBox(position.x - radius,position.y - radius,position.z - radius,position.x + radius,position.y + radius,position.z + radius);
  List<EntityLiving> allEntities=worldObj.getEntitiesWithinAABB(EntityLiving.class,bounds);
  for (  EntityLiving entity : allEntities) {
    if (this.isContagious) {
      ZhuYaoZhaPin.DU_CHUAN_RAN.poisonEntity(position,entity);
    }
    if (this.isPoisonous) {
      ZhuYaoZhaPin.DU_DU.poisonEntity(position,entity);
    }
    if (this.isConfuse) {
      entity.addPotionEffect(new CustomPotionEffect(Potion.confusion.id,18 * 20,0));
      entity.addPotionEffect(new CustomPotionEffect(Potion.digSlowdown.id,20 * 60,0));
      entity.addPotionEffect(new CustomPotionEffect(Potion.moveSlowdown.id,20 * 60,2));
    }
  }
  if (this.isMutate) {
    new BzBianZhong(worldObj,this.exploder,position.x,position.y,position.z,this.getRadius()).explode();
  }
  if (this.playShortSoundFX) {
    worldObj.playSoundEffect(position.x + 0.5D,position.y + 0.5D,position.z + 0.5D,ZhuYaoICBM.PREFIX + "String_Node_Str",4.0F,(1.0F + (worldObj.rand.nextFloat() - worldObj.rand.nextFloat()) * 0.2F) * 1F);
  }
  if (this.callCount > this.duration) {
    this.controller.endExplosion();
  }
}

Fixed version (ground truth):
@Override public void doExplode(){
  float radius=this.getRadius();
  if (this.worldObj.isRemote) {
    for (int i=0; i < 200; i++) {
      Vector3 diDian=new Vector3();
      diDian.x=Math.random() * radius / 2 - radius / 4;
      diDian.y=Math.random() * radius / 2 - radius / 4;
      diDian.z=Math.random() * radius / 2 - radius / 4;
      diDian.multiply(Math.min(radius,callCount) / 10);
      if (diDian.getMagnitude() <= radius) {
        diDian.add(this.position);
        ZhuYaoZhaPin.proxy.spawnParticle("String_Node_Str",this.worldObj,diDian,(Math.random() - 0.5) / 2,(Math.random() - 0.5) / 2,(Math.random() - 0.5) / 2,this.red,this.green,this.blue,7.0F,8);
      }
    }
  }
  AxisAlignedBB bounds=AxisAlignedBB.getBoundingBox(position.x - radius,position.y - radius,position.z - radius,position.x + radius,position.y + radius,position.z + radius);
  List<EntityLivingBase> allEntities=worldObj.getEntitiesWithinAABB(EntityLivingBase.class,bounds);
  for (  EntityLivingBase entity : allEntities) {
    if (this.isContagious) {
      ZhuYaoZhaPin.DU_CHUAN_RAN.poisonEntity(position,entity);
    }
    if (this.isPoisonous) {
      ZhuYaoZhaPin.DU_DU.poisonEntity(position,entity);
    }
    if (this.isConfuse) {
      entity.addPotionEffect(new CustomPotionEffect(Potion.confusion.id,18 * 20,0));
      entity.addPotionEffect(new CustomPotionEffect(Potion.digSlowdown.id,20 * 60,0));
      entity.addPotionEffect(new CustomPotionEffect(Potion.moveSlowdown.id,20 * 60,2));
    }
  }
  if (this.isMutate) {
    new BzBianZhong(worldObj,this.exploder,position.x,position.y,position.z,this.getRadius()).explode();
  }
  if (this.playShortSoundFX) {
    worldObj.playSoundEffect(position.x + 0.5D,position.y + 0.5D,position.z + 0.5D,ZhuYaoICBM.PREFIX + "String_Node_Str",4.0F,(1.0F + (worldObj.rand.nextFloat() - worldObj.rand.nextFloat()) * 0.2F) * 1F);
  }
  if (this.callCount > this.duration) {
    this.controller.endExplosion();
  }
}