summaryrefslogtreecommitdiff
path: root/scenes/stockticker/stonks.gd
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)