Program: 86653
Project: 86653
Buggy source:
@Override public void kill(Type meansOfDeath,Vector2f locationOfDeath){
  super.kill(meansOfDeath,locationOfDeath);
  if (isControlledByLocalPlayer()) {
    this.effects.getHurtEffect().reset(1500);
  }
switch (meansOfDeath) {
case EXPLOSION:
case GRENADE:
{
      AnimatedImage anim=null;
      Vector2f pos=new Vector2f(locationOfDeath);
      Vector2f.Vector2fMA(pos,getFacing(),0,pos);
switch (player.getTeam()) {
case ALLIES:
        anim=Art.newAlliedExplosionDeathAnim();
      break;
case AXIS:
    anim=Art.newAxisExplosionDeathAnim();
  break;
default :
break;
}
boolean persist=this.game.getGameType().equals(GameType.Type.OBJ);
if (config.getBloodEnabled()) {
this.effects.addBackgroundEffect(Emitters.newBloodEmitter(locationOfDeath,18,15200,50));
this.effects.addBackgroundEffect(Emitters.newGibEmitter(locationOfDeath,3));
this.effects.addBackgroundEffect(new AnimationEffect(anim,pos,getOrientation(),persist));
}
break;
}
case ROCKET:
case ROCKET_LAUNCHER:
if (config.getBloodEnabled()) {
this.effects.addBackgroundEffect(Emitters.newBloodEmitter(locationOfDeath,18,15200,50));
this.effects.addBackgroundEffect(Emitters.newGibEmitter(locationOfDeath,15));
}
Sounds.startPlaySound(Sounds.gib,getId(),locationOfDeath.x,locationOfDeath.y);
break;
default :
{
if (meansOfDeath != Type.FIRE && config.getBloodEnabled()) {
this.effects.addBackgroundEffect(Emitters.newBloodEmitter(locationOfDeath,16,15200,30));
}
Vector2f pos=new Vector2f(locationOfDeath);
Vector2f.Vector2fMA(pos,getFacing(),0,pos);
Random random=this.game.getRandom();
AnimatedImage anim=null;
switch (player.getTeam()) {
case ALLIES:
{
switch (random.nextInt(4)) {
case 0:
anim=Art.newAlliedBackDeathAnim();
break;
case 1:
anim=Art.newAlliedBackDeath2Anim();
break;
case 2:
anim=Art.newAlliedFrontDeathAnim();
break;
default :
anim=Art.newAlliedFrontDeath2Anim();
break;
}
break;
}
case AXIS:
{
switch (random.nextInt(4)) {
case 0:
anim=Art.newAxisBackDeathAnim();
break;
case 1:
anim=Art.newAxisBackDeath2Anim();
break;
case 2:
anim=Art.newAxisFrontDeathAnim();
break;
default :
anim=Art.newAxisFrontDeath2Anim();
break;
}
break;
}
default :
{
}
}
if (anim != null) {
boolean persist=this.game.getGameType().equals(GameType.Type.OBJ);
this.effects.addBackgroundEffect(new AnimationEffect(anim,pos,getOrientation(),persist));
Sounds.startPlaySound(Sounds.die,getId(),locationOfDeath.x,locationOfDeath.y);
}
}
}
}

Fixed version (ground truth):
@Override public void kill(Type meansOfDeath,Vector2f locationOfDeath){
  super.kill(meansOfDeath,locationOfDeath);
  if (isControlledByLocalPlayer()) {
    this.effects.getHurtEffect().reset(1500);
  }
switch (meansOfDeath) {
case EXPLOSION:
case GRENADE:
{
      AnimatedImage anim=null;
      Vector2f pos=new Vector2f(locationOfDeath);
      Vector2f.Vector2fMA(pos,getFacing(),0,pos);
switch (player.getTeam()) {
case ALLIES:
        anim=Art.newAlliedExplosionDeathAnim();
      break;
case AXIS:
    anim=Art.newAxisExplosionDeathAnim();
  break;
default :
anim=Art.newAlliedExplosionDeathAnim();
break;
}
boolean persist=this.game.getGameType().equals(GameType.Type.OBJ);
if (config.getBloodEnabled()) {
this.effects.addBackgroundEffect(Emitters.newBloodEmitter(locationOfDeath,18,15200,50));
this.effects.addBackgroundEffect(Emitters.newGibEmitter(locationOfDeath,3));
this.effects.addBackgroundEffect(new AnimationEffect(anim,pos,getOrientation(),persist));
}
break;
}
case ROCKET:
case ROCKET_LAUNCHER:
if (config.getBloodEnabled()) {
this.effects.addBackgroundEffect(Emitters.newBloodEmitter(locationOfDeath,18,15200,50));
this.effects.addBackgroundEffect(Emitters.newGibEmitter(locationOfDeath,15));
}
Sounds.startPlaySound(Sounds.gib,getId(),locationOfDeath.x,locationOfDeath.y);
break;
default :
{
if (meansOfDeath != Type.FIRE && config.getBloodEnabled()) {
this.effects.addBackgroundEffect(Emitters.newBloodEmitter(locationOfDeath,16,15200,30));
}
Vector2f pos=new Vector2f(locationOfDeath);
Vector2f.Vector2fMA(pos,getFacing(),0,pos);
Random random=this.game.getRandom();
AnimatedImage anim=null;
switch (player.getTeam()) {
case ALLIES:
{
switch (random.nextInt(4)) {
case 0:
anim=Art.newAlliedBackDeathAnim();
break;
case 1:
anim=Art.newAlliedBackDeath2Anim();
break;
case 2:
anim=Art.newAlliedFrontDeathAnim();
break;
default :
anim=Art.newAlliedFrontDeath2Anim();
break;
}
break;
}
case AXIS:
{
switch (random.nextInt(4)) {
case 0:
anim=Art.newAxisBackDeathAnim();
break;
case 1:
anim=Art.newAxisBackDeath2Anim();
break;
case 2:
anim=Art.newAxisFrontDeathAnim();
break;
default :
anim=Art.newAxisFrontDeath2Anim();
break;
}
break;
}
default :
{
}
}
if (anim != null) {
boolean persist=this.game.getGameType().equals(GameType.Type.OBJ);
this.effects.addBackgroundEffect(new AnimationEffect(anim,pos,getOrientation(),persist));
Sounds.startPlaySound(Sounds.die,getId(),locationOfDeath.x,locationOfDeath.y);
}
}
}
}