IceDragon200

ISTS::Game_CardDeck

Jun 24th, 2011
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.32 KB | None | 0 0
  1. # // 06/23/2011
  2. # // 06/23/2011
  3. class ISTS::Game_CardDeck
  4.  
  5.   attr_accessor :name
  6.   attr_accessor :all_cards
  7.   attr_accessor :current_cards
  8.  
  9.   def initialize()
  10.     @name          = "Deck"
  11.     @all_cards     = []
  12.     @current_cards = []
  13.   end
  14.  
  15.   def setup!()
  16.     @current_deck.clear()
  17.     @all_cards.each { |c| @current_deck << c }
  18.   end
  19.  
  20.   def get_deck( deck=:current )
  21.     case deck
  22.     when :current
  23.       return @current_cards
  24.     when :all
  25.       return @all_cards
  26.     end  
  27.   end  
  28.  
  29.   def draw_card!( from=:top, params=[], deck=:current )
  30.     case from
  31.     when :top
  32.       return get_deck( deck ).shift()
  33.     when :bottom
  34.       return get_deck( deck ).pop()
  35.     when :random
  36.       de = get_deck( deck )
  37.       card = de[rand(de.size)]
  38.       de.delete( card )
  39.       return card
  40.     when :index
  41.       card = get_deck( deck )[params[0]]
  42.       de.delete( card )
  43.       return card
  44.     end  
  45.   end
  46.  
  47.   def discard!( from=:top, params=[], deck=:current )
  48.     @discard_deck << draw_card( deck, from, params )
  49.   end
  50.  
  51.   def shuffle( deck=:current )
  52.     return get_deck( deck ).sort_by { rand }
  53.   end
  54.  
  55.   def shuffle!( deck=:current )
  56.     case deck
  57.     when :current
  58.       @current_deck = shuffle( :current )
  59.     when :all
  60.       @discard_deck = shuffle( :discard )
  61.     end
  62.   end
  63.  
  64. end
Advertisement
Add Comment
Please, Sign In to add comment