Advertisement
TechSkylander1518

Mining with pre-defined pool

Sep 7th, 2022
1,566
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.21 KB | None | 0 0
  1. def pbMiningGame(pool=nil)
  2.   pbFadeOutIn {
  3.     scene = MiningGameScene.new
  4.     screen = MiningGame.new(scene)
  5.     screen.pbStartScreen(pool)
  6.   }
  7. end
  8.  
  9. class MiningGame
  10.   def initialize(scene)
  11.     @scene = scene
  12.   end
  13.  
  14.   def pbStartScreen(pool=nil)
  15.     @scene.pbStartScene(pool)
  16.     @scene.pbMain
  17.     @scene.pbEndScene
  18.   end
  19. end
  20.  
  21. class MiningGameScene
  22.  
  23.   def pbStartScene(pool=nil)
  24.     @sprites = {}
  25.     @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
  26.     @viewport.z = 99999
  27.     addBackgroundPlane(@sprites, "bg", "Mining/miningbg", @viewport)
  28.     @sprites["itemlayer"] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
  29.     @itembitmap = AnimatedBitmap.new("Graphics/Pictures/Mining/items")
  30.     @ironbitmap = AnimatedBitmap.new("Graphics/Pictures/Mining/irons")
  31.     @items = []
  32.     @itemswon = []
  33.     @iron = []
  34.     if pool
  35.       pbDistributeSetItems(pool)
  36.     else
  37.       pbDistributeItems
  38.     end
  39.     pbDistributeIron
  40.     BOARD_HEIGHT.times do |i|
  41.       BOARD_WIDTH.times do |j|
  42.         @sprites["tile#{j + (i * BOARD_WIDTH)}"] = MiningGameTile.new(32 * j, 64 + (32 * i))
  43.       end
  44.     end
  45.     @sprites["crack"] = MiningGameCounter.new(0, 4)
  46.     @sprites["cursor"] = MiningGameCursor.new(58, 0)   # central position, pick
  47.     @sprites["tool"] = IconSprite.new(434, 254, @viewport)
  48.     @sprites["tool"].setBitmap(sprintf("Graphics/Pictures/Mining/toolicons"))
  49.     @sprites["tool"].src_rect.set(0, 0, 68, 100)
  50.     update
  51.     pbFadeInAndShow(@sprites)
  52.   end
  53.  
  54.  
  55.   def pbDistributeSetItems(pool)
  56.     # Set items to be buried (index in ITEMS, x coord, y coord)
  57.     for i in 0...pool.length
  58.       ITEMS.length.times do |j|
  59.         next if ITEMS[j][0]!=pool[i]
  60.         provx = rand(BOARD_WIDTH - ITEMS[j][4] + 1)
  61.         provy = rand(BOARD_HEIGHT - ITEMS[j][5] + 1)
  62.         @items.push([j, provx, provy])
  63.       end
  64.     end
  65.     # Draw items on item layer
  66.     layer = @sprites["itemlayer"].bitmap
  67.     @items.each do |i|
  68.       ox = ITEMS[i[0]][2]
  69.       oy = ITEMS[i[0]][3]
  70.       rectx = ITEMS[i[0]][4]
  71.       recty = ITEMS[i[0]][5]
  72.       layer.blt(32 * i[1], 64 + (32 * i[2]), @itembitmap.bitmap, Rect.new(32 * ox, 32 * oy, 32 * rectx, 32 * recty))
  73.     end
  74.   end
  75.  
  76. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement