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