Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function init_spin_ui()
- local daily_reward_ui = player_gui:WaitForChild("Prize Wheel")
- local self = init_closable_gui(daily_reward_ui)
- local spins_background = daily_reward_ui.SpinsBackground
- local spins_display = spins_background.TextLabel
- local spin = remotes.Spin
- local spin_frame = daily_reward_ui.SpinnerBackground.Frame
- local spin_frame_default_position = spin_frame.Position
- local spin_frame_default_x = spin_frame_default_position.X.Scale
- local total_y_gap = 0.24
- local ran_obj = Random.new()
- local quart_enum = easing_style.Quart
- local line = daily_reward_ui.SpinPoint
- local reward_display_open = UDim2.new(0.302, 0, 0.222, 0)
- local reward_display_closed = UDim2.new(0.302, 0, -0.8, 0)
- local reward_display_screen = daily_reward_ui["Reward Screen"]
- local reward_display_text = reward_display_screen.TextLabel
- local reward_display_prize_image = reward_display_screen.Prize
- local reward_display_item_image = reward_display_screen.Item
- local cloneable_crate = miscellaneous.Cloneable_Crate
- local reward_data = require(client_accessible_modules.Reward_Data)
- local items_to_preload = {}
- for i = 1, #reward_data do
- for _, info in pairs(reward_data[i].Rewards) do
- local image = Instance.new("ImageLabel")
- image.Image = info.Image_ID
- table.insert(items_to_preload, image)
- if info.Item_Image_ID then
- local image = Instance.new("ImageLabel")
- image.Image = info.Item_Image_ID
- table.insert(items_to_preload, image)
- end
- end
- end
- content_provider:PreloadAsync(items_to_preload)
- spins_background.BuySpins.Activated:Connect(function()
- marketplace_service:PromptProductPurchase(player, 692748756)
- end)
- spins_background.Spin.Activated:Connect(function()
- if spins.Value > 0 and not spinning then
- spinning = true
- local winning_item_info = spin:InvokeServer()
- if type(winning_item_info) == "table" then
- local items = winning_item_info.Items
- local winning_item_index = winning_item_info.Winner_Index
- local winning_item = items[winning_item_index]
- local winning_item_value = winning_item.Value
- local tween_info = TweenInfo.new(ran_obj:NextInteger(5, 8), quart_enum)
- local goal_pos
- for i = 1, #items do
- local new_crate = cloneable_crate:Clone()
- new_crate.Image = items[i].Image_ID
- new_crate.Name = "Prize"..i
- new_crate.Position = UDim2.new(0.055, 0, (-0.308 + total_y_gap*(i - 1)), 0)
- new_crate.Parent = spin_frame
- if i == winning_item_index then
- local distance = line.Position.Y.Scale - new_crate.Position.Y.Scale
- goal_pos = UDim2.new(spin_frame_default_x, 0, distance, 0)
- end
- end
- local tween = tween_service:Create(
- spin_frame,
- tween_info,
- {Position = goal_pos}
- )
- tween:Play()
- tween.Completed:Wait()
- tween:Destroy()
- if winning_item_info.Was_Duplicate then -- will need to modify this significantly, ofc.
- local prize_value = reward_data[winning_item.Group_Index].Rarity.Duplicate_Value
- reward_display_item_image.Visible = true
- reward_display_item_image.Image = winning_item.Item_Image_ID
- reward_display_prize_image.Image = winning_item.Image_ID
- reward_display_text.Text = "This is a duplicate item. You will receive "..prize_value.." instead!"
- else
- if type(winning_item_value) == "number" then
- reward_display_item_image.Visible = false
- reward_display_prize_image.Image = winning_item.Image_ID
- reward_display_text.Text = winning_item.Text
- else
- reward_display_item_image.Visible = true
- reward_display_item_image.Image = winning_item.Item_Image_ID
- reward_display_prize_image.Image = winning_item.Image_ID
- reward_display_text.Text = winning_item.Text
- end
- end
- tween_obj(reward_display_screen, reward_display_open)
- wait(2)
- tween_obj(reward_display_screen, reward_display_closed)
- spin_frame:ClearAllChildren()
- spin_frame.Position = spin_frame_default_position
- end
- spinning = false
- update_cash_displays()
- end
- end)
- spins_display.Text = tostring(spins.Value)
- spins:GetPropertyChangedSignal("Value"):Connect(function()
- spins_display.Text = tostring(spins.Value)
- if not daily_reward_ui.Enabled and not menu.Enabled and not player_gui:FindFirstChild("Loading") then
- self.Open()
- end
- end)
- return self
- end
- spin_ui = init_spin_ui()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement