diff --git a/app/services/wrestler_services/calculate_wrestler_team_score.rb b/app/services/wrestler_services/calculate_wrestler_team_score.rb index 76f2983..16cede4 100644 --- a/app/services/wrestler_services/calculate_wrestler_team_score.rb +++ b/app/services/wrestler_services/calculate_wrestler_team_score.rb @@ -27,6 +27,7 @@ class CalculateWrestlerTeamScore def placement_points return PoolBracketPlacementPoints.new(@wrestler).calcPoints if @tournament.tournament_type == "Pool to bracket" return ModifiedSixteenManPlacementPoints.new(@wrestler).calc_points if @tournament.tournament_type == "Modified 16 Man Double Elimination" + return DoubleEliminationPlacementPoints.new(@wrestler).calc_points if @tournament.tournament_type == "Double Elimination 1-6" return 0 end diff --git a/app/services/wrestler_services/double_elimination_placement_points.rb b/app/services/wrestler_services/double_elimination_placement_points.rb new file mode 100644 index 0000000..18e2f43 --- /dev/null +++ b/app/services/wrestler_services/double_elimination_placement_points.rb @@ -0,0 +1,38 @@ +class DoubleEliminationPlacementPoints + def initialize(wrestler) + @wrestler = wrestler + if wrestler.tournament.tournament_type == "Double Elimination 1-6" + @number_of_placers = 6 + end + end + + def calc_points + if won_bracket_position_size("1/2") > 0 + return PlacementPoints.new(@number_of_placers).firstPlace + elsif bracket_position_size("1/2") > 0 + return PlacementPoints.new(@number_of_placers).secondPlace + elsif won_bracket_position_size("3/4") > 0 + return PlacementPoints.new(@number_of_placers).thirdPlace + elsif bracket_position_size("3/4") > 0 + return PlacementPoints.new(@number_of_placers).fourthPlace + elsif won_bracket_position_size("5/6") > 0 + return PlacementPoints.new(@number_of_placers).fifthPlace + elsif (bracket_position_size("Semis") > 0 or bracket_position_size("Conso Semis") > 0) and @number_of_placers >= 6 + return PlacementPoints.new(@number_of_placers).sixthPlace + elsif won_bracket_position_size("7/8") > 0 + return PlacementPoints.new(@number_of_placers).seventhPlace + elsif bracket_position_size("Conso Quarter") > 0 and @number_of_placers >= 8 + return PlacementPoints.new(@number_of_placers).eigthPlace + else + return 0 + end + end + + def bracket_position_size(bracket_position_name) + @wrestler.all_matches.select{|m| m.bracket_position == bracket_position_name}.size + end + + def won_bracket_position_size(bracket_position_name) + @wrestler.matches_won.select{|m| m.bracket_position == bracket_position_name}.size + end +end \ No newline at end of file