public override MyList <Position> GetAttacks() { MyList <Position> l = new MyList <Position>(); foreach (MovePolitics mp in attackpolitics) { l.AddRange(mp.GetMoves(this, chessfield)); } return(l); }
/// <summary> /// Возвращает список позиций в которые может пойти данная фигура /// </summary> /// <returns></returns> public virtual MyList <Position> GetMoves() { MyList <Position> l = new MyList <Position>(); foreach (MovePolitics mv in movepolitics) { l.AddRange(mv.GetMoves(this, chessfield)); } return(l); }
/// <summary> /// Отмена подсветки хода /// </summary> /// <returns></returns> public MyList <Position> Escape() { if (state == GameState.HighlightedBlack) { state = GameState.WaitBlack; } if (state == GameState.HighlightedWhite) { state = GameState.WaitWhite; } MyList <Position> movs = new MyList <Position>(); movs.AddRange(moves); movs.AddRange(attacks); movs.AddRange(castlings); movs.Add(highlightedfigurepos); movs.AddRange(inmoveattacks); moves = null; attacks = null; castlings = null; inmoveattacks = null; return(movs); }