Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # // 06/23/2011
- # // 06/23/2011
- class ISTS::Game_CardDeck
- attr_accessor :name
- attr_accessor :all_cards
- attr_accessor :current_cards
- def initialize()
- @name = "Deck"
- @all_cards = []
- @current_cards = []
- end
- def setup!()
- @current_deck.clear()
- @all_cards.each { |c| @current_deck << c }
- end
- def get_deck( deck=:current )
- case deck
- when :current
- return @current_cards
- when :all
- return @all_cards
- end
- end
- def draw_card!( from=:top, params=[], deck=:current )
- case from
- when :top
- return get_deck( deck ).shift()
- when :bottom
- return get_deck( deck ).pop()
- when :random
- de = get_deck( deck )
- card = de[rand(de.size)]
- de.delete( card )
- return card
- when :index
- card = get_deck( deck )[params[0]]
- de.delete( card )
- return card
- end
- end
- def discard!( from=:top, params=[], deck=:current )
- @discard_deck << draw_card( deck, from, params )
- end
- def shuffle( deck=:current )
- return get_deck( deck ).sort_by { rand }
- end
- def shuffle!( deck=:current )
- case deck
- when :current
- @current_deck = shuffle( :current )
- when :all
- @discard_deck = shuffle( :discard )
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment