From da6b95fed82f163bc4deb3b79b3476d6525b2927 Mon Sep 17 00:00:00 2001 From: jcwimer Date: Tue, 17 Nov 2015 16:39:56 +0000 Subject: [PATCH] Placement points added need to test --- app/models/poolbracket_teampoints_calc.rb | 125 ++++++++++++++++++++++ app/models/wrestler.rb | 6 +- 2 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 app/models/poolbracket_teampoints_calc.rb diff --git a/app/models/poolbracket_teampoints_calc.rb b/app/models/poolbracket_teampoints_calc.rb new file mode 100644 index 0000000..b00345c --- /dev/null +++ b/app/models/poolbracket_teampoints_calc.rb @@ -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 \ No newline at end of file diff --git a/app/models/wrestler.rb b/app/models/wrestler.rb index 9e20482..cc3c3a7 100644 --- a/app/models/wrestler.rb +++ b/app/models/wrestler.rb @@ -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