-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchest.gd
62 lines (53 loc) · 1.59 KB
/
chest.gd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
extends Node
enum RewardType {
CARD,
COINS,
UNLOCK
}
var rewardSprites = {
RewardType.CARD: "res://Assets/Menu/Dorso2.png",
RewardType.COINS: "res://Assets/Menu/AdolfoCoins.png",
RewardType.UNLOCK: "res://Assets/Menu/Dorso3.png"
}
var reward
var reward_type: RewardType
var opened
var open_texture = preload("res://Assets/Sprites/Chests/OpenChest.png")
func _ready():
opened = false
reward_type = RewardType.values().pick_random()
match reward_type:
RewardType.COINS:
reward = randi_range(5, 10)
RewardType.CARD:
reward = GlobalCardsList.get_unlocked_ids().pick_random()
RewardType.UNLOCK:
var locked_cards = GlobalCardsList.get_locked_ids()
if (len(locked_cards) == 0):
reward_type = RewardType.CARD
reward = GlobalCardsList.get_unlocked_ids().pick_random()
else:
reward = locked_cards.pick_random()
$Sprite2D.texture = load(rewardSprites[reward_type])
func _setup(texture:int):
self.texture = texture
# TODO: Implementar el premio de desbloquear carta
func open():
if opened or not WaveManager.is_visible($Sprite2D.position.x):
return
match reward_type:
RewardType.COINS:
CoinsManager.AddCoins(reward)
RewardType.CARD:
var card = CardFactory.createCard(reward)
GameEvents.OnAddDeckCards.Call([[card]])
RewardType.UNLOCK:
GlobalCardsList.unlock(reward)
var sprite: Sprite2D = $Area2D/Sprite2D
sprite.texture = open_texture
$AnimationPlayer.play("give_reward")
func glow_chest(sprite):
if not opened and WaveManager.is_visible($Sprite2D.position.x):
sprite.modulate = Color(255,255,34)
func unglow_chest(sprite):
sprite.modulate = Color(1, 1, 1)