Files
ClickerGacha/addons/weighted_choice/demo/lootbox.gd
2024-06-14 15:33:36 -04:00

56 lines
1.1 KiB
GDScript

extends Node
const Rarity = {
"COMMON":0.8,
"UNCOMMON": 0.2,
"RARE": 0.1,
"LEGENDARY": 0.05
}
var items = {
"copper_sword": {
"name": "Copper Sword",
"sprite": preload("res://addons/weighted_choice/demo/sprites/copper_sword.png"),
"damage": 10,
"rarity": Rarity.COMMON
},
"iron_sword": {
"name": "Iron Sword",
"sprite": preload("res://addons/weighted_choice/demo/sprites/iron_sword.png"),
"damage": 25,
"rarity": Rarity.UNCOMMON
},
"gold_sword": {
"name": "Gold Sword",
"sprite": preload("res://addons/weighted_choice/demo/sprites/gold_sword.png"),
"damage": 50,
"rarity": Rarity.RARE
},
"diamond_sword": {
"name": "Diamond Sword",
"sprite": preload("res://addons/weighted_choice/demo/sprites/diamond_sword.png"),
"damage": 80,
"rarity": Rarity.LEGENDARY
}
}
var opened = false
var loot
func open():
opened = true
loot = items[WeightedChoice.pick(items, "rarity")]
$ItemLabel.text = loot.name
$ItemSprite2D.texture = loot.sprite
$AnimationPlayer.play("open")
func _on_texture_button_pressed():
if not opened:
open()
func _on_reset_button_pressed():
opened = false
loot = ""
$AnimationPlayer.play("close")