internal void PlayDevilishPowerToRemoveHeavenlyHostOrHunterAlly(GameState g, UserInterface ui) { List<LocationDetail> map = g.GetMap(); if (map.FindIndex(l => l.HasHost == true) > -1) { if (g.HuntersHaveAlly()) { } else { LocationDetail locationToRemoveHost = logic.DecideWhichLocationToRemoveHeavenlyHostFrom(g); Logger.WriteToDebugLog("Dracula played Devilish Power to discard a Heavenly Host from " + locationToRemoveHost.Name); ui.TellUser("Dracula played Devilish Power to discard a Heavenly Host from " + locationToRemoveHost.Name); int hunterIndex = ui.AskWhichHunterIsUsingGoodLuckToCancelEvent(); if (hunterIndex > 0) { g.DiscardEventFromHunterAtIndex("Good Luck", hunterIndex, ui); } else { locationToRemoveHost.HasHost = false; } } } else { ui.TellUser("Dracula played Devilish Power to discard the Hunters' Ally from play"); Logger.WriteToDebugLog("Dracula played Devilish Power to discard the Hunters' Ally from play"); int hunterIndex = ui.AskWhichHunterIsUsingGoodLuckToCancelEvent(); if (hunterIndex > 0) { g.DiscardEventFromHunterAtIndex("Good Luck", hunterIndex, ui); } else { g.RemoveHunterAlly(); } } }