class Sorare::Rewards::Cards::PickForLeague
PickForLeague
picks the rewards for a given league Receive a game week object And a league allocations
{ 'D1' => { 'rare' => { 'tier_0' => 1, 'tier_1' => 2 } } }
Public Instance Methods
add_pickers!()
click to toggle source
# File lib/sorare/rewards/interactors/cards/pick_for_league.rb, line 34 def add_pickers! league.supply.keys.index_with do |rarity| pickers[rarity] = {} qualify_and_add!(rarity) end end
call()
click to toggle source
# File lib/sorare/rewards/interactors/cards/pick_for_league.rb, line 23 def call context.pickers = {} add_pickers! context.cards_picked = allocations.keys.index_with do |division| PickForDivision.call!( **context.to_h, pickers: pickers, allocations: allocations[division] ).cards_picked end end
initialize_tier_picker(players, rarity, tier)
click to toggle source
# File lib/sorare/rewards/interactors/cards/pick_for_league.rb, line 50 def initialize_tier_picker(players, rarity, tier) pickers[rarity][tier] = Picker.new(game_week.public_seed, salt) players.each do |slug, _| pickers[rarity][tier].add_player(slug, player_supply(rarity, slug)) end end
player_supply(rarity, slug)
click to toggle source
# File lib/sorare/rewards/interactors/cards/pick_for_league.rb, line 58 def player_supply(rarity, slug) game_week.player(slug).overall_supply(league, rarity) end
qualify_and_add!(rarity)
click to toggle source
# File lib/sorare/rewards/interactors/cards/pick_for_league.rb, line 41 def qualify_and_add!(rarity) sorted_supply = league.supply[rarity] qualified_players = Tiers::QualifyPlayers.call!(sorted_supply: sorted_supply).players qualified_players.each_with_index.map do |players, tier| transformed_tier = Sorare::Rewards.configuration.transform_tier.call(tier) initialize_tier_picker(players, rarity, transformed_tier) end end