private void _OnSkillCommandSelected(object sender, EventArgs args)
{
var skill = sender as SkillCommand;
bool doCleanUp = (skill.IsSelected && skill != _lastSelectedCommand) ||
(!skill.IsSelected && skill == _lastSelectedCommand);
if (skill.IsSelected)
{
if (skill == _lastSelectedCommand)
{
// Trace.Assert(skill is GuHuoSkillCommand);
}
else if (_lastSelectedCommand != null)
{
_lastSelectedCommand.OnSelectedChanged -= _OnSkillCommandSelected;
_lastSelectedCommand.IsSelected = false;
_lastSelectedCommand.OnSelectedChanged += _OnSkillCommandSelected;
// Trace.Assert(_lastSelectedCommand == null);
}
_lastSelectedCommand = skill;
CancelAnswerCommand = cancelSkillSelectionCommand;
}
else
{
_lastSelectedCommand = null;
CancelAnswerCommand = cancelCardUsageCommand;
}
if (doCleanUp)
{
foreach (EquipCommand equipCmd in EquipCommands)
{
equipCmd.IsSelected = false;
}
foreach (CardViewModel card in HandCards)
{
card.IsSelected = false;
}
foreach (var playerModel in _game.PlayerModels)
{
playerModel.IsSelected = false;
}
_lastSelectedPlayers.Clear();
}
if (currentUsageVerifier != null)
{
_UpdateCardUsageStatus();
}
}