Cow_Life_Sim_RPG/Objects/Faire/Wheel/Wheel.gd

66 lines
1.8 KiB
GDScript

extends Node2D
var spinning = false
var maxLaunchSpeed = 1300
var minLaunchSpeed = 600
var spinSpeed = 0
var acceleration = -100
var rng = RandomNumberGenerator.new()
var prizes = []
var ticketItem = load("res://Items/Paper/FaireTicket.gd")
func _ready():
initialize_prizes()
func _process(delta):
if spinning:
%SpinningWheel.rotation_degrees += spinSpeed * delta
spinSpeed += acceleration * delta
while %SpinningWheel.rotation_degrees >= 360:
%SpinningWheel.rotation_degrees -= 360
if spinSpeed <= 0:
spinning = false
give_prize()
func give_prize():
var prize = prizes[floor(%SpinningWheel.rotation_degrees/30)]
if prize != null:
var newPrize = prize.new()
InventoryManager.add_item_to_inventory(newPrize)
LevelManager.add_XP("gaming", newPrize.get_value())
MessageManager.item_popup(prize.new())
func spin():
if !spinning:
if InventoryManager.spend_item(ticketItem.new(), 2):
spinning = true
spinSpeed = rng.randf_range(minLaunchSpeed, maxLaunchSpeed)
LevelManager.add_XP("gaming", 5)
else:
MessageManager.addMessage("You need two faire tickets to spin the wheel.", null, "System", Color.MIDNIGHT_BLUE,
true, false)
func initialize_prizes():
prizes.append(load("res://Items/Foods/Fruits/Watermelon.gd"))
prizes.append(load("res://Items/Foods/Snack/Lollipop.gd"))
prizes.append(null)
prizes.append(load("res://Items/Toys/Instruments/Trumpet.gd"))
prizes.append(null)
prizes.append(load("res://Items/Paper/FaireTicket.gd"))
prizes.append(load("res://Items/Toys/Puppets/MarlowPuppet.gd"))
prizes.append(null)
prizes.append(load("res://Items/Foods/Snack/OnionRing.gd"))
prizes.append(load("res://Items/Foods/Meal/Burrito.gd"))
prizes.append(null)
prizes.append(load("res://Items/Foods/Snack/Churro.gd"))