blob: fefc3400fd593b92c405ee8cdc2fcfc3864ee7bb (
plain)
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
|
extends Node2D
var price_history = []
var max_prices = 15
var max_up_multiplier = 2
var max_down_multiplier = 2
var bailout_counter = 0
var bailout_time = 1
var bailout_price = 5
var start_val = 5
var prev_price = start_val
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
print(start_val)
var label = $"Price Label"
label.text = "Price:\n$%f" % start_val
price_history.push_front(start_val)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_timer_timeout() -> void:
var new_price = prev_price
if prev_price <= 0:
if bailout_counter < bailout_time:
new_price = 0
bailout_counter += 1
else:
new_price = bailout_price
bailout_counter = 0
elif randf() < 0.5:
new_price += 1 * max_up_multiplier * randf()
else:
new_price -= 1 * max_down_multiplier * randf()
if new_price < 0: new_price = 0
if len(price_history) >= max_prices:
price_history.pop_front()
price_history.push_back(new_price)
prev_price = new_price
var label = $"Price Label"
label.text = "Price:\n$%f" % new_price
print(new_price)
|