Program: 158844
Project: 158844
Buggy source:
/** 
 * One of my opponents in a multiplayer game had a Bloodchief Ascension in play. I took lethal damage on my turn,  but he didn't get a counter on Bloodchief Ascension at my end step. I think he should, even though I had left  the game from dying, because of: 800.4g. If a player leaves the game during his or her turn, that turn continues to its completion without an  active player. If the active player would receive priority, instead the next player in turn order receives priority, or the top object on the stack resolves, or the phase or step ends, whichever is appropriate.
 */
@Test public void testBloodchiefAscension(){
  addCard(Zone.BATTLEFIELD,playerA,"String_Node_Str");
  addCard(Zone.BATTLEFIELD,playerA,"String_Node_Str",3);
  addCard(Zone.HAND,playerA,"String_Node_Str");
  addCard(Zone.BATTLEFIELD,playerD,"String_Node_Str",3);
  addCard(Zone.HAND,playerD,"String_Node_Str");
  addCard(Zone.BATTLEFIELD,playerC,"String_Node_Str",3);
  addCard(Zone.HAND,playerC,"String_Node_Str");
  addCard(Zone.BATTLEFIELD,playerB,"String_Node_Str",21);
  addCard(Zone.HAND,playerB,"String_Node_Str");
  castSpell(1,PhaseStep.PRECOMBAT_MAIN,playerA,"String_Node_Str",playerA);
  setChoice(playerA,"String_Node_Str");
  castSpell(2,PhaseStep.PRECOMBAT_MAIN,playerD,"String_Node_Str",playerD);
  setChoice(playerD,"String_Node_Str");
  castSpell(3,PhaseStep.PRECOMBAT_MAIN,playerC,"String_Node_Str",playerC);
  setChoice(playerC,"String_Node_Str");
  castSpell(4,PhaseStep.PRECOMBAT_MAIN,playerB,"String_Node_Str",playerB);
  setChoice(playerB,"String_Node_Str");
  setStopAt(4,PhaseStep.END_TURN);
  execute();
  assertLife(playerA,18);
  assertLife(playerB,0);
  assertLife(playerC,18);
  assertLife(playerD,18);
  Assert.assertTrue("String_Node_Str",playerB.hasLost());
  assertGraveyardCount(playerA,"String_Node_Str",1);
  assertGraveyardCount(playerC,"String_Node_Str",1);
  assertGraveyardCount(playerD,"String_Node_Str",1);
  assertCounterCount("String_Node_Str",CounterType.QUEST,2);
}

Fixed version (ground truth):
/** 
 * One of my opponents in a multiplayer game had a Bloodchief Ascension in play. I took lethal damage on my turn, but he didn't get a counter on Bloodchief Ascension at my end step. I think he should, even though I had left the game from dying, because of: 800.4g. If a player leaves the game during his or her turn, that turn continues to its completion without an active player. If the active player would receive priority, instead the next player in turn order receives priority, or the top object on the stack resolves, or the phase or step ends, whichever is appropriate.
 */
@Test public void testBloodchiefAscension(){
  addCard(Zone.BATTLEFIELD,playerA,"String_Node_Str");
  addCard(Zone.BATTLEFIELD,playerA,"String_Node_Str",3);
  addCard(Zone.HAND,playerA,"String_Node_Str");
  addCard(Zone.BATTLEFIELD,playerD,"String_Node_Str",3);
  addCard(Zone.HAND,playerD,"String_Node_Str");
  addCard(Zone.BATTLEFIELD,playerC,"String_Node_Str",3);
  addCard(Zone.HAND,playerC,"String_Node_Str");
  addCard(Zone.BATTLEFIELD,playerB,"String_Node_Str",21);
  addCard(Zone.HAND,playerB,"String_Node_Str");
  castSpell(1,PhaseStep.PRECOMBAT_MAIN,playerA,"String_Node_Str",playerA);
  setChoice(playerA,"String_Node_Str");
  castSpell(2,PhaseStep.PRECOMBAT_MAIN,playerD,"String_Node_Str",playerD);
  setChoice(playerD,"String_Node_Str");
  castSpell(3,PhaseStep.PRECOMBAT_MAIN,playerC,"String_Node_Str",playerC);
  setChoice(playerC,"String_Node_Str");
  castSpell(4,PhaseStep.PRECOMBAT_MAIN,playerB,"String_Node_Str",playerB);
  setChoice(playerB,"String_Node_Str");
  setStopAt(4,PhaseStep.END_TURN);
  execute();
  assertLife(playerA,18);
  assertLife(playerB,0);
  assertLife(playerC,18);
  assertLife(playerD,18);
  Assert.assertTrue("String_Node_Str",playerB.hasLost());
  assertGraveyardCount(playerA,"String_Node_Str",1);
  assertGraveyardCount(playerC,"String_Node_Str",1);
  assertGraveyardCount(playerD,"String_Node_Str",1);
  assertCounterCount("String_Node_Str",CounterType.QUEST,2);
}