mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-04-13 00:26:31 +00:00
Finished pool advance logic still need tests
This commit is contained in:
@@ -2,29 +2,17 @@ class Pooladvance
|
||||
|
||||
attr_accessor :wrestler
|
||||
|
||||
def poolRank
|
||||
#Give wrestlers pool points then give extra points for tie breakers and spit them out
|
||||
#in order from first to last
|
||||
#Calculate wrestlers pool points in their model
|
||||
#Order wrestlers by pool in the weight model
|
||||
end
|
||||
|
||||
def advanceWrestler
|
||||
if self.wrestler.poolMatches.size > self.wrestler.finishedMatches.size
|
||||
return nil
|
||||
if self.wrestler.weight.allPoolMatchesFinished(self.wrestler.generatePoolNumber) && self.wrestler.finishedBracketMatches.size == 0
|
||||
poolToBracketAdvancment
|
||||
end
|
||||
if self.wrestler.finishedBracketMatches.size != 0
|
||||
bracketAdvancment
|
||||
end
|
||||
poolToBracketAdvancment
|
||||
bracketAdvancment
|
||||
end
|
||||
|
||||
def poolToBracketAdvancment
|
||||
@pool = self.wrestler.generatePoolNumber
|
||||
@poolWrestlers = self.wrestler.weight.wrestlers_for_pool(@pool)
|
||||
@poolWrestlers.each do |w|
|
||||
if w.finishedBracketMatches.size > 0
|
||||
return nil
|
||||
end
|
||||
end
|
||||
#Move to correct spot in bracket from pool
|
||||
#Pool criteria
|
||||
#Wins
|
||||
@@ -35,8 +23,7 @@ class Pooladvance
|
||||
#Coin flip
|
||||
#if not one pool
|
||||
if self.wrestler.weight.wrestlers.size > 6
|
||||
|
||||
@poolOrder = self.wrestler.weight.poolOrder
|
||||
@poolOrder = self.wrestler.weight.poolOrder(@pool)
|
||||
#Take pool order and move winner and runner up to correct match based on w1_name and w2_name
|
||||
@matches = self.wrestler.weight.matches
|
||||
@winnerMatch = @matches.select{|m| m.loser1_name == "Winner Pool #{@pool}" || m.loser2_name == "Winner Pool #{@pool}"}.first
|
||||
@@ -49,9 +36,6 @@ class Pooladvance
|
||||
end
|
||||
|
||||
def bracketAdvancment
|
||||
if self.wrestler.finishedBracketMatches.size == 0
|
||||
return nil
|
||||
end
|
||||
#Move to next correct spot in bracket
|
||||
@matches = self.wrestler.finishedMatches.sort_by{|m| m.round}.reverse
|
||||
@last_match = @matches.first
|
||||
@@ -64,12 +48,35 @@ end
|
||||
end
|
||||
|
||||
def winnerAdvance(last_match)
|
||||
|
||||
#Quarter to Semis
|
||||
#Semis to 1/2
|
||||
#Conso Semis to 5/6
|
||||
@pos = last_match.bracket_position_number
|
||||
@new_pos = (@pos/2.0)
|
||||
if last_match.bracket_position == "Quarter"
|
||||
@new_match = Match.where("bracket_position = ? AND bracket_position_number = ?","Semis",@new_pos.ceil).first
|
||||
end
|
||||
if last_match.bracket_position == "Semis"
|
||||
@new_match = Match.where("bracket_position = ? AND bracket_position_number = ?","1/2",@new_pos.ceil).first
|
||||
end
|
||||
if last_match.bracket_position == "Conso Semis"
|
||||
@new_match = Match.where("bracket_position = ? AND bracket_position_number = ?","5/6",@new_pos.ceil).first
|
||||
end
|
||||
if @new_match
|
||||
if @new_pos == @new_pos.ceil
|
||||
@new_match.w2 = self.wrestler.id
|
||||
@new_match.save
|
||||
end
|
||||
if @new_pos != @new_pos.ceil
|
||||
@new_match.w1 = self.wrestler.id
|
||||
@new_match.save
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def loserAdvance(last_match)
|
||||
@bout = last_match.bout_number
|
||||
@next_match = Match.where("loser_name = ?","Loser of #{@bout}")
|
||||
@next_match = Match.where("loser1_name = ? or loser2_name = ?","Loser of #{@bout}","Loser of #{@bout}")
|
||||
if @next_match.size > 0
|
||||
@next_match.first.replaceLoserNameWithWrestler(self.wrestler,"Loser of #{@bout}")
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user