-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMainControl.gd
More file actions
132 lines (95 loc) · 3.98 KB
/
Copy pathMainControl.gd
File metadata and controls
132 lines (95 loc) · 3.98 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
extends Control
var scroll_next_update = false
var run_started = false
var run_start_time = 0
onready var collect_sound = preload("res://Sounds/collect.wav")
func _process(_delta):
if run_started:
var time_now = OS.get_system_time_msecs()
var elapsed = time_now - run_start_time
var minutes = int(elapsed / 60 / 1000)
var seconds = int(elapsed / 1000) % 60
var miliseconds = int(elapsed) % 1000
var str_elapsed = "%02d:%02d:%03d" % [minutes, seconds, miliseconds]
$SpeedRunLabel.text = str_elapsed
$WinningProgress/ProgressBar.value = Targets.kings_count
if !$WinningProgress.visible && Targets.kings_count > 0:
$WinningProgress.visible = true
if Targets.kings_count == 4:
$WinDialog/RichTextLabel/Label.text = "Run Time:\n\n" + str_elapsed
run_started = false
$AutoCrafterTimer.stop()
$MainTimer.stop()
$WinDialog.popup_centered()
func _ready():
$GridContainer/InventoryPanel.visible = false
$GridContainer/InventoryPanelPlaceholder.visible = true
#$GridContainer/CraftingPanel/TabContainer/Employment.visible = false
$GridContainer/TradePanel.visible = false
$GridContainer/TradePanelPlaceholder.visible = true
$GridContainer/CraftingPanel.visible = false
$GridContainer/CraftingPanelPlaceholder.visible = true
$WinningProgress.visible = false
Inventory.inventory_list_control = $GridContainer/InventoryPanel/TabContainer
var _return = Targets.connect("new_target_log_message", self, "add_log_to_list")
Targets.interaction_player = $InteractionAudioPlayer
Targets.trade_control = $GridContainer/TradePanel
Targets.trade_control_item_list = $GridContainer/TradePanel/ScrollContainer/VBoxContainer
Targets.main_control = self
Targets.production_control = $GridContainer/CraftingPanel/TabContainer/Production
Targets.employment_control = $GridContainer/CraftingPanel/TabContainer/Employment
$AcceptDialog.popup_centered()
func add_log_to_list(message):
$GridContainer/LogPanel/RichTextLabel.text = $GridContainer/LogPanel/RichTextLabel.text + "\n" + message
func refresh_view():
###
# Coins
#$GridContainer/MoneyPanel.visible = Inventory.visible("coins")
$GridContainer/TradePanel/Label.text = Helper.format_number(Inventory.get("coins"))
##
# Trading
$GridContainer/TradePanel.visible = Targets.trading_visible
$GridContainer/TradePanelPlaceholder.visible = !Targets.trading_visible
$GridContainer/CraftingPanel.visible = Targets.stone_auto_crafter
$GridContainer/CraftingPanelPlaceholder.visible = !Targets.stone_auto_crafter
if !Targets.inventory_visible && Inventory.inventory_count() > 0:
Targets.inventory_visible = true
$GridContainer/InventoryPanel.visible = true
$GridContainer/InventoryPanelPlaceholder.visible = false
func offer_reset():
$ResetDialog.popup_centered()
func increase_timer():
$AutoCrafterTimer.wait_time = 0.3
func _on_MainTimer_timeout():
refresh_view()
Targets.validate_targets()
func _on_AutoCrafterTimer_timeout():
$GridContainer/CraftingPanel/TabContainer/Employment.tick()
$GridContainer/CraftingPanel/TabContainer/Production.tick()
$GridContainer/InventoryPanel.tick()
Inventory.render_throughput()
func _on_BuyAutoCrafterButton_button_up():
Inventory.craft_stone_auto_crafter()
func _on_CraftStoneButton_button_up():
if !run_started:
run_started = true
run_start_time = OS.get_system_time_msecs()
Targets.play_sound(collect_sound, -20)
Inventory.increase("stones", 1)
refresh_view()
func _on_BuyStickAutoCrafterButton_button_up():
Inventory.craft_stick_auto_crafter()
func _on_AboutButton_pressed():
Targets.play_ui_sound()
$AboutDialog.popup_centered()
func _on_AboutDialog_confirmed():
Targets.play_ui_sound()
func _on_AcceptDialog_confirmed():
Targets.play_ui_sound()
func _on_AudioToggleButton_pressed():
if $BackgroundMusicPlayer.playing:
$BackgroundMusicPlayer.stop()
else:
$BackgroundMusicPlayer.play()
func _on_ResetDialog_confirmed():
Targets.reset_game()