public override List <BattleMove> GetExecutableMoves(Team enemyTeam) { List <BattleMove> executableMoves = AvailableMoves.Where(bm => bm.MoveType != BattleMoveType.Attack).ToList(); executableMoves.RemoveAll(m => _getViableTargets(m, enemyTeam).ToList().Count == 0); if (_malevolenceCounter >= MaxMalevolenceLevel) { executableMoves.RemoveAll(m => m.MoveType == BattleMoveType.Special); } return(executableMoves.ToList()); }