This commit is contained in:
2022-01-28 00:28:17 +01:00
parent 792b95365c
commit ebc6cc26c7
21 changed files with 271 additions and 32 deletions

View File

@@ -3,11 +3,13 @@ extends KinematicBody2D
export (NodePath) var city
export (NodePath) var market
export (NodePath) var company
export (NodePath) var moneyframe
export (Vector2) var spawn
var speed_spawn = 500
var speed_spawn = 400
var speed_phys = 5
var speed_phys_max = 550
var dest = 0
var current_target = null
@@ -28,8 +30,10 @@ func _ready():
func state_next():
velocity = Vector2.ZERO
oldNodePosHitAngle = null
current_target = null
dest+=1
func _process(delta):
if dest == 0:
move_to_pos(spawn, delta)
@@ -52,7 +56,8 @@ func _process(delta):
wait_final-=delta
if wait_final <= 0: state_next()
elif dest == 8:
remove_and_skip()
get_node(moneyframe).incMoney()
queue_free()
func move_to_node(np, delta):
@@ -90,6 +95,7 @@ func move_to_pos(pos, delta):
if angle_prev != angle_post:
state_next()
func radius():
return get_node("sprite").texture.get_width()*get_node("sprite").transform.get_scale().x/2
@@ -99,6 +105,9 @@ func _physics_process(delta):
velocity = move_and_slide(velocity, Vector2(0, -1))
if velocity.length() > speed_phys_max:
velocity = velocity.normalized() * speed_phys_max
if current_target != null:
var slide_count = get_slide_count()
if slide_count:

View File

@@ -7,10 +7,15 @@ onready var btnAdd = get_node("btnAdd")
onready var city_parent = get_node("city_parent")
onready var market_parent = get_node("market_parent")
onready var bringman_parent = get_node("bringman_parent")
onready var money_frame = get_node("moneyframe")
onready var button_diam = btnAdd.texture.get_width()*btnAdd.transform.get_scale().x
func _ready():
randomize()
func _input(event):
if event is InputEventMouseButton and event.button_index == BUTTON_LEFT && event.pressed:
if (event.position - btnAdd.position).length() < button_diam/2:
@@ -27,13 +32,14 @@ func spawn():
var vec_start = Vector2(0, 1).rotated(rot)
var diag = sqrt(2*pow(button_diam/2, 2))
bm.position = btnAdd.position + (vec_start * -(button_diam/2 - bm.radius()))
bm.spawn = btnAdd.position + (vec_start * -(button_diam/2 + bm.radius()))
bm.spawn = btnAdd.position + (vec_start * -(diag + bm.radius()))
bm.market = market.get_path()
bm.city = city.get_path()
bm.company = btnAdd.get_path()
print("spawn", bm.position)
bm.moneyframe = money_frame.get_path()
bringman_parent.add_child(bm)

View File

@@ -0,0 +1,51 @@
extends Node2D
var money_display = 0.0
var money_target = 0
onready var label = get_node("label")
var ticker_speed = 1
func incMoney():
money_target += 135
func _process(delta):
if updateMoney(delta):
renderMoney()
func updateMoney(delta):
if money_display == money_target:
return false
var diff = money_target - money_display
if diff < 2:
money_display = money_target
return true
delta = diff * delta * ticker_speed
if abs(delta) >= abs(diff):
money_display = money_target
return true
money_display += delta
return true
func renderMoney():
var v = round(money_display)
var hundreds = floor(v / 100)
var cents = v - hundreds*100
var lblstr = str(hundreds).pad_zeros(2) + "." + str(cents).pad_zeros(2)
label.text = lblstr