alts
This commit is contained in:
		| @@ -1,5 +1,5 @@ | ||||
| class LeaderboardController < ApplicationController | ||||
|   def index | ||||
|     @players = Player.order(purse: :desc) | ||||
|     @players = Player.where(main_player_id: nil).order(purse: :desc) | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -1,2 +1,43 @@ | ||||
| class Player < ApplicationRecord | ||||
|   # A Player can be an alt of another player (the main) | ||||
|   belongs_to :main_player, class_name: "Player", optional: true, foreign_key: "main_player_id" | ||||
|  | ||||
|   # A Player can have multiple alts | ||||
|   has_many :alternate_players, class_name: "Player", foreign_key: "main_player_id" | ||||
|  | ||||
|   validate :no_circular_references | ||||
|  | ||||
|   def total_wins | ||||
|     w = self.wins | ||||
|     alternate_players.each { |alt| | ||||
|       w += alt.wins | ||||
|     } | ||||
|     w | ||||
|   end | ||||
|  | ||||
|   def total_losses | ||||
|     l = self.losses | ||||
|     alternate_players.each { |alt| | ||||
|       l += alt.losses | ||||
|     } | ||||
|     l | ||||
|   end | ||||
|  | ||||
|   def total_purse | ||||
|     p = self.purse | ||||
|     alternate_players.each { |alt| | ||||
|       p += alt.purse | ||||
|     } | ||||
|     p | ||||
|   end | ||||
|  | ||||
|   def alt? | ||||
|     self.main_player | ||||
|   end | ||||
|  | ||||
|   def no_circular_references | ||||
|     if main_player_id.present? && (main_player.main_player== self) | ||||
|       errors.add(:main_account, "circular reference") | ||||
|     end | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -1,19 +1,19 @@ | ||||
| <h1>Force Kin Gamba Leaderboard</h1> | ||||
|  | ||||
| <% if @players.any? %> | ||||
| <div class="throne"> | ||||
|   <div class="throne-box"> | ||||
|     <h3 class="throne-title gambalord">Gambalord</h3> | ||||
|     <h4 class="throne-name"><%= @players.first.name %></h4> | ||||
|     <h5 class="throne-purse"><%= @players.first.purse %></h5> | ||||
|     <h5 class="throne-purse"><%= @players.first.total_purse %></h5> | ||||
|   </div> | ||||
|   <div class="throne-box"> | ||||
|     <h3 class="throne-title gumbalord">Gumbalord</h3> | ||||
|     <h4 class="throne-name"><%= @players.last.name %></h4> | ||||
|     <h5 class="throne-purse"><%= @players.last.purse %></h5> | ||||
|     <h5 class="throne-purse"><%= @players.last.total_purse %></h5> | ||||
|   </div> | ||||
| </div> | ||||
|  | ||||
| <% if @players.any? %> | ||||
| <div class="wrapper"> | ||||
|   <div class="table"> | ||||
|     <div class="row header"> | ||||
| @@ -25,14 +25,14 @@ | ||||
|     <% @players.each do |player| %> | ||||
|       <div class="row"> | ||||
|         <div class="cell" data-title="Player"><%= player.name %></div> | ||||
|         <div class="cell" data-title="Purse"><%= player.purse %></div> | ||||
|         <div class="cell" data-title="Wins"><%= player.wins %></div> | ||||
|         <div class="cell" data-title="Losses"><%= player.losses %></div> | ||||
|         <div class="cell" data-title="Purse"><%= player.total_purse %></div> | ||||
|         <div class="cell" data-title="Wins"><%= player.total_wins %></div> | ||||
|         <div class="cell" data-title="Losses"><%= player.total_losses %></div> | ||||
|       </div> | ||||
|     <% end %> | ||||
|     </div> | ||||
|     <a href="/games">Game History</a> | ||||
| </div> | ||||
| <% else %> | ||||
|   <p>No Players!</p> | ||||
|   <h1>No Players!</h1> | ||||
| <% end %> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user