Advertisement
Guest User

Spin_UI_Code

a guest
Oct 14th, 2019
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.42 KB | None | 0 0
  1. local function init_spin_ui()
  2.    
  3.     local daily_reward_ui = player_gui:WaitForChild("Prize Wheel")
  4.     local self = init_closable_gui(daily_reward_ui)
  5.    
  6.     local spins_background = daily_reward_ui.SpinsBackground
  7.     local spins_display = spins_background.TextLabel
  8.     local spin = remotes.Spin
  9.     local spin_frame = daily_reward_ui.SpinnerBackground.Frame
  10.     local spin_frame_default_position = spin_frame.Position
  11.     local spin_frame_default_x = spin_frame_default_position.X.Scale
  12.     local total_y_gap = 0.24
  13.     local ran_obj = Random.new()
  14.     local quart_enum = easing_style.Quart
  15.     local line = daily_reward_ui.SpinPoint
  16.    
  17.     local reward_display_open = UDim2.new(0.302, 0, 0.222, 0)
  18.     local reward_display_closed = UDim2.new(0.302, 0, -0.8, 0)
  19.     local reward_display_screen = daily_reward_ui["Reward Screen"]
  20.     local reward_display_text = reward_display_screen.TextLabel
  21.     local reward_display_prize_image = reward_display_screen.Prize
  22.     local reward_display_item_image = reward_display_screen.Item
  23.    
  24.     local cloneable_crate = miscellaneous.Cloneable_Crate
  25.     local reward_data = require(client_accessible_modules.Reward_Data)
  26.    
  27.     local items_to_preload = {}
  28.     for i = 1, #reward_data do
  29.         for _, info in pairs(reward_data[i].Rewards) do
  30.             local image = Instance.new("ImageLabel")
  31.             image.Image = info.Image_ID
  32.             table.insert(items_to_preload, image)
  33.             if info.Item_Image_ID then
  34.                 local image = Instance.new("ImageLabel")
  35.                 image.Image = info.Item_Image_ID
  36.                 table.insert(items_to_preload, image)
  37.             end
  38.         end
  39.     end
  40.     content_provider:PreloadAsync(items_to_preload)
  41.    
  42.     spins_background.BuySpins.Activated:Connect(function()
  43.         marketplace_service:PromptProductPurchase(player, 692748756)
  44.     end)
  45.    
  46.     spins_background.Spin.Activated:Connect(function()
  47.         if spins.Value > 0 and not spinning then
  48.             spinning = true
  49.             local winning_item_info = spin:InvokeServer()
  50.             if type(winning_item_info) == "table" then
  51.                
  52.                 local items = winning_item_info.Items
  53.                 local winning_item_index = winning_item_info.Winner_Index
  54.                 local winning_item = items[winning_item_index]
  55.                 local winning_item_value = winning_item.Value
  56.                 local tween_info = TweenInfo.new(ran_obj:NextInteger(5, 8), quart_enum)
  57.                 local goal_pos
  58.                
  59.                 for i = 1, #items do
  60.  
  61.                     local new_crate = cloneable_crate:Clone()
  62.                     new_crate.Image = items[i].Image_ID
  63.                     new_crate.Name = "Prize"..i
  64.                     new_crate.Position = UDim2.new(0.055, 0, (-0.308 + total_y_gap*(i - 1)), 0)
  65.                     new_crate.Parent = spin_frame
  66.                    
  67.                     if i == winning_item_index then
  68.                         local distance = line.Position.Y.Scale - new_crate.Position.Y.Scale
  69.                         goal_pos = UDim2.new(spin_frame_default_x, 0, distance, 0)
  70.                     end
  71.                    
  72.                 end
  73.                
  74.                 local tween = tween_service:Create(
  75.                     spin_frame,
  76.                     tween_info,
  77.                     {Position = goal_pos}
  78.                 )
  79.                 tween:Play()
  80.                 tween.Completed:Wait()
  81.                 tween:Destroy()
  82.                
  83.                 if winning_item_info.Was_Duplicate then -- will need to modify this significantly, ofc.
  84.                     local prize_value = reward_data[winning_item.Group_Index].Rarity.Duplicate_Value
  85.                     reward_display_item_image.Visible = true
  86.                     reward_display_item_image.Image = winning_item.Item_Image_ID
  87.                     reward_display_prize_image.Image = winning_item.Image_ID
  88.                     reward_display_text.Text = "This is a duplicate item. You will receive "..prize_value.." instead!"
  89.                 else   
  90.                     if type(winning_item_value) == "number" then
  91.                         reward_display_item_image.Visible = false
  92.                         reward_display_prize_image.Image = winning_item.Image_ID
  93.                         reward_display_text.Text = winning_item.Text
  94.                     else
  95.                         reward_display_item_image.Visible = true
  96.                         reward_display_item_image.Image = winning_item.Item_Image_ID
  97.                         reward_display_prize_image.Image = winning_item.Image_ID
  98.                         reward_display_text.Text = winning_item.Text
  99.                     end        
  100.                 end
  101.                
  102.                 tween_obj(reward_display_screen, reward_display_open)
  103.                 wait(2)
  104.                 tween_obj(reward_display_screen, reward_display_closed)
  105.                 spin_frame:ClearAllChildren()
  106.                 spin_frame.Position = spin_frame_default_position
  107.                
  108.             end
  109.             spinning = false
  110.             update_cash_displays()
  111.         end
  112.     end)
  113.    
  114.     spins_display.Text = tostring(spins.Value)
  115.     spins:GetPropertyChangedSignal("Value"):Connect(function()
  116.         spins_display.Text = tostring(spins.Value)
  117.         if not daily_reward_ui.Enabled and not menu.Enabled and not player_gui:FindFirstChild("Loading") then
  118.             self.Open()
  119.         end
  120.     end)
  121.    
  122.     return self
  123.    
  124. end
  125.  
  126. spin_ui = init_spin_ui()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement