1
0
mirror of https://github.com/jcwimer/wrestlingApp synced 2026-03-25 01:14:43 +00:00
Files
wrestlingdev.com/app/services/wrestler_services/pool_bracket_placement_points.rb

120 lines
4.1 KiB
Ruby

class PoolBracketPlacementPoints
def initialize(wrestler)
@wrestler = wrestler
@bracket = wrestler.weight.pool_bracket_type
# reverse is needed below for descending order
@largest_bracket = wrestler.tournament.weights.sort_by{|w| w.wrestlers.size}.reverse.first.pool_bracket_type
end
def calcPoints
@points = 0
whilePointsAreZero { @points = finalMatchPoints }
if @bracket == "twoPoolsToSemi"
whilePointsAreZero { @points = twoPoolsToSemi }
end
if (@bracket == "fourPoolsToQuarter") or (@bracket == "eightPoolsToQuarter")
whilePointsAreZero { @points = fourPoolsToQuarter }
end
if @bracket == "fourPoolsToSemi"
whilePointsAreZero { @points = fourPoolsToSemi }
end
if @wrestler.weight.wrestlers.size <= 6 && @wrestler.weight.all_pool_matches_finished(1)
whilePointsAreZero { @points = onePool }
end
return @points
end
def number_of_placers
if @largest_bracket == "twoPoolsToSemi" or @largest_bracket == "twoPoolsToFinal" or @largest_bracket == "onePool"
return 4
else
return 8
end
end
def whilePointsAreZero
if @points == 0
yield
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
def fourPoolsToQuarter
if bracket_position_size("Semis") > 0
return PlacementPoints.new(number_of_placers).fourthPlace
end
if bracket_position_size("Quarter") > 0
return PlacementPoints.new(number_of_placers).eighthPlace
end
return 0
end
def twoPoolsToSemi
if bracket_position_size("Semis") > 0
return PlacementPoints.new(number_of_placers).fourthPlace
end
if bracket_position_size("Conso Semis") > 0
return PlacementPoints.new(number_of_placers).eighthPlace
end
return 0
end
def fourPoolsToSemi
if bracket_position_size("Semis") > 0
return PlacementPoints.new(number_of_placers).fourthPlace
end
if bracket_position_size("Conso Semis") > 0
return PlacementPoints.new(number_of_placers).eighthPlace
end
return 0
end
def onePool
if @wrestler.pool_placement == 1
return PlacementPoints.new(number_of_placers).firstPlace
elsif @wrestler.pool_placement == 2
return PlacementPoints.new(number_of_placers).secondPlace
elsif @wrestler.pool_placement == 3
return PlacementPoints.new(number_of_placers).thirdPlace
elsif @wrestler.pool_placement == 4
return PlacementPoints.new(number_of_placers).fourthPlace
end
return 0
end
def finalMatchPoints
if won_bracket_position_size("1/2") > 0
return PlacementPoints.new(number_of_placers).firstPlace
end
if won_bracket_position_size("3/4") > 0
return PlacementPoints.new(number_of_placers).thirdPlace
end
if won_bracket_position_size("5/6") > 0
return PlacementPoints.new(number_of_placers).fifthPlace
end
if won_bracket_position_size("7/8") > 0
return PlacementPoints.new(number_of_placers).seventhPlace
end
if bracket_position_size("1/2") > 0
return PlacementPoints.new(number_of_placers).secondPlace
end
if bracket_position_size("3/4") > 0
return PlacementPoints.new(number_of_placers).fourthPlace
end
if bracket_position_size("5/6") > 0
return PlacementPoints.new(number_of_placers).sixthPlace
end
if bracket_position_size("7/8") > 0
return PlacementPoints.new(number_of_placers).eighthPlace
end
return 0
end
end