diff options
author | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-11-15 19:59:53 -0600 |
---|---|---|
committer | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-11-15 19:59:53 -0600 |
commit | 524bcdf6570b517d75d4b1617e7c09172fe3cde2 (patch) | |
tree | 96964be6327fef7628d7debec65082f657c3d0d5 /scenes/stockticker/stonks.gd | |
parent | 33a6215be1c05efe3628509a1e0bb53f40b2a3ca (diff) |
refactor
Diffstat (limited to 'scenes/stockticker/stonks.gd')
-rw-r--r-- | scenes/stockticker/stonks.gd | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/scenes/stockticker/stonks.gd b/scenes/stockticker/stonks.gd new file mode 100644 index 0000000..9b7b845 --- /dev/null +++ b/scenes/stockticker/stonks.gd @@ -0,0 +1,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) |