mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-30 19:22:21 +00:00
Placement points added need to test
This commit is contained in:
125
app/models/poolbracket_teampoints_calc.rb
Normal file
125
app/models/poolbracket_teampoints_calc.rb
Normal file
@@ -0,0 +1,125 @@
|
||||
class PoolBracketTeamPointsCalc
|
||||
def initialize(wrestler)
|
||||
@wrestler = wrestler
|
||||
@bracket = wrestler.weight.pool_bracket_type
|
||||
end
|
||||
|
||||
def calcPoints
|
||||
@points = 0
|
||||
whilePointsAreZero { @points = finalMatchPoints }
|
||||
if @bracket == "twoPoolsToSemi"
|
||||
whilePointsAreZero { @points = twoPoolsToSemi }
|
||||
end
|
||||
if @bracket == "fourPoolsToQuarter"
|
||||
whilePointsAreZero { @points = fourPoolsToQuarter }
|
||||
end
|
||||
if @bracket == "fourPoolsToSemi"
|
||||
whilePointsAreZero { @points = fourPoolsToSemi }
|
||||
end
|
||||
return @points
|
||||
end
|
||||
|
||||
def whilePointsAreZero
|
||||
if @points == 0
|
||||
yield
|
||||
end
|
||||
end
|
||||
|
||||
def bracket_position_size(bracket_position_name)
|
||||
@wrestler.allMatches.select{|m| m.bracket_position == bracket_position_name}.size
|
||||
end
|
||||
|
||||
def won_bracket_position_size(bracket_position_name)
|
||||
@wrestler.matchesWon.select{|m| m.bracket_position == bracket_position_name}.size
|
||||
end
|
||||
|
||||
def fourPoolsToQuarter
|
||||
if bracket_position_size("Semis") > 0
|
||||
return fourthPlace
|
||||
end
|
||||
if bracket_position_size("Quarter") > 0
|
||||
return eighthPlace
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def twoPoolsToSemi
|
||||
if bracket_position_size("Semis") > 0
|
||||
return fourthPlace
|
||||
end
|
||||
if bracket_position_size("Conso Semis") > 0
|
||||
return eighthPlace
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def fourPoolsToSemi
|
||||
if bracket_position_size("Semis") > 0
|
||||
return fourthPlace
|
||||
end
|
||||
if bracket_position_size("Conso Semis") > 0
|
||||
return eighthPlace
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def finalMatchPoints
|
||||
if won_bracket_position_size("1/2") > 0
|
||||
return firstPlace
|
||||
end
|
||||
if won_bracket_position_size("3/4") > 0
|
||||
return thirdPlace
|
||||
end
|
||||
if won_bracket_position_size("5/6") > 0
|
||||
return fifthPlace
|
||||
end
|
||||
if won_bracket_position_size("7/8") > 0
|
||||
return seventhPlace
|
||||
end
|
||||
if bracket_position_size("1/2") > 0
|
||||
return secondPlace
|
||||
end
|
||||
if bracket_position_size("3/4") > 0
|
||||
return fourthPlace
|
||||
end
|
||||
if bracket_position_size("5/6") > 0
|
||||
return sixthPlace
|
||||
end
|
||||
if bracket_position_size("7/8") > 0
|
||||
return eighthPlace
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def firstPlace
|
||||
16
|
||||
end
|
||||
|
||||
def secondPlace
|
||||
12
|
||||
end
|
||||
|
||||
def thirdPlace
|
||||
10
|
||||
end
|
||||
|
||||
def fourthPlace
|
||||
9
|
||||
end
|
||||
|
||||
def fifthPlace
|
||||
7
|
||||
end
|
||||
|
||||
def sixthPlace
|
||||
6
|
||||
end
|
||||
|
||||
def seventhPlace
|
||||
4
|
||||
end
|
||||
|
||||
def eighthPlace
|
||||
3
|
||||
end
|
||||
end
|
||||
@@ -16,7 +16,11 @@ class Wrestler < ActiveRecord::Base
|
||||
|
||||
def totalTeamPoints
|
||||
points = 0.0
|
||||
points = points + (poolWins.size * 1) + (pinWins.size * 2) + (techWins.size * 1.5) + (majorWins.size * 1)
|
||||
points = points + (poolWins.size * 1) + (pinWins.size * 2) + (techWins.size * 1.5) + (majorWins.size * 1) + placementPoints
|
||||
end
|
||||
|
||||
def placementPoints
|
||||
PoolBracketTeamPointsCalc.new(self).calcPoints
|
||||
end
|
||||
|
||||
def totalDeductedPoints
|
||||
|
||||
Reference in New Issue
Block a user